150 likes | 227 Views
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
E N D
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 Architecture documentation serves as the basis for system analysis and construction Notations for Architecture Documentation Informal notations Semiformal notations (e.g. UML) Formal notations (e.g. Architecture Description Language (ADL)) Views
Documenting Software Architectures Properties of a module in module view Name Responsibility Visibility of interfaces Implementation information Mapping to source code units Test information Management information Implementation constraints Revision history
Documenting Software Architectures Properties of a component or connector in C&C view Name Type Reliability Performance Resource requirements Functionality Security Concurrency Modifiability (for data message) Tier
Documenting Software Architectures Views Quality Views For documenting how quality attribute requirements are fully realized in the architecture design. Security view Communication view Exception or error-handling view Reliability view Performance view
Documenting Software Architectures Choosing the Views Step 1: Build a stakeholder/view table Step 2: Combine views Step 3: Prioritize and stage (usually decomposition (module) view first) Combining Views The easiest way to merge views is to create an overlay that combines the information that would otherwise have been in two separate views. Common combinations: 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.
Documenting Behavior • Documenting an architecture requires behavior documentation that complements structural views by describing how architecture elements interact with each other. • Two kinds of notations available documenting behavior • Trace-oriented languages • Traces are sequences of activities or interactions that describe the system’s response to a specific stimulus when the system in a specific state. • A trace describes a sequence of activities or interactions between structural elements of a system. • 4 notations of documenting traces: • Use cases • UML sequence diagram • UML communication diagram • UML activity diagram • Comprehensive languages • Architecture Analysis and Design Language (AADL): reason about runtime behavior • Specification and Description Language (SDL): for telephony Documenting Software Architectures