Date post: | 12-Jul-2015 |
Category: |
Documents |
Upload: | meljun-cortes |
View: | 111 times |
Download: | 1 times |
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 1
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
MELJUN CORTES,MBA,MPA,BSCS,ACSMELJUN CORTES,MBA,MPA,BSCS,ACS
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 2
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 3
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 4
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 5
Focus of Software Architectures� Two primary foci
• System Structure
• Correspondence between requirements and implementation
� A framework for understanding system-level concerns
• Global rates of flow
• Communication patterns
• Execution Control Structure
• Scalability
• Paths of System Evolution
• Capacity
• Throughput
• Consistency
• Component Compatibility
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 6
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 7
aTruck aShip aAirplane theWarehouseCollecti on
theVehicleCollection
UML-A Generated Dependency Class:theRouter Dependency (1.0)
theStorag e
aVehicle
UML-A Generated Dependency Class:theRouter Dependency (0.5)
availableVehicleCollection
UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Genera ted As socia tion C lass: theVehicleC ollec tion Genera lization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML- A Gen erated Ass ociati on Cl ass:theVehi cleCollectio n Generali zation (1.0 )UML-A Generated Association Class:theVehicleCollection Generalization (1.0)
UML-A Generated Dependency Class:theRouter Dependency (1.0)
availableGoods
aPort
aPortC ollec tion
aSurp lus aDifficiency
theTimeNeeded
theGoods
UML-A Generated Association Class:aWarehouse Association (0.5)
UML-A Generated Association Class:aWarehouse Association (0.5)
UML-A Generated Association Class:availableGoods Association (0.5)
aRouteCollection
UML-A Generated Association Class:aRoute 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:aRoute Association (0.25)
UML-A Generated Dependency Class:theRouter Dependency (0.5)UML-A Generated Dependency Class:theRouter Dependency (1.0)
UML-A Generated Dependency Class:theRouter Dependency (1.0)
theAWT
aVehiceDialog aWarehouseDialog aPortDialog aRouterDialog
aWarehouse
UML-A Generated Association Class:aDifficiency Association (1.0)UML-A Generated Association Class:aDifficiency Association (1.0)
UML-A Generated Association Class:aDifficiency Association (1.0)UML-A Generated Association Class:aDifficiency Association (1.0)
UML-A Generated Association Class:aDifficiency Association (1.0)U ML-A Generated Association Cla ss:aD ifficiency Associ ation (1.0)UML-A Generated Association Class:aDifficiency Association (1.0)UML-A Generated Association Class:aDifficiency Association (1.0)U ML-A Generated Association Class:aD ifficie ncy Associ ation (1.0)UML-A Generated Association Class:aDifficiency Association (1.0)UML-A Genera ted Associ ation C lass:aSurp lus Associ ation (1.0)UML-A Generated Association Class:aSurplus Association (0.5)
UML-A Generated Associ ation Class:aRoute Association (0.5)
aLocation
UML-A Generated Association Class:aNavPoint Association (1.0)
UML-A Generated Association Class:aW arehouse Association (0.5)
UML-A Generated Association Class:aNavPoint Association (0.5)
UML-A Generated Association Class:aNavPoint Association (0.5)UML-A Generated Association Class:aNavPoint Association (0.5)
UML-A Generated Association Class:aWarehouse Association (0.5)aNavPoint
UML-A Generated Association Class:aWarehouse Association (1.0)
UML-A Generated Association Class:aWarehouse Association (0.5)UML-A Generated Association Class:aWarehouse Association (0.5)
UML-A Generated Association Class:aWarehouse Association (0.5)
UML-A Generated Association Class:aWarehouse Association (0.5)
UML-A Generated Association Class:aRoute Association (0.5)
aRoute
UML -A Genera ted Dependency C lass :aRouteCol lectio n Ass ociation (0.25)
UML-A Generated Association Class:aNavPoint Association (1.0)UML-A Generated Association Class:aNavPoint Association (0.5)
UML-A Generated Association Class:aWarehouse Association (1.0)
UML-A Generated Dependency Class:aRouteCollection Association (0.5)
UML-A Generated Association Class:aNavPoint Association (1.0)UML-A Generated Association Class:aNavPoint Association (1.0)UML-A Generated Association Class:aNavPoint Association (1.0)UML-A Generated Association Class:aNavPoint Association (1.0)UML-A Generated Association Class:aNavPoint Association (1.0)
UML-A Generated Association Class:aNavPoint Association (0.25)UML-A Generated Association Class:aNavPoint Association (0.25)
UML-A Generated Association Class:aNavPoint Association (0.25)
UML-A Generated Dependency Class:theRouter Association (0.25)
UML-A Generated Association Class:aNavPoint Association (0.25)
theCargoRouter
UML-A Generated Association Class:theRouter Association (0.25)
UML-A Generated As socia tion C lass: theWarehouseCollection Dependency ( 0.25)
UML-A Generated Association Class:theRouter Association (0.25)
UML-A Generated Association Class:theRouter Association (0.25)
t heRouter
UML-A Generated Association Class:theW arehouseCollection Dependency (0.5)
UML-A Generated Association Class:theWarehouseCollection Dependency (0.5)
UML-A Generated Dependency Class :aRouteCollection Ass ociation (0.5)UML-A Gene rated Association Clas s:theWarehouseCollec tion Depen dency (0.5)
UML-A Generated Association Class:theVehicleCollection Dependency (0.5)UML-A Generated Association Class:availableVehicleCollection Dependency (0.5)UML- A Generated Generaliz ation Class :avail ableVehicle Collection Dependenc y (1.0)
UML-A Generated Dependency Class:theRouter Association (0.25)
UML-A Generated Dependency Class:theRouter Association (0.5)UML-A Generated Dependency Class:theRouter Association (1.0)
UML-A Generated Dependency Class:theRouter Association (0.5)
UML-A Generated Dependency Class:theWarehouseCollection Dependency (1.0)
UML-A Generated Dependency Class:theRouter Association (1.0)UML-A Generated Dependency Class:theRouter Association (1.0)
What is the Problem?This is a simple
software system!
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 8
aTruck aShipaAirplane
availableVehicleCollection
theAWT
aVehiceDialogaWarehouseDialog
aPortDialog
aRouterDialog
aRouteCollection
aVehicle
theVehicleCollection
theCargoRouter
theRouter
theTimeNeeded
aRoute
aDeficiency
theWarehouseCollection
aNavPoint
theStorage
RefrigeratedStorage
RegularStorage
availableGoods
aPortCollection
aLocation
theGoods
aWarehouse
aSurplus
aPort
The Usual Tool: Design Abstraction
We have to do better!
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 9
VehicleDel iveryPort
CargoRouter
RouterConn
GraphicsBinding : GraphicsBinding
GraphicsConn
Warehouse
ClockConn
Clock : Clock
10: notification9: notification
5: request
3: request4: request
2: notification
1: request
7: request
6: notification
8: request
Architectural Abstraction
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 10
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 high-
level structure of software.• Architecture deals with abstraction, decomposition, composition, style, and
aesthetics.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 11
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 12
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 13
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 14
Connectors
� A connector is an architectural element that models• interactions among components
• rules that govern those interactions
� Simple 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 15
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
C3 C4 C5
A
B C
D
C2C1
C7C6
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 16
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 17
Example Architecture – Compiler
Lexer
Parser
Semantor
Optimizer
CodeGenerator
Lexer Parser Semantor
InternalRepresentation
OptimizerCode
Generator
Sequential Parallel
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 18
CASE toolset architecture
Projectrepository
Designtranslator
Programeditor
Designeditor
Codegenerator
Designanalyser
Reportgenerator
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 19
Version management system
Operatingsystem
Database system
Object management
Version management
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 20
Packing robot control systemVisionsystem
Objectidentification
system
Armcontroller
Grippercontroller
Packagingselectionsystem
Packingsystem
Conveyorcontroller
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 21
Film and picture library
Catalogueserver
Catalogue
Videoserver
Film clipfiles
Pictureserver
Digitizedphotographs
Hypertextserver
Hypertextweb
Client 1 Client 2 Client 3 Client 4
Wide-bandwidth network
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 22
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 23
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 24
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 25
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