Software Architecture

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/37

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.

38 Terms

1
New cards

What is software architecture?

The fundamental organization of a system embodied in its components, their relationships to each other and the environment, and the principles guiding its design and evolution.

2
New cards

What are quality attributes (non-functional requirements)?

System properties that describe how well the system performs its functions, including performance, availability, security, modifiability, usability, and testability.

3
New cards

What is a quality attribute scenario?

A structured way to specify quality requirements consisting of stimulus, source, environment, artifact, response, and response measure.

4
New cards

What is a context diagram?

A high-level diagram showing the system boundary and its interactions with external entities in its environment.

5
New cards

What is the 3+1 approach to architectural description?

A method using four views: Module view (static structure), Component & Connector view (runtime behavior), Allocation view (deployment), and Plus (+1) view (scenarios/use cases).

6
New cards

Why do we need multiple architectural views?

Different stakeholders have different concerns, and no single view can capture all architecturally significant information about a complex system.

7
New cards

What is UML in architectural description?

Unified Modeling Language - provides standardized notation for documenting software architecture across different views and diagrams.

8
New cards

What are architectural styles?

Named collections of architectural design decisions that constrain architectural elements and their relationships (e.g., layered, pipe-and-filter, client-server).

9
New cards

What are architectural tactics?

Design decisions that influence specific quality attributes - concrete techniques to achieve quality goals (e.g., redundancy for availability, caching for performance).

10
New cards

What is the "rational design process" paradox?

The idea that while we should present design as a rational process, the actual design process is iterative, messy, and involves backtracking - but we document it as if it were linear.

11
New cards

Name key availability tactics.

Fault detection (ping/echo, heartbeat), fault recovery (active/passive redundancy), fault prevention (removal from service).

12
New cards

Name key performance tactics.

Resource demand (manage sampling rate, limit event response), resource management (introduce concurrency, maintain copies), resource arbitration (scheduling policies).

13
New cards

What is the intensionality/locality thesis?

Design decisions should be localized to single modules, and the intent (what) should be separated from the implementation (how).

14
New cards

What is the ③①② process for design problems?

③ Identify what varies, ① Encapsulate variation behind interfaces, ② Program to interfaces not implementations.

15
New cards

Strategy Pattern

Define a family of algorithms, encapsulate each one, and make them interchangeable at runtime.

16
New cards

Observer Pattern

Define a one-to-many dependency so that when one object changes state, all dependents are notified automatically.

17
New cards

Abstract Factory Pattern

Provide an interface for creating families of related objects without specifying their concrete classes.

18
New cards

Façade Pattern

Provide a unified interface to a set of interfaces in a subsystem, making the subsystem easier to use.

19
New cards

What is architectural prototyping?

Creating experimental implementations to explore, validate, or communicate architectural decisions before full implementation.

20
New cards

When should you use architectural prototyping?

When analytical methods are insufficient, when exploring new technologies, or when validating performance assumptions and design decisions.

21
New cards

How does architectural prototyping differ from regular prototyping?

Focuses specifically on architectural concerns (quality attributes, structural decisions) rather than functional requirements or user interfaces.

22
New cards

What is the emerging vs. implicit architecture challenge in agile?

Balancing the agile principle of emerging design with the need for deliberate architectural decisions to avoid implicit, poor architectural choices.

23
New cards

How can architecture work in agile development?

Through lightweight documentation, architectural spikes, continuous refactoring, and regular architecture reviews integrated into sprints.

24
New cards

What are the risks of "agile in distress"?

Technical debt accumulation, architectural erosion, and inability to scale when architecture is completely emergent without guidance.

25
New cards

What is ATAM (Architecture Tradeoff Analysis Method)?

A scenario-based evaluation method that identifies architectural risks, non-risks, sensitivity points, and tradeoffs through stakeholder participation.

26
New cards

What is aSQA (architectural Software Quality Assurance)?

A lightweight, continuous evaluation technique using architectural metrics and automated analysis to monitor architectural quality.

27
New cards

What are the main goals of architectural evaluation?

Identify risks early, validate quality attribute requirements, compare architectural alternatives, and communicate architectural decisions.

28
New cards

What is a software ecosystem?

A collection of software projects that are developed and co-evolve together in the same environment, sharing common platforms, technologies, or business models.

29
New cards

What are the three structures in ecosystem analysis?

Software structures (technical dependencies), business structures (value networks), and organizational structures (governance and relationships).

30
New cards

What determines ecosystem health?

Activity levels, diversity of contributors, platform stability, and ability to attract and retain participants.

31
New cards

What defines a legacy system?

An older system that remains in use despite being based on outdated technologies, often business-critical but difficult to maintain or modify.

32
New cards

What are the main approaches to legacy system modernization?

Big bang replacement, gradual migration, wrapping/encapsulation, and maintenance-only approaches.

33
New cards

What ethical considerations exist in software engineering?

Responsibility for system consequences, user privacy, security obligations, and the impact of technical decisions on society.

34
New cards

What is architecture erosion?

The gradual degradation of architectural integrity as systems evolve, where implementation deviates from intended design.

35
New cards

What is the Symphony approach?

A view-driven architecture reconstruction method using source views (existing artifacts), target views (architecture-as-implemented), and hypothetical views (architecture-as-designed).

36
New cards

What is reverse engineering vs. reengineering?

Reverse engineering analyzes existing systems to understand their architecture; reengineering involves both reverse engineering and forward engineering to create improved systems.

37
New cards

What are polymetric views?

Visualization technique combining software metrics with visual representations to understand system structure and evolution patterns.

38
New cards

What is dynamic analysis in architecture reconstruction?

Analyzing runtime behavior through execution traces, profiling, and monitoring to understand the actual component interactions and performance characteristics.