04 Foundational Concepts Flashcards
Software Architecture
Set of fundamental principles of design and evolution of a software system as it operates in its environment which are embodied in its software elements, the relationships among them, and the properties of both.
Two types of structures that are of interest to the software architect:
Static Structures : Organization of design time elements
Dynamic Structures: Organization of runtime elements.
Architectural Elements
A fundamental piece from which a system is constructed
Key Attributes of Architectural Element
A clearly defined set of responsibilities.
A clearly defined boundary
A set of clearly defined interfaces, which define the services that the element provdies to the other architectural elements.
Stakeholder
An individual, team, organization, or classes thereof having an interest in the realization of the system.
Have concerns: a requirement, an objective, a constraint, an intention or an aspiration for that architecture.
Drive the whole shape and direction of the architecutre, which is developed solely to create a system for their benefit and to serve their needs.
Types of Architectural Concerns
Broad/General
Detail/Specific
Candidate Architecture
Particular arrangment of static and dynamic strcutures that has the potential to exhibit the system’s required externally visible behaviors and quality properties.
Architectural Description (AD)
A set of products that documents an architecture in a way
- That its stakeholders can understand what is going on
- Demonstrates that the architecture has met stakeholders’ concerns.
A good AD is
One that effectively and consistently communicates the key aspects of the architecture to the appropriate stakeholders
One that sucessfully addresses the concerns of its stakeholders and when those concerns are in conflict, blances them in a way that is acceptable.