For all but the most trivial software systems, you must pay close attention to the architecture - the conceptual glue that holds every phase of a project together for its many stakeholders. Without an architecture that is appropriate for the problem being solved, the project will stumble along or, most likely, fail. Even with a superb architecture, if that architecture is not well understood or well communicated - in other words, well documented - the project cannot be considered a complete success.
Although architecture is now widely recognized as a critical element in software development, there has been little guidance independent of language or notation on how to capture it. Based on the authors' extensive experience, Documenting Software Architectures helps you decide what information to document, and then, with guidelines and examples (in various notations, including UML), shows you how to express an architecture in a form that everyone can understand. If you go to the trouble of creating a strong architecture, you must also be prepared to describe it thoroughly and clearly, and to organize it so that others can quickly find the information they need. Essential topics for practitioners include :
• Seven rules for sound documentation
• The uses of software architecture documentation, including goals and strategies • Architectural views and styles, with general introductions and specific examples • Documenting software interfaces and software behavior • Templates for capturing and organizing information to generate a coherent package