Summary form only given. Software architecture design is a matter of generate and test. That is, generate a candidate design (a hypothesis), test it to see whether it satisfies its requirements. If it does not, then generate a new hypothesis and repeat the process. Clearly, the hypothesis generation, whether for the initial hypothesis or the subsequent hypotheses is not random. If it were, then the process would never end. This session will discuss where the initial hypothesis comes from, how to test to determine the shortcomings of the current hypothesis and what techniques are available to generate a new hypothesis.