ch7.ArchitDesign 27updated
ch7.ArchitDesign 27updated
Architectural Design
Objectives
• Introducing architectural design & its
importance
• Understand the decisions that have to be
made about the system architecture during
the architectural design process;
• Introducing 3 architectural styles
i. Organisation ii. Decomposition iii. Control
Topics covered
• Architectural design decisions
• System organisation, architectural views
and architectural patterns
• Application architectures
• Control styles
Software Architecture
☺Identifying the sub-systems/components that
make up a system and the framework for sub-
systems control & communication is known as
the architectural design.
• Large-scale reuse
– The architecture may be reusable for a range of systems.
System Architects Vs Decisions
• During the architectural design process, system
architects have to make a number
of structural decisions that profoundly affect the
system and its development process.
Based on their knowledge and experience, they
have to consider a set of fundamental questions
about the system.
Fundamental Questions
1. Is there a generic application architecture that can act as a
template for the system that is being designed?
2. How will the system be distributed across a number of processors?
3. What architectural patterns or styles might be used?
4. What is the fundamental approach to structure the system?
5. How will the structural components in the system be decomposed
into subcomponents?
6. What strategy will be used to control the operation of the
components in the system?
7. What architectural organization is best for delivering the non-
functional requirements of the system?
8. How will the architectural design be evaluated?
9. How should the architecture of the system be documented?
Architecture Vs System Characteristics
• Performance (if Performance is a critical requirement)
Localize critical operations & minimize communications. Use large rather
than fine-grain components.
• Security (if Security is a critical requirement)
Use a layered architecture with critical assets in the innermost layers, with a
high level of security validation.
• Safety (if Safety is a critical requirement)
The architecture should be designed so that safety-related operations are all
located in either a single component or in small number of components.
• Availability (if Availability is a critical requirement)
Include redundant components and mechanisms, so that it is possible to
replace and update components without stopping the system (fault tolerance).
• Maintainability (if Maintainability is a critical requirement)
Use fine-grain, self-contained components that may easily be changed or
replaced.
Architectural Conflicts
• Large-grain components improves
performance but reduces maintainability.
• Redundant data improves availability but
makes security more difficult.
• Localizing safety features means more
communication so degraded performance.
Compromise solution must be found;
different architecture styles for different
parts of the system can be applied!
System Structuring
• Concerned with decomposing the system into
interacting sub-systems.
Packag ing
selection
system
Design Code
editor gener ator
Design Repor t
analyser gener ator
Repository Model Evaluation
(+) Advantages
– Efficient way to share large amounts of data;
– Centralised management e.g. backup, security, etc.
– Easy to integrate new tools to share the repository.
(-) Disadvantages
– Sub-systems must agree on a repository data model. Inevitably a
compromise;
– Data evolution is difficult and expensive;
– No scope for specific management policies;
– Difficult to distribute the repository efficiently to multi-sys.
(2). The Client-Server Model
Internet
(+) Disadvantages
– No shared data model so sub-systems use different data organisation.
Data interchange may be inefficient;
– Redundant management in each server;
– No central register of names and services - it may be hard to find out
what servers and services are available.
(3). The Layered Model
• Used to model the interfacing of sub-systems.
• Organizes the system into a set of layers each
of which provide a set of services.
• Supports the incremental development of
sub-systems in different layers. When a layer
interface changes, only the adjacent layer is
affected.
A Generic Layered Architecture
Pattern for Software Applications
An example of layered architecture pattern
How it can be applied to a library system ( LIBSYS)
Example: The OSI Reference Model
User
Application 7
Presentation 6
Session 5
Transport 4
Network 3
Data-Link 2
Physical 1
Communications
media
Modular Decomposition Styles
• Styles of decomposing sub-systems into
Modules.