This book has presented guidance for assembling a package of effective, usable architecture documentation. We have offered a selection of viewtypes and styles that should fulfill the needs of most software architects and architectures and have shown how to document a wide range of architecture-centric information: from behavior to interfaces to rationale. The book stands on its own as a complete handbook for documentation.
But the book does not exist in a vacuum. Other writers, on their own or under the auspices of large organizations, have prescribed specific viewsets or other approaches for architecture. The IEEE has a standard for architecture documentation. Many people are writing about how to document an "enterprise architecture." It may not be clear whether the advice in this book is in concert or in conflict with these other sources. In some cases, it isn't clear whether there's a relationship at all.
Suppose, for example, that you're mandated to follow the precepts of the Rational Unified Process, with its five-view prescription. Or suppose that you think that the Siemens Four Views approach is the way to go. Or perhaps you work for a part of the U.S. government, which mandates adherence to the C4ISR architectural framework. Or you want to make sure that your products are compliant with ANSI /IEEE-1471-2000, the recent standard on architecture documentation. Or it's your lot to write down your organization's enterprise architecture. Can you use the prescriptions in this book and still meet your goals?
This chapter takes a tour of some significant related work in the field, with an eye toward reconciling our advice with their advice. We cover
Additionally, some topics are related to documentation but are not part of it. We discuss a few of these in Section 11.9, where we consider
Software Architectures and Documentation
Part I. Software Architecture Viewtypes and Styles
The Module Viewtype
Styles of the Module Viewtype
The Component-and-Connector Viewtype
Styles of the Component-and-Connector Viewtype
The Allocation Viewtype and Styles
Part II. Software Architecture Documentation in Practice
Advanced Concepts
Documenting Software Interfaces
Documenting Behavior
Choosing the Views
Building the Documentation Package
Other Views and Beyond
Rationale, Background, and Design Constraints
References