Notes
Slide Show
Outline
1
Architectural Issues in Software Reuse: not only functionality, but packaging
  • different kinds of component packaging
  • different kinds of interactions between the components
  • system model, components, connectors and control structure
2
Pipeline
  • System model - mapping data streams to data streams
  • Components - filters (computational, local processing)
  • Connectors - data streams - ascii ds for unix pipelines
  • Control Structure - data flow
3
 
4
Data abstraction (OO)
  • System model - localized state maintenance
  • Components - managers: servers, objects, ADT
  • Connectors - proc call with dynamic binding
  • Control structure - decentralized, usually single thread


5
 
6
Implicit invocation (event based)
  • System model - independent reactive processes
  • Components - processes that signal significant events without knowing recipients of signals
  • Connectors - automatic invocation of processes that have registered interest in events
  • Control structure - decentralized; indiv components are not aware of recipients of signal
7
Repository ( db and blackboard systems)
  • System model - centralized data, usually richly structured
  • Components - one memory, many purely computational processes
  • Connectors - comput. units interact with memory by direct data access or procedure call
  • Control structure - varies with type of repository; (depends on input data stream, as for db, predetermined or internal (depends on state of computation as for blackboards)
8
 
9
Interpreter
  • System model - virtual machine
  • Components - one state machine ( the execution engine) and three memories (current state of execution machine, program being interpreted, current state of program being interpreted)
  • Connectors - data access and proc call
  • Control structures - state-transition for execution engine; input-driven for selection of what to interpret.
10
 
11
Main program and subroutines
  • System model - call and definition hierarchy
  • Components - procedures
  • Connectors - proc calls
  • Control structure - single thread
12
Layered
  • System model - hierarchy of opaque layers
  • Components - composites - collections of procs
  • Connectors - depends on structure of components; often proc calls; might also be client server
  • Control structure - single thread
13
 
14
Reconciling Architectual Mismatch
15
Solving the Mismatch Problem
  • change A’s form to B’s form; in principle possible (but expensive) to completely rewrite one of the components to work with the other
  • publish an abstraction of A’s form: APIs publish the procedure calls used to control a component.  Open Interfaces -abstraction. Projections or views for databases
16
Solving the Mismatch Problem (cont.)
  • transform from A’s form to B’s form on the fly: some distributed systems do this
  • negotiate to find a common form for A and B: modems commonly negotiate to find their fastest common protocol
  • make B multilingual: portable unix code will run on many processors
17
Solving the Mismatch Problem (cont.)
  • provide B with import/export converters: standalone applications provide representation conversion services; extensions or external add-ons translate to and from foreign formats on demand
18
Solving the Mismatch Problem (cont.)
  • introduce an intermediate form; external interchange representation, sometimes supported by Interface Description Languages (IDLs) can provide a neutral base.  especially convenient when many components with different forms are involved. standard distribution forms (RTF, MIF, Postscript) another alternative
19
Solving the Mismatch Problem (cont.)
  • attach an adapter or wrapper to A:  ultimate wrapper may be the code that causes one machine to emulate another.
  • maintain parallel consistent versions of A and B: possible, though delicate, for A & B to maintain their own forms and be extremely careful to make all changes to both forms
20