Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 7 Hierarchical Architecture - Coggle Diagram
Chapter 7
Hierarchical Architecture
Is characterized by viewing the entire system as a hierarchy structure. The software system is
decomposed into logical modules (subsystems) at different levels in the hierarchy. Modules at different levels are connected by explicit or implicit method invocations
A variety of design types—procedure-oriented, object-oriented, component- oriented, domain specific—can all implement the hierarchical software architecture.
Main-Subroutine
Usually Requirement Spec. Specified in Data Flow Diagram (DFD)
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)
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
Has dominated the software design methodologies for a very long time.
The purpose of this architecture style is to reuse the subroutines and have individual subroutines developed independently
Mapping Process
Identify transform and transaction flows
Map each flow into a subroutine
Generally: a main process controls the overall flow
Master-Slav
Is a variant of the main-subroutine architecture style that 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
Master-slave architecture is used for the software system where reliability is critical. This is due to the replication (redundancy) of
servers
Layered
Applicable domains of layered architecture:
Any system that can be divided between the application-specific portions and platform-specific portions which provide generic
services to the application of the system
Applications that have a number of classes that are closely related to each other so that they can be grouped together into a
package to provide the services to others.
Applications that have clean divisions between core services, critical services, user interface services, etc.
Limitations
Lower runtime performance
Exception and error handling
Many applications can not fit this architecture
Benefits
Promotion of portability
Component-based technology is a suitable
Incremental software development
Enhanced reusability and interchangeability
Enhanced independence of upper layer to lower layer
Virtual Machine
Variation of Layered Approach
Benefits:
Simplicity of software developmen
Portability and machine platform independency
Simulation for disaster working model
Limitations
Additional overhead due to the new layer
Slow execution of the interpreter due to the interpreter nature
Applicable domain of virtual machine architecture:
Sample applications include interpreters of microprogramming, XML processing, script command language execution, rule-based
system execution, Smalltalk and Java interpreter type programming languages.
It is suitable for solving a problem by simulation or translation if there is no direct solution.