Software Architecture Flashcards
What is Software Architecture?
Fundamental organization of a system embodied by its components, their relationships to each other & the environment, & the principles guiding its design & evolution
How do Bass, Clements, and Kazman define Software Architecture?
The set of structures needed to reason about the system, which comprise software elements, relations among them & properties of both
True or False: Every system has an architecture, but an architecture is not a system
True, an architecture & a system are not the same thing
True or False: An architecture & an architecture description are not the same thing
True, an architecture exists whether it’s described (recorded) or not
True or False: Architecture Standards, architecture descriptions & development processes are separate concerns
True, What an architecture is is independent of how or whether it’s described & how it’s developed or implemented
Why is software architecture important?
- Projects are requirements driven and architecture centric
- Software Architecture is a blueprint
- Software Architecture defines work assignments
- Software Architecture is the “primary carrier of system qualities”
- Helps identify & mitigate risks
What is an Architectural View?
A collection of models that represent one aspect of the entire system.
Expresses the architecture from the perspective of one or more stakeholders to address specific concerns
What is an Architectural Viewpoint?
A set of conventions for constructing, interpreting, using & analyzing a type of architecture view.
Generalized frameworks that establish languages, notations, methodologies & technique used to create an architecture view
What is an Architecture Description (AD)?
Expresses one possible architecture for a given system & typically consists of a combination of models and documents
What is an Architecture Model?
Represents a concrete model used to represent a particular stakeholder perspective in an architecture view
What is an Architecture Decision?
The result of architectural design activities that results in the definition of refinement of an architectural description element
What is an Architecture Rationale?
records the explanation, justification or reasoning about architecture decisions that have resulted in architecture solutions & any discarded alternatives
What is an Architecture Framework?
Establishes a common practice for creating, interpreting, analyzing and using architecture descriptions within a particular domain
(e.g. Krutchen 4+1 View Model)
What is maintained as part of the ISO/IEC/IEEE 42010:2011 Standard?
A comprehensive survey of Architecture Frameworks
What are the 5 Viewpoints?
Requirements Design Interaction Deployment Validation
List the characteristics of a Design Viewpoint
- Defines the logical representation of a system
- Logical structures of the software system
- Described in Design Models
List the characteristics of a Physical Viewpoint
- Defines the physical structures of the system
- Physical elements that “manifest”, bring to life, logical elements
- Described in deployment models
What is the definition of a Module?
A unit of the system that is assigned specific computational responsibilities (concerns) & are the basis of work assignments
What is the definition of a Component?
A modular, autonomous unit with well-defined interfaces that is replaceable within its environment
What is the definition of a Subsystem?
A unit of hierarchical decomposition for large systems that is a type of component commonly instantiated indirectly
What is the definition of an Artifact?
A concrete element in the physical world that is used or produced by a software development process or the system itself
What are the 3 types of Architectural Structures?
Static Structures
Dynamic Structures
Allocation Structures
What are Static/Module Architectural Structures?
Define how the system is to be structured into implementation units that have to be constructed
What are the benefits of a Static/Module Architectural Structure?
- Each module has to represent a well-defined, non-overlapping concern
- Have clear and specific functional responsibilities