I finished the CAD question today. I got some good references from Applying UML and Patterns by Craig Larman chapters 32, 33, 34 and Software Architecture in Practice by Bass, Clements, and Kazman Chapters 4, 5 and the introduction to Part III. The diagram is very busy and I would never wish this one on any of the developers that worked for me. It was a requirement to do all the classes in one diagram. It could never be an architectural diagram because of the low level of things like the GOF design patterns. I have a little trouble with this question because it mixes design with things that are called design patterns but the granularity is all wrong. It is because this question was written by someone that has never done any big systems or understands the significants in the age of the GOF book. Even though they are called design patterns they are really low level. Then there is a question about analysis of design that is really a system level question. These are incompatible questions.
One more complaint. The GOF book is written from an OMT/C++ point of view. I have had real trouble with this book. I avoid it actually. When I find an overloaded term it always causes a thrash in my head. I operate in concepts and not words. When I am ask to operate in words I use word associations. When a word is overloaded associations become broken. Questions become difficult to answer. I have difficulty picking things like this up from context. It would be good if test writers would make an effort to stick to a set of names rather than address two books with terms that are identical with different meanings. For instance. An adapter in the GOF is really a modern day interface but an interface in the GOF is really a method signature. It is just a rule I have to learn.
I did learn something today. I have been doing UML for many years. I never saw composition and aggregation as another form of association. They are associations with additional constraints but are the same in all other respects.