Artifact: Software Architecture Document
Purpose
The software architecture document provides a comprehensive overview of the architecture of the software system. It serves as a communication medium between the architect and other project team members regarding architecturally significant decisions which have been made on the project. Brief Outline
(hyperlinks into HTML template in a new window) 1. Introduction1.1 Purpose1.2 Scope1.3 Definitions, Acronyms and Abbreviations1.4 References1.5 Overview2. Architectural Representation3. Architectural Goals and Constraints4. Use-Case View4.1 Use-Case Realizations5. Logical View5.1 Overview5.2 Architecturally Significant Design Packages6. Process View7. Deployment View8. Implementation View8.1 Overview8.2 Layers9. Data View (optional)10. Size and Performance11. QualityTiming
The representation and objectives of the software architecture is usually something that must be defined before the very first iterations, and then be maintained throughout the project. These architectural representation guidelines are documented in initial versions of the Software Architecture Document. The Software Architecture Document is primarily developed during the elaboration phase, because one of the purposes of this phase is to establish a sound architectural foundation. The use-case view within the document is likely to be considered before the other views, because the use cases drive the development and are an essential input to iteration planning. For systems with a large degree of concurrency and distribution, the process and deployment views are also likely to be considered early, because they then might have substantial impact on the entire system. Responsibility
An architect is responsible for producing the Software Architecture Document, which captures the most important design decisions in multiple architectural views. The architect establishes the overall structure for each architectural view: the decomposition of the view, the grouping of elements, and the interfaces between these major groupings. Thus, in contrast with the other workers, the architect's view is one of breadth, as opposed to depth. The architect is also responsible for maintaining the architectural integrity of the system through the development process by:
Tailoring
You should adjust the outline of the Software Architecture Document to suit the nature of your software:
The advantages and disadvantages of each architectural view follow: Use-Case View
Logical View
Process View
Deployment View
Implementation View
Data View
|
Rational Unified
Process |