F4 - Architecture Documentation Flashcards
What is a view in the context of documenting architectures?
A view is a representation of a whole system from the perspective of a related set of concerns, also known as a viewpoint
What is the purpose of having different views of a software system?
Different views allow for capturing various aspects or concerns of the system without contradicting each other, providing a comprehensive understanding of the system’s architecture
Describe the properties of a view in architectural documentation
Views should not contradict each other, can represent different perspectives of the system, and utilize appropriate notations or diagrams, which should be explained if not standardized
What are some examples of views commonly used in software architecture documentation
Context views, runtime views, building block views, and deployment views
Explain the purpose of building block views in software architecture documentation.
Building block views depict the logical structure and dependencies between blocks of the system, providing a top-level look at how the system is decomposed into logical building blocks
What type of diagrams can be used to represent building block views in architectural documentation?
UML class diagrams and UML component diagrams are commonly used for building block views
What is the focus of runtime views in software architecture documentation?
Runtime views describe the behavior of the system, including important communication patterns, essential application logic, and responses to significant events
Which type of diagram is often used to depict runtime views focusing on the order of activities and control flow?
UML activity diagrams are commonly used to represent runtime views
Explain the purpose of deployment views in software architecture documentation
Deployment views describe how the logical structure of the system maps to physical structures, including hardware, operating systems, and servers
What diagram is typically used to depict deployment views, showing how components manifest and are connected via protocols
UML deployment diagrams are commonly used for depicting deployment views.
What are cross-cutting concerns in software architecture?
Cross-cutting concerns are aspects of the system that cannot be illustrated as one view but are critical considerations for software architects, such as authentication, rights management, and data integrity.
How can architectural decisions be documented in a lean way?
Architectural decisions can be documented using techniques like Architecture Decision Records (ADRs), which provide a concise explanation of why a particular decision was made in the architecture
What is the purpose of evaluating alternatives in software architecture?
Evaluating alternatives helps assess how well each option fulfills relevant requirements, supports business goals, and meets the needs of the project
How can ADRs be utilized in architecture documentation?
ADRs can be used to explain why certain architectural decisions were made, providing transparency and rationale behind the chosen approach.