Architectural Patterns Flashcards
(16 cards)
1
Q
Definition
A
An architectural pattern expresses a fundamental structural organization schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them.
2
Q
Structural Patterns
A
- Layers
- Pipes and Filters
- Blackboard
3
Q
Distributed Systems Patterns
A
- Broker
4
Q
Interactive Systems Patterns
A
- Model-View-Controller
- Presentation-Abstraction-Control
5
Q
Adaptable Systems Patterns
A
- Microkernel
- Reflection
6
Q
Concurrent and Networked Objects Patterns
A
-
7
Q
Service Access and Configuration Patterns
A
- Wrapper Facade
- Component Configurator
- Interceptor
- Extension Interface
8
Q
Event Handling Patterns
A
- Reactor
- Proactor
- Asynchronous Completion Token
- Acceptor-Connector
9
Q
Synchronization Patterns
A
- Scoped Locking
- Strategized Locking
- Thread-Safe Interface
- Double-Checked Locking Optimization
10
Q
Concurrency Patterns
A
- Active Object
- Monitor Object
- Half-Sync/Half-Async
- Leader/Followers
- Thread-Specific Storage
11
Q
Structural AP
A
- From Mud to Structure
- Direct mapping Domain Model -> Architecture?
- Problems: non-functional qualities like portability, stability, maintainability, understandability…
12
Q
Layers
A
- Definition
- The Layers architectural pattern helps to structure applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction.
- Example
- Networking: OSI 7-Layer Model
13
Q
Layers addressed problems
A
- High-level and low-level operations
- High-level operations rely on low-level ones
- ->Vertical structuring
- Several operations on the same level on abstraction but highly independent
- ->Horizontal structuring
14
Q
Layers Forces
A
- Late source code changes should not ripple through the system.
- Interfaces should be stable and may even be prescribed by a standards body.
- Parts of the system should be exchangeable.
- It may be necessary to build other systems at a later date with the same low-level issues as the system you are currently designing.
- Similar responsibilities should be grouped to help understandability and maintainability.
- There is no ‘standard’ component granularity.
- Complex components need further decomposition.
- Crossing component boundaries may impede performance
- The system will be built by a team of programmers, and work has to be subdivided along clear boundaries.
15
Q
Layers rules
A
- Layer J uses ONLY services provided by Layer J-1
- Layer J provides services ONLY to Layer J+1
- BUT does NOT prescribe
- The order to design the layers
- The complexity of a layer
16
Q
A