1/38
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
The architecture is not the operational software, it is a representation that enables a software engineer to:
1. Analyze the effectiveness of the design in meeting its stated requirements,
2. Consider architectural alternatives at a stage when making design changes is still relatively easy, and
3. Reduce the risks associated with the construction of the software.
Software architecture
provides a representation that facilitates communication among all stakeholders interested in the development of a computer-based system.
Architecture
highlights early design decisions that will have a profound impact on all software engineering work that follows.
Architecture
constitutes a relatively small, intellectually graspable mode of how the system is structured and how its components work together.
The IEEE Computer Society has proposed IEE E-Std-42010-2011, Systems and Software Engineering - Architecture Description
Describes the use of architecture viewpoints, architecture frameworks, and architecture description languages as a means of codifying the conventions and common practices for architectural description.
IEEE Standard
defines an architectural description (A D) as a "a collection of products to document an architecture."
architecture description
An ______ shall identify the system stakeholders having concerns considered fundamental to the architecture of the system-of-interest.
architecture description
These concerns shall be considered when applicable and identified in the ______: system purpose, suitability of the architecture, feasibility of constructing and deploying the system, risks and impacts of the system, and the maintainability and evolvability of the system.
Architecture Decision Documentation
1. Determine information items needed for each decision.
2. Define links between each decision and appropriate requirements.
3. Provide mechanisms to change status when alternative decisions need to be evaluated.
4. Define prerequisite relationships among decisions to support traceability.
5. Link significant decisions to architectural views resulting from decisions.
6. Document and communicate all decisions as they are made.
walking skeleton
To avoid rework, user stories are used to create and evolve an architectural model (________) before beginning any coding.
work units
Use models which allow software architects to add user stories to the evolving storyboard and works with the product owner to prioritize the architectural stories as "sprints" (_______) are planned.
agile
Well run _____ projects include delivery of architectural documentation during each sprint.
sprint
After the _____ is completed, the architect reviews the working prototype for quality before the team presents it to the stakeholders in a formal sprint review.
Architectural Styles
Each style describes a system category that encompasses:
1. set of components
2. set of connectors
3. constraints
4. semantic models
set of components
(for example: a database, computational modules) that perform a function required by a system.
set of connectors
____ that enable "communication, coordination and cooperation" among components.
constraints
____ that define how components can be integrated to form the system.
semantic models
____ that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.
Data Centered Architecture
Focuses on a central data store (e.g., database or repository) that different components access, update, and share.
Data Flow Architecture
Uses a pipeline or series of transformations where input data flows through processing steps until output is produced.
Call Return Architecture
Organizes software into modules with a hierarchy of control, where higher-level modules call lower-level ones and get results back.
Object-Oriented Architecture
Structures the system as a collection of interacting objects that encapsulate data and behavior.
Layered Architecture
Divides the system into layers (e.g., presentation, logic, data) where each layer provides services to the one above it.
Model View Controller Architecture
Separates data (model), user interface (view), and control logic, improving modularity and maintainability.
Architectural Organization and Refinement
- Control
- Data
Control.
• How is control managed within the architecture?
• Does a distinct control hierarchy exist, and if so, what is the role of components within this control hierarchy?
• How do components transfer control within the system?
• How is control shared among components?
• What is the control topology (that is, the geometric form that the control takes)?
• Is control synchronized, or do components operate asynchronously?
Data.
• How are data communicated between components?
• Is the flow of data continuous, or are data objects passed to the system sporadically?
• What is the mode of data transfer?
• Do data components exist, and if so, what is their role?
• How do functional components interact with data components?
• Are data components passive or active?
• How do data and control interact within the system?
Architectural Considerations
- Economy
- Visibility
- Spacing
- Symmetry
- Emergence
Economy
software is uncluttered and relies on abstraction to reduce unnecessary detail.
Visibility
Architectural decisions and their justifications should be obvious to software engineers who review.
Spacing
Separation of concerns in a design without introducing hidden dependencies.
Symmetry
Architectural symmetry implies that a system is consistent and balanced in its attributes.
Emergence
Emergent, self-organized behavior and control are key to creating scalable, efficient, and economic software architectures.
software
The _____ must be placed into context.
design
The _____ should define the external entities (other systems, devices, people) that the software interacts with and the nature of the interaction.
archetypes
A set of architectural _____ should be identified.
archetype
is an abstraction (similar to a class) that represents one element of system behavior.
designer
The _____ specifies the structure of the system by defining and refining software components that implement each archetype.
Architectural Tradeoff Analysis
1. Collect scenarios.
2. Elicit requirements, constraints, environment description.
3. Describe the architectural styles/patterns that have been chosen to address the scenarios and requirements using one of these views: module, process, data flow.
4. Evaluate quality attributes by considering each one in isolation.
5. Identify the sensitivity of quality attributes to various architectural attributes for a specific architectural style.
6. Critique candidate architectures (developed in step 3) using the sensitivity analysis (conducted in step 5).