Professional Documents
Culture Documents
Software architecture
7 Ap plicatio n Ap plicatio n
5 Session Session
4 Transp or t Transp or t
Performance
Localise operations to minimise sub-system communication
Security
Use a layered architecture with critical assets in inner layers
Safety
Isolate safety-critical components
Availability
Include redundant components in the architecture
Maintainability
Use fine-grain, self-contained components
Stakeholders
Architect
Requirements engineer
Designer (also of other systems)
Implementor
Tester, integrator
Maintainer
Manager
Quality assurance people
SE, Software
Architecture,
17
Hans van Vliet,
©2008
Role of the software architect
SE, Software
Architecture,
18
Hans van Vliet,
©2008
Key Architectural Concepts
SE, Software
Architecture,
22
Hans van Vliet,
©2008
Types of components
SE, Software
Architecture,
23
Hans van Vliet,
©2008
Types of connectors
SE, Software
Architecture,
24
Hans van Vliet,
©2008
Configurations/Topologies
B C C3 C4 C5
D C6 C7
26 Architectural representations
Very abstract - they do not show the nature of component relationships nor
the externally visible properties of the sub-systems.
When large amounts of data are to be shared, the repository model of sharing
is most commonly used.
CASE toolset architecture
Repository model characteristics
Advantages
Efficient way to share large amounts of data;
Sub-systems need not be concerned with how data is produced
Centralised management e.g. backup, security, etc.
Sharing model is published as the repository schema.
Disadvantages
Sub-systems must agree on a repository data model. Inevitably a
compromise;
Data evolution is difficult and expensive;
Difficult to distribute efficiently.
Client-server model
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.
Abstract machine (layered) model OR
Layered architecture
Used to model the interfacing of sub-systems.
Organises the system into a set of layers (or abstract
machines) 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.
However, often artificial to structure systems in this way.
35 The Layered architecture pattern
Name Layered architecture
Description Organizes the system into layers with related functionality associated with each
layer. A layer provides services to the layer above it so the lowest-level layers
represent core services that are likely to be used throughout the system.
When used Used when building new facilities on top of existing systems; when the
development is spread across several teams with each team responsibility for a
layer of functionality; when there is a requirement for multi-level security.
Disadvantages In practice, providing a clean separation between layers is often difficult and a
high-level layer may have to interact directly with lower-level layers rather than
through the layer immediately below it. Performance can be a problem because of
multiple levels of interpretation of a service request as it is processed at each
layer.
Structure the system into a set of loosely coupled objects with well-defined
interfaces.
When implemented, objects are created from these classes and some
control model used to coordinate object operations.
Invoice processing system
Object model advantages
Implicit, undocumented
tacit, of course knowledge
Explicit, undocumented
Vaporizes over time
Explicit, explicitly undocumented
Tactical, personal reasons
Explicit, documented
Preferred, exceptional situation
SE, Software
Architecture,
50
Hans van Vliet,
©2008
Why is documenting design decisions
important?
Prevents repeating (expensive) past steps
Explains why this is a good architecture
Emphasizes qualities and criticality for
requirements/goals
Provides context and background
SE, Software
Architecture,
51
Hans van Vliet,
©2008
Uses of design decisions
Identify key decisions for a stakeholder
Make the key decisions quickly available. E.g., introducing new people and
make them up2date.
..., Get a rationale, Validate decisions against reqs
Evaluate impact
If we want to change an element, what are the elements impacted (decisions,
design, issues)?
..., Cleanup the architecture, identify important architectural drivers
SE, Software
Architecture,
52
Hans van Vliet,
©2008
Elements of a design decision
SE, Software
Architecture,
53
Hans van Vliet,
©2008
Taking decisions
Design Problem
problem space
sub- sub-
problem problem
(or (or
issue) issue)
Decision =
best option Decision
space
Design Design Design Design
option option option option
Decision =
Alternative Alternative best option
solutions solutions
SE, Software
Architecture,
54
Hans van Vliet,
©2008
Scope of Software Architectures
Every system has an architecture.
Details of the architecture are a reflection of system requirements
and trade-offs made to satisfy them
Possible decision factors
Performance
Compatibility with legacy software
Planning for reuse
Distribution profile
Current and Future
Safety, Security, Fault tolerance requirements
Evolvability Needs
Changes to processing algorithms
Changes to data representation
Modifications to the structure/functionality
Example Architecture – Compiler
Sequential Parallel
Parser
Internal
Representation
Semantor
Optimizer
Code
Optimizer Generator
Code
Generator
Version management system
Version management
Object management
Database system
Operating
system
Packing robot control system
Vision
system
Packaging
selection
system
Packing Conveyor
system controller
Architectural design process
System structuring
The system is decomposed into several principal sub-systems
Communications between these sub-systems are identified
Control modelling
A model of the control relationships between the different parts of the system is
established
Modular decomposition
The identified sub-systems are decomposed into modules
Architectural design process
Are concerned with the control flow between sub-systems. Distinct from the
system decomposition model.
Centralised control
One sub-system has overall responsibility for control and starts and stops other
sub-systems.
Event-based control
Each sub-system can respond to externally generated events from other sub-
systems or the system’s environment.
Centralised control