Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Architectural Design: Establishing The Overall Structure of A Software System

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 44

Architectural Design

Establishing the overall


structure of a software system

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 1

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
To discuss how domain-specific reference models
may be used as a basis for product-lines and to
compare software architectures

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 2

Topics covered

System structuring
Control models
Modular decomposition
Domain-specific architectures

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 3

Software architecture

The design process for identifying the subsystems making up a system and the framework
for sub-system control and communication is
architectural design
The output of this design process is a description
of the software architecture

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 4

Architectural design

An early stage of the system design process


Represents the link between specification and
design processes
Often carried out in parallel with some
specification activities
It involves identifying major system components
and their communications

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 5

Advantages of explicit architecture

Stakeholder communication

System analysis

Architecture may be used as a focus of discussion by system


stakeholders
Means that analysis of whether the system can meet its nonfunctional requirements is possible

Large-scale reuse

The architecture may be reusable across a range of systems

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 6

Architectural design process

System structuring

Control modelling

The system is decomposed into several principal sub-systems


and 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 7

Sub-systems and modules

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 8

Architectural models

Different architectural models may be produced


during the design process
Each model presents different perspectives on the
architecture

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 9

Architectural models

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
Relationships model such as a data-flow model

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 10

Architectural styles

The architectural model of a system may conform


to a generic architectural model or style
An awareness of these styles can simplify the
problem of defining system architectures
However, most large systems are heterogeneous
and do not follow a single architectural style

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 11

Architecture attributes

Performance

Security

Isolate safety-critical components

Availability

Use a layered architecture with critical assets in inner layers

Safety

Localise operations to minimise sub-system communication

Include redundant components in the architecture

Maintainability

Use fine-grain, self-contained components

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 12

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 13

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 14

The repository model

Sub-systems must exchange data. This may be


done in two ways:

Shared data is held in a central database or repository and may


be accessed by all sub-systems
Each sub-system maintains its own database and passes data
explicitly to other sub-systems

When large amounts of data are to be shared, the


repository model of sharing is most commonly
used

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 15

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 16

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
No scope for specific management policies
Difficult to distribute efficiently

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 17

Client-server architecture

Distributed system model which shows how data


and processing is distributed across a range of
components
Set of stand-alone servers which provide specific
services such as printing, data management, etc.
Set of clients which call on these services
Network which allows clients to access servers

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 18

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 19

Client-server characteristics

Advantages

Distribution of data is straightforward


Makes effective use of networked systems. May require cheaper
hardware
Easy to add new servers or upgrade existing servers

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

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 20

Abstract machine model

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 subsystems in different layers. When a layer
interface changes, only the adjacent layer is
affected
However, often difficult to structure systems in
this way

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 21

Version management system


Version management
Object management
Database system
Operating
system

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 22

Control models

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 systems environment

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 23

Centralised control

A control sub-system takes responsibility for


managing the execution of other sub-systems
Call-return model

Top-down subroutine model where control starts at the top of a


subroutine hierarchy and moves downwards. Applicable to
sequential systems

Manager model

Applicable to concurrent systems. One system component


controls the stopping, starting and coordination of other system
processes. Can be implemented in sequential systems as a case
statement

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 24

Call-return model
Main
program

Routine 1

Routine 1.1

Ian Sommerville 2000

Routine 2

Routine 1.2

Routine 3

Routine 3.1

Software Engineering, 6th edition. Chapter 10

Routine 3.2

Slide 25

Real-time system control


Sensor
processes

Actuator
processes

System
contr oller

Computation
processes
Ian Sommerville 2000

User
interface
Software Engineering, 6th edition. Chapter 10

Fault
handler
Slide 26

Event-driven systems

Driven by externally generated events where the


timing of the event is outwith the control of the
sub-systems which process the event
Two principal event-driven models

Broadcast models. An event is broadcast to all sub-systems.


Any sub-system which can handle the event may do so
Interrupt-driven models. Used in real-time systems where
interrupts are detected by an interrupt handler and passed to
some other component for processing

Other event driven models include spreadsheets


and production systems

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 27

Broadcast model

Effective in integrating sub-systems on different


computers in a network
Sub-systems register an interest in specific
events. When these occur, control is transferred
to the sub-system which can handle the event
Control policy is not embedded in the event and
message handler. Sub-systems decide on events
of interest to them
However, sub-systems dont know if or when an
event will be handled

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 28

Selective broadcasting
Sub-system
1

Sub-system
2

Sub-system
3

Sub-system
4

Event and messa ge handler

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 29

Interrupt-driven systems

Used in real-time systems where fast response to


an event is essential
There are known interrupt types with a handler
defined for each type
Each type is associated with a memory location
and a hardware switch causes transfer to its
handler
Allows fast response but complex to program and
difficult to validate

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 30

Interrupt-driven control
Interrupts

Interrupt
vector

Handler
1

Handler
2

Handler
3

Handler
4

Process
1

Process
2

Process
3

Process
4

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 31

Modular decomposition

Another structural level where sub-systems are


decomposed into modules
Two modular decomposition models covered

An object model where the system is decomposed into


interacting objects
A data-flow model where the system is decomposed into
functional modules which transform inputs to outputs. Also
known as the pipeline model

If possible, decisions about concurrency should


be delayed until modules are implemented

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 32

Object models

Structure the system into a set of loosely coupled


objects with well-defined interfaces
Object-oriented decomposition is concerned with
identifying object classes, their attributes and
operations
When implemented, objects are created from
these classes and some control model used to
coordinate object operations

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 33

Invoice processing system


Customer
customer#
name
address
credit period

Payment
invoice#
date
amount
customer#

Ian Sommerville 2000

Receipt

Invoice
invoice#
date
amount
customer

invoice#
date
amount
customer#

issue ()
sendR eminder ()
acceptPayment ()
sendR eceipt ()

Software Engineering, 6th edition. Chapter 10

Slide 34

Data-flow models

Functional transformations process their inputs to


produce outputs
May be referred to as a pipe and filter model (as
in UNIX shell)
Variants of this approach are very common.
When transformations are sequential, this is a
batch sequential model which is extensively used
in data processing systems
Not really suitable for interactive systems

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 35

Invoice processing system

Read issued
invoices

Invoices

Ian Sommerville 2000

Issue
receipts

Receipts

Find
payments
due

Issue
payment
reminder

Identify
payments
Reminders

Payments

Software Engineering, 6th edition. Chapter 10

Slide 36

Domain-specific architectures

Architectural models which are specific to some


application domain
Two types of domain-specific model

Generic models which are abstractions from a number of real


systems and which encapsulate the principal characteristics of
these systems
Reference models which are more abstract, idealised model.
Provide a means of information about that class of system and
of comparing different architectures

Generic models are usually bottom-up models;


Reference models are top-down models

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 37

Generic models

Compiler model is a well-known example


although other models exist in more specialised
application domains

Lexical analyser
Symbol table
Syntax analyser
Syntax tree
Semantic analyser
Code generator

Generic compiler model may be organised


according to different architectural models

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 38

Compiler model
Symbol
table

Lexical
analysis

Ian Sommerville 2000

Syntactic
analysis

Semantic
analysis

Software Engineering, 6th edition. Chapter 10

Code
generation

Slide 39

Language processing system


Lexical
analyser

Syntax
analyser

Semantic
analyser

Prettyprinter

Abstract
syntax tree

Grammar
definition

Optimizer

Editor

Symbol
table

Output
definition

Code
generator

Repository

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 40

Reference architectures

Reference models are derived from a study of the


application domain rather than from existing
systems
May be used as a basis for system
implementation or to compare different systems.
It acts as a standard against which systems can be
evaluated
OSI model is a layered model for communication
systems

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 41

OSI reference model


7

Application
Application

Application

Presentation

Presentation

Session

Session

Transport

Transport

Network

Network

Network

Data link

Data link

Data link

Physical

Physical

Physical

Communica tions medium


Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 42

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
System decomposition models include repository
models, client-server models and abstract
machine models
Control models include centralised control and
event-driven models

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 43

Key points

Modular decomposition models include data-flow


and object models
Domain specific architectural models are
abstractions over an application domain. They
may be constructed by abstracting from existing
systems or may be idealised reference models

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 10

Slide 44

You might also like