Consideration when choose arch
- Structural pattern
- Computational model
- Essential invariant of the style
- Common specialization
Pipe and Filter
- Def
- Each component has input and outputs
- Component reads stream of data on its inputs and produce stream of data on its data output, and delivering a complete instance
- Benefits
- Easy understand the overall input/output behavior
- Reusability
- Enhancements & Maintenance
- Easy to add and replace new filter or alternations
- Disadvantages
- Designer should consider transformation of input data to output data
- Filters are inherently dependant
- Not good at handling interactive applications
Data Abstraction and Object Oriented Organization
- ADT
- Def
- Primitive operations are encapsulated in an object or ADT
- ADT is responsible for preserving the integrity of resources
- Representation is hidden from other objects
- Benefit
- Change implementation without affection those clients
- Designer can decompose the problem into collections.
- Disadvantages
- Must know identity of the other objects.
- In the contrast, filters (pipe and filter) don't need to know what other filters are in the systems.
Event based, Implicit invocation
- Def
- Implicit Invocation is that instead of invoking procedure call directly, a component can announce one or more events, other component can register an interest in an event.
- Feature
- Events don't know which components will be affected.
- Cannot make assumption about order of processing
- Can have explicit invocations as complementary form of interaction
- Benefits
- Strong reuse
- Implicit invocation eases system evolutions
- Can changing easily
- Disadvantages
- Relinquish control ( if other components didn't response it then fall the panic)
- Exchanging data (Global memory using)
Layered Architecture
- Def
- Organized hierarchically, each layer providing service to the layer above layer it and serving to the layer below it.
- Benefits
- Increasing level of abstractions
- Enhancements
- Reuse
- Disadvantages
- Requiring closer coupling
- Difficult to find right level of abstractions.
Repository (Black boards)
- Def
- Consist of two kinds of components as follows
- Central data structure (Current state)
- Collection of independent component operate on the central data store
- Blackboard Architecture
- Properties
- The knowledge sources
- Separate, independent parcel of applications dependent knowledge
- The blackboard data structure
- Problem-solving state data
- Benefit
- No explicit representation of the control component
Table driven interpreter
- Interpreter's analog of its execution state + pseudo program
- Interpreter components
- Engine to do works
- Memory contain pseudo code
- Representation of the control
- Representation of the current state
'Fundamental Notes > Software Engineering' 카테고리의 다른 글
| Architectural style (0) | 2009/05/01 |
|---|---|
| 4+1 View Model (0) | 2009/05/01 |
| Refinement (0) | 2009/05/01 |
| Design Quality (0) | 2009/05/01 |
| Design Pattern (0) | 2009/05/01 |
| Agile Software Development (0) | 2008/11/02 |