Description and Communication of Software Architectures Flashcards
What is an architecture view?
- representation of the system from a specific viewpoint
- emphasizes important objects and aspects
- creates high level abstractions
- obscures for the specific viewpoint unimportant details
What are well-established views (iSAQB)? Which diagrams generally belong to these views?
- context view
- runtime view (sequence diagram)
- building block view (class diagram)
- deployment view (deployment diagram)
Describe in short the Context view (or context diagram)
- diagram with (preferably) UML components
- contains the system under design as a black box
- as well as all external systems and users as actors or UML components
Describe in short the Runtime view
- sequence, activity or similiar diagrams
- describes main flows / sequences between building blocks that make up the system
Describe in short the Building Block view
- UML component or High-level class diagrams
- describes functional and (possibly) technical building blocks of the system and their relationship with each other
Describe in short the Deployment view
- Mapping of the softwrae to physical infrastructure
- deployment of software to computer nodes, networks, …
How do the main four views work together with other views?
- specialized views can be used to supplement the main views
- each additional view needs time and effort for creation and maintenance, resulting in a bigger documentation effort
examples: - Data view (database structures, like Entity-relationship model)
- “Big Picture” for management communication
- Mask view (screen masks, website screen sequence diagrams, …)
How often do these types of views exist?
- more than once
- can describe different parts in more detail
- in accordance with project and stakeholder needs and criticality of the system
What types of UML structure diagrams are mainly used for Architecture documentation?
- UML component diagram
- UML class diagram
- UML composite structure diagram
- UML deployment diagram
- UML package diagram
What types of UML behavior diagrams are mainly used for Architecture documentation?
- UML sequence diagram
- UML activity diagram
- UML use-case diagram
- UML communication diagram
What does an UML class diagram contain?
- static structure of classes and their relationship with each other
- typical relationships are aggregation, associations, specializations and generalizations
- relationships can have different cardinalities
What does an UML component diagram contain?
- provides overview of the building blocks that make up the system
- describes them using UML components
- UML components have well-defined interfaces via which they are connected to other system components
What does an UML activity diagram contain?
- shows possible sequences within elements of the system (classes, components, use-cases,…)
- can be used to provide detailed descriptions of algorithms, data flow and control flows
- usually have a starting point, end point, substeps and branches
What does an UML sequence diagram contain?
- vertical description of communication between instances of building blocks in the system
- can be nested to prevent them from becoming uncomprehensibly large
How should you deal with other diagrams/views?
- less formal diagrams, not UML, can be more appropriate for your stakeholders
- like power-point presentations or Event-Driven Process chains
What are the guidelines for writing a architecture view description
- match description to target group
- rule of thumb: use as little formalism as possible, but as much as necessary
- resist the temptation to act dogmatically, project delays because of diagrams are seldom useful
- useful initial framework: the higher the risks/complexity of the building block, the more comprehensive the documentation has to be
- low risks = some risk may be omitted
What is an example template for the description of architecture views?
- Brief description
- Diagrams
- Element catalog
- Variability
- Background information
In the template for architecture view description describe the contents of:
1. Brief description
- short text-based overview of what is involved in this specific case
In the template for architecture view description describe the contents of:
- 2. Diagrams
Graphical representation of the view
In the template for architecture view description describe the contents of:
- 3. Element catalog
- textual or tabular list of elements/building blocks that appear in the architecture view
including: - elements and properties
- relationships and their properties
- interfaces of and between elements
- element behavior
In the template for architecture view description describe the contents of:
- 4. Variability
- text-based description of variable elements or relationships
- regarding requierements, architecture, design, involved external systems, infrastructure
- depending on view also operating parameters, installation, configuration
- distinction can be useful between:
- changeability - foreseeable ability to modify the current system
- flexibility - ability to extend the system
In the template for architecture view description describe the contents of:
- 5. Background information
- text-based background information
- useful for historically justification of architecture design decisions
usually includes: - justificatins for selected structure or chosen alternative
- results of analyses or preliminary assessments of specific content-related system aspects
- assumptions made respective to the system, building blocks in use, or system environment
- references to associated/connected views
- source information of sample code