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/04/30
4+1 View Model  (0) 2009/04/30
Refinement  (0) 2009/04/30
Design Quality  (0) 2009/04/30
Design Pattern  (0) 2009/04/30
Agile Software Development  (0) 2008/11/01