ITEC 4101 - L4: Architectural Styles & Patterns

0.0(0)
studied byStudied by 0 people
0.0(0)
call with kaiCall with Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/100

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No study sessions yet.

101 Terms

1
New cards
Software architecture
Organization of a system in terms of components, connectors, configurations, and constraints that guide construction and evolution.
2
New cards
Component (architecture)
Unit that packages system functionality (computation, storage, control) as a building block.
3
New cards
Connector (architecture)
Mechanism that enables interaction between components (e.g., calls, messages, streams, shared data access).
4
New cards
Architectural style
Family of system organizations defined by a vocabulary of components/connectors plus topology and semantic constraints.
5
New cards
Style topology
Common structural arrangement describing how components are connected in the style.
6
New cards
Style semantic constraints
Rules that restrict how components and connectors may be combined or behave.
7
New cards
Pure architectural style
Idealized form of a style used for learning; real systems usually mix styles.
8
New cards
Heterogeneous architecture
Architecture that combines multiple styles within one system or across system viewpoints.
9
New cards
Good architecture properties
Guided by consistent principles, resilient to change, reusable engineering knowledge, and supports the system lifecycle.
10
New cards
Data flow style
Architecture where data is transformed as it flows through a sequence/network of processing steps.
11
New cards
Data-flow component
Transformation step that reads inputs, performs computation, and outputs results.
12
New cards
Data-flow connector
Data stream carrying items between transformations, often unidirectional and buffered.
13
New cards
Functional composition model
Computation viewed as composing transformations over streams or sequences of data.
14
New cards
Batch sequential
Data-flow variant where each processing step runs to completion on a batch before the next begins.
15
New cards
Batch sequential connector
Intermediate storage medium between batch steps (historically tape or files).
16
New cards
Batch sequential use case
Periodic processing tasks such as payroll, billing, and end-of-day reports.
17
New cards
Pipes and filters
Data-flow variant where filters process data incrementally and pipes stream data between them.
18
New cards
Filter
Processing element that consumes input stream items and produces output stream items.
19
New cards
Pipe
Connector that transports stream items between filters, often implemented as FIFO buffering.
20
New cards
Incremental processing
Processing items as they arrive rather than waiting for the entire input to be available.
21
New cards
Filter independence
Pipes-and-filters invariant: filters are independent and do not share global state.
22
New cards
Order independence goal
Pipes-and-filters goal: correctness should not depend on the order of filter execution.
23
New cards
Upstream/downstream transparency
Filters ideally do not know the identities of upstream or downstream filters.
24
New cards
Push data flow
Source-driven flow where upstream components push data to downstream components.
25
New cards
Pull data flow
Sink-driven flow where downstream components request/pull data from upstream components.
26
New cards
Push-pull mix
Combining push and pull mechanisms; can increase synchronization complexity.
27
New cards
Passive sink/source
Endpoint that neither actively pushes nor pulls; relies on the other side to drive flow.
28
New cards
Pipes-and-filters strength: reuse
Filters can be reused and recombined when they agree on a data format.
29
New cards
Pipes-and-filters strength: maintenance
Filters can be added, removed, or replaced with limited impact.
30
New cards
Pipes-and-filters strength: analysis
Supports throughput and deadlock analysis due to explicit flow structure.
31
New cards
Pipes-and-filters strength: parallelism
Filters can execute concurrently, improving throughput on multi-core/distributed systems.
32
New cards
Pipes-and-filters weakness: batch degeneration
Often degrades into batch behavior when filters require whole-input context.
33
New cards
Pipes-and-filters weakness: shared data
Global shared state is hard/expensive; style prefers stateless filters.
34
New cards
Pipes-and-filters weakness: incremental design
Designing truly incremental filters can be difficult for some problems.
35
New cards
Pipes-and-filters weakness: interactivity
Poor fit for highly interactive applications requiring rapid bidirectional control.
36
New cards
Pipes-and-filters weakness: error handling
Mid-pipeline failures are hard; recovery often requires restart or complex compensation.
37
New cards
Pipes-and-filters weakness: format constraints
Implementation may force a uniform representation (e.g., text) that can be inefficient.
38
New cards
Call-and-return style
Architecture organized around procedure calls where a caller transfers control to a callee and receives a return.
39
New cards
Main program and subroutines
Call-and-return variant where a central main program calls a hierarchy of subroutines.
40
New cards
Control flow (call-and-return)
Explicit control transfer: caller invokes callee and typically waits for completion.
41
New cards
Procedure call connector
Connector where control and data are passed via parameters and return values.
42
New cards
Data abstraction
Call-and-return variant where components encapsulate data representation and provide operations on it.
43
New cards
Object-oriented style
Architecture where objects/ADTs encapsulate state and behavior; interaction occurs via method calls/messages.
44
New cards
Encapsulation
Hiding internal representation behind an interface to preserve integrity and support change.
45
New cards
OO connector
Interaction via method call or message send between objects.
46
New cards
OO strength: implementation change
Internal implementation can change without affecting clients if the interface remains stable.
47
New cards
OO weakness: identity coupling
Objects often must know each other’s identities/references to interact.
48
New cards
OO weakness: side effects
Behavior can be affected by shared dependencies and indirect interactions across objects.
49
New cards
OO weakness: interaction complexity
Dynamic object collaborations can be difficult to analyze and predict.
50
New cards
Interacting processes style
Architecture where independent processes/components coordinate via events, messages, or shared data.
51
New cards
Implicit invocation
Event-based style where components announce events and registered handlers are invoked automatically.
52
New cards
Event announcement
Publishing an event without naming specific receivers.
53
New cards
Event registration
Subscribing a handler to be invoked when a specific event occurs.
54
New cards
Announcer anonymity
Implicit-invocation invariant: event announcers do not know which components will respond.
55
New cards
Order uncertainty
Implicit-invocation property: handler ordering and timing are not guaranteed unless enforced.
56
New cards
Implicit invocation strength: reuse
New functionality can be added by registering new handlers without changing announcers.
57
New cards
Implicit invocation strength: maintenance
Components can be replaced or modified with minimal impact if event contracts remain stable.
58
New cards
Implicit invocation weakness: loss of control
Announcers cannot predict who runs, in what order, or whether responses complete.
59
New cards
Implicit invocation weakness: context dependence
Correctness can depend on global handler set and interactions, complicating reasoning/testing.
60
New cards
Style combination (events + calls)
Event-based systems often combine implicit invocation with explicit calls for needed control.
61
New cards
Model–View–Controller (MVC)
Architecture separating model (data/logic), view (presentation), and controller (input handling).
62
New cards
Model
MVC element representing core data and business logic.
63
New cards
View
MVC element that presents model state to users (possibly multiple views).
64
New cards
Controller
MVC element that interprets user input and changes the model.
65
New cards
Change propagation
Mechanism (often observer-style) that updates views when the model changes.
66
New cards
MVC benefit
Improves maintainability by separating concerns and supporting multiple views.
67
New cards
Repository style
Architecture centered on a shared data store representing system state, accessed by independent components.
68
New cards
Data-centered architecture
Synonym emphasizing a central data repository that components read/write.
69
New cards
Repository connector
Data access operations such as query, update, and transaction commit/rollback.
70
New cards
Transactional database
Repository variant where the database is passive and processes execute in response to transactions.
71
New cards
Passive repository
Data store that does not trigger computation by itself; clients drive access via requests/transactions.
72
New cards
Blackboard architecture
Repository variant where knowledge sources cooperate via a shared blackboard whose state triggers computation.
73
New cards
Active repository
Repository that can trigger processing based on changes in shared state (blackboard-like behavior).
74
New cards
Knowledge source
Component in blackboard style that contributes partial solutions based on blackboard state.
75
New cards
Blackboard suitability
Useful when no deterministic solution strategy exists and multiple solvers contribute incrementally.
76
New cards
Blackboard example domain
Often used in AI-style problems such as speech or vision, and compiler structures like AST/symbol tables.
77
New cards
Hierarchical styles
Architectural styles organized in levels where higher-level elements use services of lower levels.
78
New cards
Layered system
Architecture with layers of abstraction; each layer provides services to the layer above.
79
New cards
Adjacent-layer rule
Pure layered invariant: a layer communicates only with its immediate neighbors.
80
New cards
Layer interface
Defined services offered by a layer to the layer above through a stable boundary.
81
New cards
Layered strength: abstraction
Partitions complexity by levels, making systems easier to understand and evolve.
82
New cards
Layered strength: maintainability
Changes can be isolated within a layer when interfaces remain stable.
83
New cards
Layered strength: reuse/standardization
Layer implementations can be swapped if they meet the same interface contract.
84
New cards
Layered weakness: performance
Extra overhead from traversing multiple layers; bypassing may occur in practice.
85
New cards
Layer violation (bypass)
Common optimization where a layer accesses a non-adjacent lower layer to reduce overhead.
86
New cards
Onion skin model
Metaphor for layers wrapping lower layers and exposing higher-level services.
87
New cards
OSI model
Seven-layer network reference model illustrating layered architecture concepts.
88
New cards
TCP/IP model
Four-layer networking model (in simplified presentations) illustrating layering in practice.
89
New cards
Operating system layering
Example layering from hardware → kernel → resource management → user services.
90
New cards
Interpreter style
Layered form where a component interprets instructions of a defined language (e.g., bytecode interpreter).
91
New cards
Virtual machine layer
Execution layer that runs an intermediate representation such as bytecode (e.g., JVM).
92
New cards
Tiered architecture
Enterprise layered variant where tiers are often deployed on separate nodes (client/app/db).
93
New cards
Two-tier architecture
Client tier (UI + some processing) communicates directly with a server tier (database + some processing).
94
New cards
Two-tier scalability
Typically scales to roughly around a hundred users in classic enterprise contexts.
95
New cards
Three-tier architecture
Adds a middle tier for business logic and processing management between client and database tiers.
96
New cards
Middle tier role
Holds business rules, coordination, and generic services (e.g., queuing, staging, transaction coordination).
97
New cards
Three-tier benefit
Improves maintainability, scalability, reuse, and flexibility compared to two-tier.
98
New cards
Hierarchical heterogeneous
System uses one style at the top level while internal components use other styles.
99
New cards
Locational heterogeneous
Same-level architecture combines multiple styles across different areas/regions of the system.
100
New cards
Simultaneously heterogeneous
Same system can be described by different styles depending on viewpoint or concern.