Chapter 3 – Architectural
Design
Chapter 6 Architectural design 3
Topics covered
Architectural design decisions
Architectural views
Architectural patterns
Application architectures
Chapter 6 Architectural design 4
Software architecture Definition
The design process for identifying the sub-systems
making up a system and the framework for sub-system
control and communication is architectural design.
The output of this design process is a description of the
software architecture.
Chapter 6 Architectural design 5
Advantages of explicit architecture
• Stakeholder communication
– Architecture may be used as a focus of discussion
by system stakeholders.
• System analysis
– Means that analysis of whether the system can
meet its non-functional requirements is possible.
• Large-scale reuse
– The architecture may be reusable across a range
of systems
– Product-line architectures may be developed.
Architectural design decisions
• Architectural design is a creative process so the process differs
depending on the type of system being developed.
• However, a number of common decisions span all design
processes and these decisions affect the non-functional
characteristics of the system.
The architecture of a packing robot control system – Box
and Line Diagram
Chapter 6 Architectural design 8
Architectural design decisions – common
questions (though a creative process)
Is there a generic application architecture that can be used?
How will the system be distributed?
What architectural styles are appropriate?
What approach will be used to structure the system?
How will the system be decomposed into modules?
What control strategy should be used?
How will the architectural design be evaluated?
How should the architecture be documented?
Chapter 6 Architectural design 9
Architecture and system characteristics
Performance
Localise critical operations and minimise communications. Use
large rather than fine-grain components or replicate.
Security
Use a layered architecture with critical assets in the inner layers.
Safety
Localise safety-critical features in a small number of sub-systems.
Availability
Include redundant components and mechanisms for fault
tolerance.
Maintainability
Use fine-grain, replaceable components.
Chapter 6 Architectural design 10
Architectural views
• What views or perspectives are useful when designing and
documenting a system’s architecture?
• What notations should be used for describing
architectural models?
• Each architectural model only shows one view or perspective
of the system.
4 + 1 view model of software architecture
A logical view, which shows the key abstractions in the
system as objects or object classes.
A process view, which shows how, at run-time, the system is
composed of interacting processes.
A development view, which shows how the software is
decomposed for development.
A physical view, which shows the system hardware and how
software components are distributed across the processors in
the system.
Related using use cases or scenarios (+1)
Chapter 6 Architectural design 12