Artifacts > Analysis & Design Artifact Set > {More A&D Artifacts} > Software Architecture Document

Software Architecture Document
The Software Architecture Document provides a comprehensive architectural overview of the system, using a number of different architectural views to depict different aspects of the system.
Role: Designer
More Information:

Input to Activities: Output from Activities:

Templates, Case-Study, Report.. To top of page

The Word template can be bought through a template package. Case studies and reports are freely available in the table below.


Purpose To top of page

The software architecture document provides a comprehensive overview of the architecture of the software system. It serves as a communication medium between the software architect and other project team members regarding architecturally significant decisions which have been made on the project.

Timing To top of page

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 To top of page

A Designer is responsible for producing the Software Architecture Document, which captures the most important design decisions in multiple architectural views.

The Designer establishes the overall structure for each architectural view: the decomposition of the view, the grouping of elements, and the interfaces between these major groupings. Therefore, in contrast with the other roles, the designer's view is one of breadth, as opposed to depth.

The designer is also responsible for maintaining the architectural integrity of the system through the development process by:

  • Approving all changes to architecturally significant elements, such as major interfaces, described in the Software Architecture Document.
  • Being part of the "change-control board" decisions to resolve problems that impact the software architecture.

Tailoring To top of page

You should adjust the outline of the Software Architecture Document to suit the nature of your software:

  • Some specific aspects of the software may require their own section; for example, aspects related to data management or usability issues.
  • You may need additional appendices to explain certain aspects, such as the rationale of certain critical choices together with the solutions that have been eliminated, or to define acronyms or abbreviations, or present general design principles.
  • The order of the various sections may vary, depending on the system's stakeholders and their focus or interest.

The advantages and disadvantages of each architectural view follow:

Use-Case View

This view is mandatory.

Logical View

This view is mandatory.

Process View

This view is optional. Use this view only if the system has more than one thread of control, and the separate threads interact or are dependent upon one another.

Implementation View

This view is optional. Use this view only in cases where the implementation is not strictly driven from the design, i.e. where there is a different distribution of responsibilities between corresponding packages in the Design and Implementation models. If the packaging of the design and implementation models are identical, this view can be omitted.

Data View

This view is optional. Use this view only if persistence is a significant aspect of the system. and the translation from the Design Model to the Data Model is not done automatically by the persistence mechanism.