More importantly, each project's high level design document for the second project cycle should again provide a narrative describing how each of the design forces that were defined in the preceding requirements stage is resolved by that design specification, and in particular which design patterns were applied (and in what order) to generate the design specification from the design forces arising from the project's requirement specification. The high level design document should also describe the design patterns that were applied to arrive at the testing design, which may require further thought about the design forces that are implied by the statements in the evaluation plan.
Whereas the requirements document for the second project cycle was based mainly on English sentences, the high level design document should begin to move from English descriptions (which are of course still important in explaining the design narratives described above) toward more technical representations like class structure diagrams, interaction diagrams, etc. An important issue in using these more technical representations is that you still need to show clearly how the design emerged from the requirements, as you applied different design patterns to arrive at your design. Each team is free to choose how they represent the pattern structure within the high level design itself in each of the more technical representations, as long as it is understandable, is well explained in the high level design document, and adequately captures the pattern structure itself.
As with anticipating requirements, in practice it is sometimes difficult to anticipate all of the considerations that will come up during design and implementation up front, and so it is sometimes necessary and often beneficial to revisit high level design during later stages. Beware, however, of letting the scope of the project design change (sometimes known as "scope creep") as that can put the timeline and quality of the project in jeopardy.
Also, there will likely be a number of design decisions and details in each project that fall outside what is addressed by the set of design patterns we'll consider in this course. You should feel free to look up and describe other documented design patterns (citing the sources of those design patterns appropriately) if you would like, or you can simply note which design features fall outside the scope of the GoF design patterns. In either case you should again scan through the brief pattern descriptions on the inside cover of the GoF book, note the patterns that seem related to your design, and then examine each of those patterns in more detail to make sure you've adequately considered which of the GoF design patterns are relevant to your design.
Please describe how each of the design patterns you applied in arriving at your second high level design helped to address each of the design forces arising from the requirements (or from previously applied patterns), and please also note new design forces (if any) that were missed during the second requirements stage but now have been identified, or that resulted from applying a particular pattern during the second high level design stage itself.
Participation: every member of your team should be significantly involved in the production of this document, though how you structure the interactions within the team is up to you. For example, it's fine for one person to capture notes from a group discussion of the high level design document and write it up as long as the other team members contributed materially to the discussion that is captured.
Deadline: by 11:59pm on Tuesday, June 23, 2009, please e-mail your team's high level design document for the second project cycle to Prof. Gill at cdgill@cse.wustl.edu.
As with the second requirements document, our team should treat this second high level design document as a "work in progress", evolving it appropriately throughout the second development cycle, and by the evaluation stage the documents you have produced previously should constitute most of your evaluation report, other than the evaluation results and analysis which you will add in that last stage of the cycle.