Architectural Patterns Flashcards

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Structural Patterns

A
  • Layers
  • Pipes and Filters
  • Blackboard
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Distributed Systems Patterns

A
  • Broker
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Interactive Systems Patterns

A
  • Model-View-Controller
  • Presentation-Abstraction-Control
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Adaptable Systems Patterns

A
  • Microkernel
  • Reflection
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Concurrent and Networked Objects Patterns

A

-

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Service Access and Configuration Patterns

A
  • Wrapper Facade
  • Component Configurator
  • Interceptor
  • Extension Interface
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Event Handling Patterns

A
  • Reactor
  • Proactor
  • Asynchronous Completion Token
  • Acceptor-Connector
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Synchronization Patterns

A
  • Scoped Locking
  • Strategized Locking
  • Thread-Safe Interface
  • Double-Checked Locking Optimization
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Concurrency Patterns

A
  • Active Object
  • Monitor Object
  • Half-Sync/Half-Async
  • Leader/Followers
  • Thread-Specific Storage
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Structural AP

A
  • From Mud to Structure
  • Direct mapping Domain Model -> Architecture?
  • Problems: non-functional qualities like portability, stability, maintainability, understandability…
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
A