Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software Design and Architecture [Architecture Patterns] – Chapter 04 …
Software Design and Architecture [Architecture Patterns] – Chapter 04
Sara Al-Habashi ^_^
Architectural Pattern Choice Based On:
Functional Requirement.
Non-Functional Requirement(QA).
Type of system.
What is the difference between Architectural Styles, Design Patterns, Architectural Patterns?
Design Patterns:
Medium-scale (finger-grained) set of object-oriented detailed design solutions.
Strong influence on
subsystems architectural
, not on fundamental structure.
Architectural Patterns:
Wide-structural properties, impact architectural of subsystems.
Architectural Styles:
High-level problem solutions in terms of specific elements and their relationships.
Its focus: solutions.
Major System Types:
Distributed.
Interactive.
Data Flow.
Hierarchical.
Data-centered.
Data-centered:
Centralized data repository.
Allow client access/work on data.
Components:
1- Data Manager:
Controls + provides + manages data access.
2- Workers:
Execute operations, perform work on data.
Communication:
One-to-one, bidirectional, worker-manager.
Issues:
-Data integrity,
-communication protocols,
-transaction/recovery (roll-back),
-security.
Blackboard
is the pattern involved with this type of system: -Decomposes system into components that work around central data.
Quality Properties:
Modifiability + Reusability + Maintainability.
Data Flow:
Transport/transform stream of data.
Components:
1- Workers:
Perform work on data, abstract transformations/processing before forwarding (encrypt/decrypt, compression/decompression, change format, etc).
2- Transporters:
Transport data, abstract management/control of transport mechanism.
Communication:
One-to-one, bidirectional, worker-manager.
Pipes-and-Filters:
is the pattern involved with this type of system:
Source
(produce) -->
Filter
(process/modify) -->
Pipes
(connect) -->
Sink
(consumer).
Quality Properties:
Extensibility + Efficiency + Reusability + Modifiability + Security + Maintainability.
Distributed:
Interaction between independent processing units connected via network.
E.g.
internet systems, web services, file/music sharing, etc.
1- Client-Server:
a. Client:
Computer HW/SW accesses service available by server.
b. Server:
Computer program/device provides functionality for clients.
Quality Properties:
Interoperability + Modifiability + Availability + Reusability.
2- Broker:
Mechanism for better flexibility + Decrease coupling .
Quality Properties:
Interoperability + Modifiability + Portability + Reusability.
Interactive:
Serve users/user-centric systems + Support user interactions through UIs.
MVC:
is the pattern involved with this type of system:
Systems decomposed into independent input(
Controller
), processing(
Model
), output(
View
).
Quality Properties:
Modifiability + Usability + Reusability.
Hierarchical:
Components structured hierarchically to reflect abstraction/responsibility levels.
a- Main Program/Subroutine:
For systems designed by structures (functional) design strategy.
Levels represent system refinement until decomposed into finger-grained subroutines.
Program (main component):
Contains main data, shared among components at lower levels.
b- Layered:
Each layer has main component providing a unified interface for communicating w/comps below (constrained collaboration).
More independent/ compartmentalized than main program/subroutine.
Used when system decomposable into cohesive layers with interfacing.
Quality Properties:
Modifiability + Reusability.
Quality Properties:
Modifiability + Portability + Security + Reusability.