CH 02: Software Architecture

0.0(0)
studied byStudied by 1 person
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/38

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

39 Terms

1
New cards

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.

2
New cards

Software architecture

provides a representation that facilitates communication among all stakeholders interested in the development of a computer-based system.

3
New cards

Architecture

highlights early design decisions that will have a profound impact on all software engineering work that follows.

4
New cards

Architecture

constitutes a relatively small, intellectually graspable mode of how the system is structured and how its components work together.

5
New cards

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.

6
New cards

IEEE Standard

defines an architectural description (A D) as a "a collection of products to document an architecture."

7
New cards

architecture description

An ______ shall identify the system stakeholders having concerns considered fundamental to the architecture of the system-of-interest.

8
New cards

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.

9
New cards

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.

10
New cards

walking skeleton

To avoid rework, user stories are used to create and evolve an architectural model (________) before beginning any coding.

11
New cards

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.

12
New cards

agile

Well run _____ projects include delivery of architectural documentation during each sprint.

13
New cards

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.

14
New cards

Architectural Styles

Each style describes a system category that encompasses:

1. set of components

2. set of connectors

3. constraints

4. semantic models

15
New cards

set of components

(for example: a database, computational modules) that perform a function required by a system.

16
New cards

set of connectors

____ that enable "communication, coordination and cooperation" among components.

17
New cards

constraints

____ that define how components can be integrated to form the system.

18
New cards

semantic models

____ that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.

19
New cards

Data Centered Architecture

Focuses on a central data store (e.g., database or repository) that different components access, update, and share.

20
New cards

Data Flow Architecture

Uses a pipeline or series of transformations where input data flows through processing steps until output is produced.

21
New cards

Call Return Architecture

Organizes software into modules with a hierarchy of control, where higher-level modules call lower-level ones and get results back.

22
New cards

Object-Oriented Architecture

Structures the system as a collection of interacting objects that encapsulate data and behavior.

23
New cards

Layered Architecture

Divides the system into layers (e.g., presentation, logic, data) where each layer provides services to the one above it.

24
New cards

Model View Controller Architecture

Separates data (model), user interface (view), and control logic, improving modularity and maintainability.

25
New cards

Architectural Organization and Refinement

- Control

- Data

26
New cards

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?

27
New cards

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?

28
New cards

Architectural Considerations

- Economy

- Visibility

- Spacing

- Symmetry

- Emergence

29
New cards

Economy

software is uncluttered and relies on abstraction to reduce unnecessary detail.

30
New cards

Visibility

Architectural decisions and their justifications should be obvious to software engineers who review.

31
New cards

Spacing

Separation of concerns in a design without introducing hidden dependencies.

32
New cards

Symmetry

Architectural symmetry implies that a system is consistent and balanced in its attributes.

33
New cards

Emergence

Emergent, self-organized behavior and control are key to creating scalable, efficient, and economic software architectures.

34
New cards

software

The _____ must be placed into context.

35
New cards

design

The _____ should define the external entities (other systems, devices, people) that the software interacts with and the nature of the interaction.

36
New cards

archetypes

A set of architectural _____ should be identified.

37
New cards

archetype

is an abstraction (similar to a class) that represents one element of system behavior.

38
New cards

designer

The _____ specifies the structure of the system by defining and refining software components that implement each archetype.

39
New cards

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).