Constructing groups of order 16 from knowledge of their subgroups So I am rather curious about known techniques for constructing groups from knowledge of their subgroups. For instance, if I told you that a particular order 16 group had 3 order 8 subgroups, all isomorphic to $\mathbb{Z}_2\times\mathbb{Z}_4$, it is possible to immediate conclude that the group is $2$-generated because it is an order 16 group with 3 order 8 subgroups. Moreover, it turns out that there are exactly two possibilities, but I only know this because I have analyzed all 14 groups of order 16. The possibilities are the abelian group $\mathbb{Z}_4\times\mathbb{Z}_4$ and a non-abelian semidirect product, $\mathbb{Z}_4\rtimes_\varphi\mathbb{Z}_4$, where $\varphi$ is surjective (onto $\operatorname{Aut}(\mathbb{Z}_4)\simeq\mathbb{Z}_2$).
My admittedly somewhat general question is this: what methods would sufficient to construct all 14 groups of order 16 from just knowledge of the groups of order 1, 2, 4, and 8?
I know they can all be represented as semi-direct products, but the same group can often be represented in quite a few different ways as semidirect products, which makes determining which groups are which (up to isomorphism) tedious. From analyzing the 14 different groups, most of them are readily distinguishable from each other via much more readily noticed properties (especially from a constructive perspective). For instance, it's easy to distinguish the two possibilities mentioned previously by looking at whether or not elements commute (curiously, they have identical subgroup lattices, sans that the entire group is not isomorphic). Likewise, distinguishing the modular group $M_{16}$ from the previous two is trivial if you have access to their subgroup lattices (the one for $M_{16}$ is clearly different from the other two, moreover, it has a cyclic subgroup of order 8, which the other two do not).
A closely related question: If I gave you an operation table for a 'mystery group' of order 16, what things would most quickly (quickly in terms of ease to compute) allow you to identify its isomorphism class? (I can usually get it down to at most two possibilities very quickly, from just knowledge of subgroups, but at some point, that alone may not be enough, as evidenced with the above example)
 A: First some comments. There are different ways of determining groups of order $16$; first perhaps given by Burnside in his book. In my opinion, the construction by Burnside is better than all (including my way, which I will describe shortly), because Burnside first determines all $2$-groups with a specific property and then concludes for a special case, when order is $16$.
My way of description of groups of order $16$ is bases on some specific subgroups with a strong connection between them. We will classify only non-abelian groups.
Fact 1. Every group of order $p^4$ contains an abelian subgroup of index $p$. 
Fact 2. If a non-abelian $p$-group contains an abelian subgroup of index $p$ then $|G|=p.|Z(G)|.|G'|$.
Thus, when $|G|=2^4$, from the two facts, we get $2^4=2.|Z(G)|.|G'|$. Since $Z(G)$ and $G'$ are non-trivial, it follows that 
$$\mbox{ either } |Z(G)|=2, |G'|=4 \mbox{ or } |Z(G)|=4, |G'|=2.$$
Since the center of a $p$-group intersects normal subgroup non-trivially, it follows that according to above two cases we have 
$$\mbox{ either } Z(G)<G' \mbox{ or } G' <Z(G).$$
We will start classification on this information with case by case computation. This simplifies our job in searching non-isomorphic groups of order $16$. I will elaborate only one case, since it involves much computations. 

Now first make two cases: 
Case 1. $|Z(G)|=2$, $|G'|=4$.  Case 2. $|Z(G)|=4$ and $|G'|=2$.
(Note that the groups obtained in case 1 can not be isomorphic to groups obtained in case 2, can you see why? This justifies my statement about simplification of isomorphism problem.)
In case 1, since $|G'|=4$, we have $G'=Z_2\times Z_2$ or $G'=Z_4$. Again make two sub-cases. 
Case 1.1 $Z(G)=Z_2$, $G'=Z_2\times Z_2$. 
By Fact 1, there is abelian subgroup $A$ of index $2$, i.e. order $8$. Then $G/A$ is cyclic (abelian), hence $G'<A$. Since $G'=Z_2\times Z_2$, the abelian group $A$ must be of the form $Z_2\times Z_2\times Z_2$ or $Z_4\times Z_2$.
Case 1.1.1 $Z(G)=Z_2$, $G'= Z_2\times Z_2$ and $A=Z_2\times Z_2\times Z_2$.
Let $Z(G)=\langle x\rangle$, $G'=\langle x,y\rangle$ and $A=\langle x,y,z\rangle$. Take $w\in G\setminus A$. Then $G=\langle x,y,z,w\rangle$. Now we know relations between $x,y,z$ (since these are members of an elementary abelian group). Just we have to search relations of $w$ with $x,y,z$. 
Now $A=\langle x,y,z\rangle$ is normal in $G$, which means $w$ should normalize this subgroup. So we have to determine $wxw^{-1}$, $wyw^{-1}$ and $wzw^{-1}$. 


*

*$wxw^{-1}$ must be $x$, because $x\in Z(G)$.

*Since $G'=\langle x,y\rangle$, $G'$ has three subgroups of order $2$, namely $\langle x\rangle$, $\langle y\rangle$ and $\langle xy\rangle$. Since $\langle x\rangle$ is central subgroup, $w$ should permute other two subgroups by conjugation. Now if $w\langle y\rangle w^{-1}=\langle y\rangle$ then this means $\langle y\rangle$ is normal in $G$ (because $\langle y\rangle$ is already normal in abelian subgroup $\langle x,y,z\rangle$ and is also normalized by $w$, hence by $G$). Since normal subgroup of order $2$ must be central, we have $y\in Z(G)$ a contradiction. Thus, $w\langle y\rangle w^{-1}$ must be equal to $\langle xy\rangle$. You can easily show that $wyw^{-1}=xy$.

*Since $A=G'\cup zG'$, and $wG'w^{-1}=G$', hence $w(zG')w^{-1}=zG'$. Let $wzw^{-1}=zx^iy^j$. Again conjugating by $w$ we get 
$$w^2zw^{-2} = (wzw^{-1}) (wxw^{-1})^i (wyw^{-1})^j = (zx^iy^j)(x)^i(xy)^j= zx^{2i}x^jy^{2j}.$$
Since $[G\colon A]=2$, so $w^2\in A$ hence $w^2$ commutes with all elements of $A$. So $w^2zw^{-2}$ should be $z$. On the other hand in last term of above equation, since $x^2=1=y^2$, we get last term to be $zx^j$. 
Thus we get 
$$z=zx^j \mbox{ i.e. } j=0.$$
Therefore $wzw^{-1}=zx^i$ where $i=0$ or $1$. If $wzw^{-1}=z$ then $\langle z\rangle$ will be a normal subgroup of order $2$, hence $z$ will go in center, a contradiction. Hence we must have $wzw^{-1}=zx$. So far we have obtained is the following:
$$wxw^{-1}=x, wyw^{-1}=xy, wzw^{-1}=xz.$$
What about $w^2$? Since $w^2\in A$ so $w^2$ commutes with all elements of $A$. Obviously $w^2$ commutes with $w$. Hence $w^2$ must be in the center which is $Z(G)=\{1,x\}$.
Thus in Case 1.1.1, we get at most two groups of order $16$ according to $w^2=1$ or $w^2=x$. Are these two groups isomorphic? (i.e. is the group when $w^2=1$ isomorphic to group when $w^2=x$?) 
Yes! Because, when $w^2=x$, then consider $w_1=wy$ instead of $w$. Then 
$$w_1^2=(wy)(wy)=wyw^{-1}.w^2y=xy.x.y=1.$$
Hence instead of $w$, we may take $w_1=wx$, which is still outside $A=\langle x,y,z\rangle$ and $w_1^2=1$. Thus groups in both cases are isomorphic. In other words, we say 
$$\mbox{ if $Z(G)=Z_2, G'=Z_2\times Z_2$ and $A=Z_2\times Z_2\times Z_2$ then there is unique group of order $16$ with this data.}$$
