+ All Categories
Home > Documents > MELJUN CORTES Architectural design software_eng_2nd_handouts

MELJUN CORTES Architectural design software_eng_2nd_handouts

Date post: 12-Jul-2015
Category:
Upload: meljun-cortes
View: 111 times
Download: 1 times
Share this document with a friend
Popular Tags:
25
©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
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


Recommended