Top Banner
©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,ACS MELJUN CORTES,MBA,MPA,BSCS,ACS
25
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 2: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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?

Page 3: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 4: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 5: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 6: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 7: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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!

Page 8: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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!

Page 9: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 10: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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.

Page 11: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 12: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 13: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 14: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 15: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 16: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 17: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 18: MELJUN CORTES Architectural design software_eng_2nd_handouts

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 18

CASE toolset architecture

Projectrepository

Designtranslator

Programeditor

Designeditor

Codegenerator

Designanalyser

Reportgenerator

Page 19: MELJUN CORTES Architectural design software_eng_2nd_handouts

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 19

Version management system

Operatingsystem

Database system

Object management

Version management

Page 20: MELJUN CORTES Architectural design software_eng_2nd_handouts

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 20

Packing robot control systemVisionsystem

Objectidentification

system

Armcontroller

Grippercontroller

Packagingselectionsystem

Packingsystem

Conveyorcontroller

Page 21: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 22: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 23: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 24: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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

Page 25: MELJUN CORTES Architectural design software_eng_2nd_handouts

©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