<Project Name>
Software Architecture Document
Version <1.0>
[Note: The following template is provided for use with the
Unified Process for EDUcation. Text enclosed in square brackets and displayed
in blue italics (style=InfoBlue) is included to provide guidance to the author
and should be deleted before publishing the document. A paragraph entered
following this style will automatically be set to normal (style=Body Text).]
[To customize automatic fields in Microsoft Word (which
display a gray background when selected), select File>Properties and replace
the Title, Subject and Company fields with the appropriate information for this
document. After closing the dialog, automatic fields may be updated throughout
the document by selecting Edit>Select All (or Ctrl-A) and pressing F9, or
simply click on the field and press F9.
This must be done separately for Headers and Footers. Alt-F9 will toggle between displaying the
field names and the field contents. See
Word help for more information on working with fields.]
Revision History
|
Date |
Version |
Description |
Author |
|
<dd/mmm/yy> |
<x.x> |
<details> |
<name> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Table of Contents
1.3 Definitions, Acronyms, and Abbreviations
2. Architectural Representation
3. Architectural Goals and
Constraints
5.2 Architecturally Significant Design Packages
Software Architecture
Document
[The introduction of the Software Architecture
Document provides an overview of the entire Software
Architecture Document. It includes the purpose, scope, definitions,
acronyms, abbreviations, references, and overview of the Software
Architecture Document.]
[This section
defines the role or purpose of the Software Architecture Document,
in the overall project documentation, and briefly describes the structure of
the document. The specific audiences for the document are identified, with an
indication of how they are expected to use the document.]
[This subsection provides the definitions of all terms,
acronyms, and abbreviations required to properly interpret the Software
Architecture Document. This information may be provided by
reference to the project’s Glossary.]
[This subsection provides a complete list of all documents
referenced elsewhere in the Software Architecture Document.
Identify each document by title, report number (if applicable), date, and
publishing organization. Specify the sources from which the references can be
obtained. This information may be provided by reference to an appendix or to
another document.]
[This subsection describes what the rest of the Software
Architecture Document contains and explains how the Software
Architecture Document is organized.]
[This section describes what software architecture is for the
current system, and how it is represented. It enumerates the views that are necessary,
and for each view, explains what types of model elements it contains.]
[This section describes the software requirements and
objectives that have some significant impact on the architecture; for example,
safety, security, privacy, use of an off-the-shelf product, portability,
distribution, and reuse. It also captures the special constraints that may
apply: design and implementation strategy, development tools, team structure,
schedule, legacy code, and so on.]
[This section lists use cases or scenarios from the use-case
model if they represent some significant, central functionality of the final
system, or if they have a large architectural coverage—they exercise many
architectural elements or if they stress or illustrate a specific, delicate
point of the architecture.]
[This section illustrates how the software actually works by
giving a few selected use-case (or scenario) realizations, and explains how the
various design model elements contribute to their functionality. If a Use-Case
Realization Document is available, refer to it in this section.]
[This section describes the architecturally significant parts
of the design model, such as its decomposition into subsystems and packages.
And for each significant package, its decomposition into classes and class
utilities. You should introduce architecturally significant classes and
describe their responsibilities, as well as a few very important relationships,
operations, and attributes.]
[This subsection describes the overall decomposition of the
design model in terms of its package hierarchy and layers.]
[For each significant package, include a subsection with its name,
its brief description, and a diagram with all significant classes and packages
contained within the package.
For each significant class in the package, include its name,
brief description, and, optionally, a description of some of its major responsibilities,
operations, and attributes.]
[A description of the major entity interfaces, including
screen formats, valid inputs, and resulting outputs. If a User-Interface
Prototype Document is available, refer to it in this section]
[A description of the major dimensioning characteristics of
the software that impact the architecture, as well as the target performance
constraints.]
[A description of how the software architecture contributes
to all capabilities (other than functionality) of the system: extensibility,
reliability, portability, and so on. If these characteristics have special
significance, such as safety, security or privacy implications, they must be
clearly delineated.]