Bennett successfully uses the software design and engineering system described here in practice and teaches it in his software classes. The best ideas of several methodologies have been combined to produce this system. It uses a top-down approach: develop the state model, have a generic system architecture template to design toward, identify and allocate behavior using component interaction diagrams and component interface profile diagrams, develop system architecture, and describe behavior. User requirements are developed into runtime requirements, and development sponsor requirements are developed into build-time requirements. CRC diagrams are used to develop service model allocations. Mascot/ROOM diagrams are used for architecture models. The main effort of this book is in behavior analysis and the derivation of architecture components.
The generic system architecture the author designs toward is a six-level software pattern involving these subsystem pattern types: presentation, dialogue, service, and model. Device and virtual device drivers interface the system boundary. He develops the example of a rental video store system and discusses the engineering tradeoffs involved. The example system is designed toward a multistore system on a client/server system with multiple workstations per store. The methodology is rigorous component design, with a comprehensive discussion of engineering from runtime requirement use cases and build-time requirement change cases. The importance of choosing and using the best notation and the correct semantic level is discussed. The author also gives a problem analysis of diagrams of the development of this software.
The architecture is designed to provide the build-time properties of extensibility, maintainability, configurability, and reusability. Choosing alternative partitions gives different implementations of module coding. Another set of partitions takes the designed system from a single platform to a client/server system. The only item I would add to the system is a user manual for the customer to sign off on before coding starts. This excellent book can be used as a classroom text and kept as a reference next to Buschmann et al.’s book on patterns [1].