Architectural Design - Center for Software Engineering

advertisement
Architectural Design


Establishing the overall structure of a
software system
Objectives
•
•
•
To introduce architectural design and to discuss its
importance
To explain why multiple models are required to
document a software architecture
To describe types of architectural model that may be
used
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 1
What is Architecture?

A high-level model of a thing
•
•
•
•



Describes critical aspects of the thing
Understandable to many stakeholders
Allows evaluation of the thing’s properties before it is built
Provides well understood tools and techniques for constructing the thing
from its blueprint
Which aspects of a software system are architecturally relevant?
How should they be represented most effectively to enable
stakeholders to understand, reason, and communicate about a
system before it is built?
What tools and techniques are useful for implementing an
architecture in a manner that preserves its properties?
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 2
What is Software Architecture?

A software system’s blueprint
• Its components
• Their interactions
• Their interconnections

Informal descriptions
• Boxes and lines
• Informal prose

A shared, semantically rich vocabulary
•
•
•
•
•
•
Remote procedure calls (RPCs)
Client-Server
Pipe and Filer
Layered
Distributed
Object-Oriented
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 3
From Requirements to
Architecture

From problem definition to requirements specification
• Determine exactly what the customer and user want
• Specifies what the software product is to do

From requirements specification to architecture
• Decompose software into modules with interfaces
• Specify high-level behavior, interactions, and non-functional properties
• Consider key tradeoffs
»
»
»
»
Schedule vs. Budget
Cost vs. Robustness
Fault Tolerance vs. Size
Security vs. Speed
• Maintain a record of design decisions and traceability
• Specifies how the software product is to do its tasks
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 4
Focus of Software Architectures

Two primary foci
• System Structure
• Correspondence between
requirements and
implementation
©Ian Sommerville 2000
A framework for
understanding systemlevel concerns

•
•
•
•
•
•
•
•
•
Global rates of flow
Communication patterns
Execution Control Structure
Scalability
Paths of System Evolution
Capacity
Throughput
Consistency
Component Compatibility
Software Engineering, 6th edition. Chapter 10
Slide 5
Why Software Architecture?

A key to reducing development costs
• Component-based development philosophy
• Explicit system structure

A natural evolution of design abstractions
• Structure and interaction details overshadow the choice of algorithms
and data structures in large/complex systems

Benefits of explicit architectures
•
•
•
•
•
•
A framework for satisfying requirements
Technical basis for design
Managerial basis for cost estimation & process management
Effective basis for reuse
Basis for consistency, dependency, and tradeoff analysis
Avoidance of architectural erosion
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 6
What is the Problem?
theStorag e
This is a simple
software system!
aWarehouse
UML-A Generated Association Class:aNavPoint Association (0.5)
(1.0)
aRoute
UML-A Generated Dependency Class:aRouteCollection Association (0.5)
UML -A Genera ted De pend ency C lass :aRou teCol lectio n Ass ociatio n (0. 25)
theVehicleCollection
UML-A Generated Association Class:aW arehouse Association (1.0)
aVehicle
UML-A Generated Dependency Class:theRouter Dependency (1.0)
UML-A Generated Dependency Class:theRouter Dependency (0.5)
aTruck
aShip
UML-A Generated Dependency Class:theRouter
Association
(0.25)
UML-A
UML-A
Generated
UML-A
Generated
Association
UML-A
Generated
Association
UML-A
Generated
Class:aNavPoint
Association
Generated
UML-A
Class:aNavPoint
Association
Class:aNavPoint
Gene
Association
UML-A
Association
rated
Class:aNavPoint
Genera
Association
Association
Class:aNavPoint
Association
ted
(1.0)Depend
Clas
(1.0)
Association
s:theW
ency
Association
(1.0)Class
areh
(1.0)
ouseCollec
:aRouteCollectio
(1.0)
tion Depen
n Assden
oc
UML-A
Generated
Association
Class:theRouter
Association
(0.25)
UML-A
Dependency
Class:theRouter
UML-A
Class:theRouter
Dependency
(0.5)
UML-AUML-A
Generated
UML-A
Genera
Association
UML-A
Generated
ted UML-A
AsGenerated
socia
Class:theVehicleCollection
Association
UML-A
Generated
tion CAssociation
UMLlass:
Generated
Class:theVehicleCollection
A
theVe
Association
UML-A
GenhicleC
Class:theVehicleCollection
erate
Association
UML-A
Generated
dollec
Class:theVehicleCollection
UML-A
Ass
Generated
Generalization
ociati
tion
Class:theVehicleCollection
Association
Generated
Genera
onGenerated
Cl
Association
Generalization
ass:th
lizatio
(1.0)
Class:theVehicleCollection
Association
eVehi
Generalization
nDependency
(1.
Class:theVehicleCollection
cleCo
0)
Generalization
(1.0)
Class:theVehicleCollection
llectio
Generalization
(1.0)
nGenerated
Ge (1.0)
nerali
Generalization
zation
(1.0)
Generalization
(1.0Generalization
) (1.0)
(1.0) (1.0) Dependency (1.0)
aAirplane
theW areho useCo llecti on
UMLA
Ge
nerate
d
Gen
eraliz
ation
Class
:av
ail
ableV
ehicle
Colle
ction
Depe
ndenc
y
(1.0
)
UML-A
UML-A
Generated
Generated
Association
Association
Class:theVehicleCollection
Class:availableVehicleCollection
Dependency
Dependency
(0.5)
(0.5)
UML-A Generated Dependency Class:theRouter Association (0.5)
UML-A Generated Dependency Class:theRouter Association (0.25)
UML-A Generated Dependency Class:theRouter Dependency (1.0)
UML-A Generated Dependency Class:theRouter Dependency (1.0)
UML-AUML-A
Generated
Generated
Association
Association
Class:aDifficiency
Class:aDifficiency
Association
Association
(1.0) (1.0)
UML-A
UML-A
Generated
Generated
Association
Association
Class:aDifficiency
Class:aDifficiency
Association
Association
(1.0)
(1.0)
UML-A
Generated
Association
Class:aDifficiency
Association
(1.
U ML-A
U ML-A
Gen
UML-A
erated
Gen
erated
Asso
Generated
ciatio
Asso
nciatio
Association
Cla
ss:aD
n Cla
ss:aD
ifficie
Class:aDifficiency
ncy
ifficie
A ncy
ssoci
Aatio
sso
UML-A
UML-A
Generated
Generated
Association
Association
Class:aDiffi
Class
t heRou ter
UML-A Generated Association Class:aNavPoint Association (0.25)
UML-A Generated Association Class:aNavPoint Association (0.25)
UML-A Generated
Association
Class:aW arehouse
(0.5)
UML-A Generated
Association
Class:aNavPoint
UML-A
Generated
Association
Class:aNavPoint
Association
(0.25) Association (0.25)
UML-A Generated
Association
Class:aWAssociation
arehouse
Association
(1.0)
Genera
ted AssociClass:aSu
ation C las
UML-AUML-A
Generated
Association
UML-A Generated Dependency Class:theWarehouseCollection Dependency (1.0)
availableVehicleCollection aRouteCollection
UML-A Generated Dependency Class:theRouter Association (1.0)
UML-A Generated Dependency Class:theRouter Association (0.5)
UML-A Generated Association Class:theW arehouseCollection Dependency (0.5)
UML-A Generated
UML-ADependency
Generated Dependency
Class:theRouter
Class:theRouter
Association Association
(1.0)
(1.0)
theCarg oRouter
UML -A Genera ted As socia tion C lass: theWa rehou seCo llectio n De pende ncy ( 0.25)
UML-A Generated Association Class:aRoute Association (0.5)
theAWT
aLocation
UML-A Generated Association Class:theRouter Association (0.25)
UML-A
Generated
Association
Class:aRoute
Association
(0.25)
UML-A
Generated
Association
Class:aRoute
Association
(0.25)
UML-A Generated
Association
Class:aNavPoint
Association
(0.5)
UML-A
Generated
Association
Class:aRoute
Association
UML-A Generated
Association
Class:aNavPoint
UML-A
Generated
Association
Association
(0.5) (0.25)
Class:aRoute Association (0.25)
aVehiceDialog
aWarehouseDialog
aPortDialog
aRouterDialog
aNavPoint
Generated
AssociationAssociation
Class:aW arehouse
UML-A GeneratedUML-A
Association
Class:aNavPoint
(0.5) Association (0.5)
UML-A Generated Association Class:aW arehouse Association (0.5)
availableGoods
aPortC ollec tion
theTimeNeeded
UML-A Generated
Association
Association
(0.5)
UML-A Generated
Association
Class:aWClass:aW
arehousearehouse
Association
(0.5)
UML-A Generated Association Class:aW arehouse Association (0.5)
aPort
aSurp lus
aDifficiency
UML-A Generated Association Class:aW arehouse Association (0.5)
UML-A Generated
UML-A
Association
Generated
Class:availableGoods
Association Class:aW
Association
arehouse(0.5)
Association (0.5)
©Ian Sommerville 2000
theGoods
Software Engineering, 6th edition. Chapter 10
Slide 7
The Usual Tool: Design Abstraction
aTruck
aShip
aAirplane
aLocation
aVehicle
aNavPoint
theVehicleCollection
aRoute
theRouter
RegularStorage
aRouteCollection
theStorage
availableVehicleCollection
aWarehouse
theWarehouseCollection
RefrigeratedStorage
aSurplus
aDeficiency
theGoods
theCargoRouter
theTimeNeeded
aRouterDialog
aPort
theAWT
availableGoods
aPortDialog
aVehiceDialog
aPortCollection
aWarehouseDialog
We have to do better!
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 8
Architectural Abstraction
Cl ock :
Cl ock
8: request
Cl ockConn
9: notification
Warehouse
10: notification
Del iveryPort
Vehicle
7: request
4: request
1: request
3: request
RouterConn
2: notification
CargoRouter
5: request
GraphicsConn
6: notification
GraphicsBinding :
GraphicsBinding
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 9
Definitions of Software Architecture

Perry and Wolf
•

Software Architecture = { Elements, Form, Rationale }
what
how why
Shaw and Garlan
•
Software architecture [is a level of design that] involves
»
»
»
»

the description of elements from which systems are built,
interactions among those elements,
patterns that guide their composition, and
constraints on these patterns.
Kruchten
•
•
Software architecture deals with the design and implementation of the highlevel structure of software.
Architecture deals with abstraction, decomposition, composition, style, and
aesthetics.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 10
Architectural design process

System structuring
•
•

Control modelling
•

The system is decomposed into several principal sub-systems
Communications between these sub-systems are identified
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
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 11
Key Architectural Concepts

Three canonical building blocks
•
•
•


components
connectors
configurations
A sub-system is a system in its own right whose
operation is independent of the services provided
by other sub-systems
A module is a system component that provides
services to other components but would not
normally be considered as a separate system
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 12
Components


A component is a unit of computation or a data store
Components are loci of computation and state
•
•
•
•
•
•

clients
servers
databases
filters
layers
ADTs
A component may be simple or composite
•
•
composite components describe a (sub)system
an architecture consisting of composite components describes a
system of systems
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 13
Connectors

A connector is an architectural element that models
•
•

Simple interactions
•
•

interactions among components
rules that govern those interactions
procedure calls
shared variable access
Complex and semantically rich interactions
•
•
•
•
client-server protocols
database access protocols
asynchronous event multicast
piped data streams
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 14
Configurations/Topologies

An architectural configuration or topology is a connected
graph of components and connectors that describes
architectural structure
•
•
•

proper connectivity
concurrent and distributed properties
adherence to design heuristics and style rules
Composite components are configurations
A
B
C1
C
D
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
C2
C3
C4
C6
C5
C7
Slide 15
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
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 16
Example Architecture – Compiler
Sequential
Lexer
Parallel
Parser
Lexer
Semantor
Parser
Semantor
Internal
Representation
Optimizer
Optimizer
Code
©Ian
Sommerville 2000
Generator
Software Engineering, 6th edition. Chapter 10
Code
Generator
Slide 17
CASE toolset architecture
Design
editor
Design
translator
Project
repository
Design
analyser
©Ian Sommerville 2000
Code
generator
Program
editor
Report
generator
Software Engineering, 6th edition. Chapter 10
Slide 18
Version management system
Version management
Object management
Database system
Operating
system
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 19
Packing robot control system
Vision
system
Object
identification
system
Arm
controller
Gripper
controller
Packaging
selection
system
Packing
system
©Ian Sommerville 2000
Conveyor
controller
Software Engineering, 6th edition. Chapter 10
Slide 20
Film and picture library
Client 1
Client 2
Client 3
Client 4
Wide-bandwidth network
Catalogue
server
Video
server
Picture
server
Hypertext
server
Catalogue
Film clip
files
Digitiz ed
photographs
Hypertext
web
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 21
Analogies to Software Architecture

Hardware architecture
•
•

small number of design elements
scale by replication of (canonical) design elements
Network architecture
•
•
focus on topology
only a few topologies considered
» e.g., star, ring, grid

Building architecture
•
•
multiple views
styles
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 22
Architectural models


Different architectural models may be produced
during the design process
Each model presents different perspectives on the
architecture
•
•
•
•
Static structural model that shows the major system components
Dynamic process model that shows the process structure of the
system
Interface model that defines sub-system interfaces
Deployment model shows the relationship between system
elements and hosts
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 23
System structuring



Concerned with decomposing the system into
interacting sub-systems
The architectural design is normally expressed as
a block diagram presenting an overview of the
system structure
More specific models showing how sub-systems
share data, are distributed, and interface with
each other may also be developed
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 24
Key points



The software architect is responsible for deriving
a structural system model, a control model and a
sub-system decomposition model
Large systems rarely conform to a single
architectural model
Key architectural concepts are components,
connectors, and configurations
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 10
Slide 25
Download