Documenting Software Architectures. Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture documentation servers as a primary vehicle for communication among stakeholders
Uses and Audiences for Architecture Documentation
Architecture documentation serves as a means of education
Architecture documentation servers as a primary vehicle for communication among stakeholders
Architecture documentation serves as the basis for system analysis and construction
Notations for Architecture Documentation
Semiformal notations (e.g. UML)
Formal notations (e.g. Architecture Description Language (ADL))
Properties of a module in module view
Visibility of interfaces
Mapping to source code units
Properties of a component or connector in C&C view
Modifiability (for data message)
For documenting how quality attribute requirements are fully realized in the architecture design.
Exception or error-handling view
Choosing the Views
Step 1: Build a stakeholder/view table
Step 2: Combine views
Step 3: Prioritize and stage (usually decomposition (module) view first)
The easiest way to merge views is to create an overlay that combines the information that would otherwise have been in two separate views.
Various C&C views
Deployment view with either SOA or communicating-processes views
Decomposition view and any of work assignment, implementation, uses, or layered views
Building the Documentation Package
Documenting a view
Documenting information beyond views
Documenting Behavior (using trace-oriented languages)
Traces are sequences of activities or interactions that describe the system’s response to a specific stimulus when the system is in a specific state. A trace describes a sequence of activities or interactions between structural elements of a system.
UML use case, sequence, communication, activity, state machine diagrams.