Architecture modeling is an established practice for the realization of high-quality software. The latest release of CMMI Version 1.3 models includes a number of changes enhancing its effectiveness by making architecting more explicit, such as a more prominent role for quality attributes and a more clearly defined concept of architecture.
Architecting guidance, previously implicit and now more explicit, is primarily addressed in the following process areas:
- Requirements development (RD) is where the functional and quality attribute requirements for a system are developed and analyzed. The new emphasis on quality attributes is a cornerstone for shaping the architecture of a system. Architecturally significant requirements are identified, and requirements allocation to the components begins here.
- Technical solution (TS) covers the core of architecting: selection of architectural patterns, instantiating or composing the patterns into a product architecture, and development and documentation of a solution that fulfills the requirements.
- Verification (VER) of the architecture is necessary to ensure that it meets the specified requirements. Furthermore, the implementation is evaluated for compliance with the architecture.
- Validation (VAL) that the system meets its intended purpose is enhanced by clarification of requirements through architecture-centric practices.
These architecture enhancements were proposed by members of the SEI Architecture-Centric Engineering initiative and our colleagues at Logica led by Eltjo Poort.
Eltjo Poort and his colleagues provide more details on creating an architecting process that complies with the relevant requirements set by the CMMI in their paper on The Influence of CMMI on Establishing an Architecting Process (as well as input to this blog post).
Brian Gallagher, director of the Intelligence Systems Division of Northrop Grumman, has offered these insights: “Northrop Grumman has been an early adopter of improved engineering practices and we’re the only company in the world with appraisals in all three CMMI constellations (CMMI-DEV, CMMI-ACQ, and CMMI-SVC). This strong process focus means that we’re continually looking for ways to improve our engineering capabilities. Our focus on architecture-centric engineering allows us to train our engineers and program managers in proven techniques that ensure we have well-defined technical baselines and help us quickly evaluate the effectiveness of early design decisions and the effect of these decisions on solving our customer’s most challenging problems.”
From our perspective, architecture is the conceptual glue that holds every phase of the project together for all its many stakeholders. One place to get started to learn more about architecture, no matter where you are in the life cycle of your system’s architecture, is to look that the SEI resources on architecture.
– Robert Nord, SEI