Please enable JavaScript.
Coggle requires JavaScript to display documents.
Hierarchical Architecture - Coggle Diagram
Hierarchical Architecture
Main/Subroutine Architecture
Probably the oldest and most widely used architecture.
Purpose:Encourage re-use of modules
Idea
A “main” program calls sub-routines and accomplishes task
System decomposed into sub-routines
Benefits:
Can still be used in sub-system of OO Design.
Easy to decompose the system
Limitation:
Globally shared data are vulnerable
Tight coupling may cause ripple impacts as compared to OO design
DFD(Data Flow Diagram )
Two types of flow
Transform Flow: input data get processed and results in output data (sequential)
Transaction Flow: depending on input data, take different control actions (branch)
Mapping Process
Identify transform and transaction flows
Map each flow into a subroutine
Generally: a main process controls the overall flow
Master-Slave
It supports fault tolerance and system reliability
In this architecture:
The slaves provide replicated services to the master
The master selects a particular result among slaves by certain selection strategies.
Slaves may perform the same functional task by different algorithms and methods or a totally different functionality.
A variant of main-subroutine architecture
Block diagram for master-slave architecture
Class diagram for master-slave architecture
Characteristics: Parallel computing and accuracy of computation
Applicable domain: Where reliability is crucial
Layered architecture
Idea:
functionality grouped into layers
upper layer invokes func. in lower layer
Benefits
Enhanced reusability and interchangeability
Component-based technology is a suitable
Enhanced independence of upper layer to lower layer
Promotion of portability
Incremental software development
Limitations:
Many applications can not fit this architecture
Exception and error handling
Lower runtime performance
Virtual machine
Variation of Layered Approach
Idea:
Provide a virtual interpretation layer that separates
Application
Physical machine layer
i.e., Software/Components run on simulation layer
Applicable Design Domain:
Suitable for solving a problem by simulation or translation
Sample applications such as interpreters of microprogramming, XML processing, script command language execution, rule-based system execution, Smalltalk and Java interpreter typed programming language
Benefits:
Simplicity of the software development
Simulation for non-native and disaster working model
Portability and machine platform independency
Limitations:
Slow execution of the interpreter
Additional overhead due to the new layer