A software system's architecture may be its most crucial determinant of success or failure. Without an adequate architecture that delivers required function as well as quality attributes, the project will fail. But communicating an architecture to its stakeholders is as important a job as creating it in the first place. An architecture must be understood so that others—designers of finer grained components, implementers, testers, performance engineers, security analysts, builders of interfacing systems—can build systems from it, analyze it, maintain it, and learn from it.
The SEI has a proven approach to documenting software architecture called Views and Beyond, or V&B. The name emphasizes that we use the concept of a view as the fundamental organizing principle for architecture documentation. A view represents a set of system elements and the relations associated with them. Views represent the many system structures that are present simultaneously in software systems. The basic principle of V&B is that documenting a software architecture involves documenting the relevant views, and then documenting the information that applies to more than one view.
V&B is more than an architecture documentation method. It also helps the architect identify and record necessary design decisions during development.
Documentation should be the helpful result of making an architecture decision, not a separate step in the architecture process. The more that documentation is treated as a follow-on to design, with its own separate method, the less likely it will be done at all.
Documenting a software architecture is a matter of documenting the relevant views, and then adding information that applies across views. A first step is to choose the relevant views, and this choice in turn depends on the anticipated usage. Documentation may be used to drive analysis, to constrain an implementation, to manage a project, or to convey an introductory overview of a system.
Documentation that applies across views follows a simple how-what-why approach: how the documentation is organized to serve stakeholders, what the architecture is, and why the architecture is the way it is (i.e., design rationale).
V&B works in both Agile and traditional development settings. It is notation, language, domain, and technology independent. And it produces documentation that is compliant with Standards ISO/IEC 42010 and IEEE 1471-2000.
Documentation can help a software development organization avoid the pitfalls of inappropriate or incomplete or vague documentation. Many have experienced the frustration of committing a massive expenditure for documentation, only to have the resulting artifacts gather dust on shelves. This is the result of documentation that has not been properly planned and aimed more at satisfying standards than satisfying stakeholder needs. Coaching can prevent this situation by raising documentation and documentation planning to a level commensurate with its importance.
Software architects and the people to whom they must communicate the architecture will benefit: designers, implementers, technical managers, testers, analysts, quality specialists, and others. In short, every member of a software development project can gain.
The SEI offers support for applying V&B in three ways:
SEI staff will work with a customer team to understand the specific situation and undertake the best coaching approaches that are appropriate. For additional technical details or to arrange architectural coaching services, contact us using the link in the For more information box at the bottom of this page.
Documenting Software Architectures in an Agile World
Paul Clements, James Ivers, Reed Little, Robert Nord, and Judith Stafford
Documenting Software Architectures (podcast)
How to Represent the Architecture of Your Enterprise Application Using UML 2.0 and More (tutorial)
Paulo Merson, JavaOne Online Technical Sessions
A Structured Approach for Reviewing Architecture Documentation
Robert L. Nord, Paul C. Clements, David Emery, and Rich Hilliard