Please enable JavaScript.
Coggle requires JavaScript to display documents.
Hierarchical Architecture (Main/Subroutine Architecture (Summary (Benefits…
Hierarchical Architecture
Layered architecture
Idea
functionality grouped into layers
upper layer invokes func. in lower layer
Physical Implementation
Functions in one layer usually organized in one package
Some times deployed as services
Applicable Design Domains
For applications which have classes that are close related each other
For systems that can be divided between portions providing generic services to the application of the system
Benefits
Incremental software development
Enhanced independence of upper layer to lower layer
Enhanced reusability and interchangeability
Component-based technology is a suitable
Promotion of portability
Limitations
Lower runtime performance
Many applications can not fit this architecture
Exception and error handling
Virtual machine
Variation of Layered Approach
Idea
i.e., Software/Components run on simulation layer
Provide a virtual interpretation layer that separates
Physical machine layer
Application
Applicable Design Domain
Sample applications such as interpreters of microprogramming, XML processing, script command language execution...
Suitable for solving a problem by simulation or translation
Benefits
Portability and machine platform independency
Simplicity of the software development
Simulation for non-native and disaster working model
Limitations
Additional overhead due to the new layer
Slow execution of the interpreter
Main/Subroutine Architecture
Purpose
Encourage re-use of modules
Idea
A “main” program calls sub-routines and accomplishes task
System decomposed into sub-routines
How Sub-routine Call is Supported
by High Level Language
Parameter passing
Much more tricky!
Much more convenient
by Assembly
Call the subroutine
Set parameters in register
Protect old register values by pushing to stack
Design
Objective: Map from DFD to Main/Subroutine Design
Usually Requirement Spec. Specified in Data Flow Diagram (DFD)
DFD
Two types of flow
Transaction Flow
depending on input data, take different control actions (branch)
Transform Flow
input data get processed and results in output data (sequential)
Mapping Process
Identify transform and transaction flows
Map each flow into a subroutine
Generally: a main process controls the overall flow
Summary
Probably the oldest and most widely used architecture
Benefits
Can still be used in sub-system of OO Design
Easy to decompose the system
Limitation
Tight coupling may cause ripple impacts as compared to OO design
Globally shared data are vulnerable
Master-Slave
A variant of main-subroutine architecture
It supports Fault tolerance and system reliability
In this architecture
The master selects a particular result among slaves by certain selection strategies.
The slaves provide replicated services to the master
Diagram
Class diagram
Block diagram
Characteristics
Parallel computing and accuracy of computation
Applicable domain Where reliability is crucial