Top Banner
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 1 System Design Architectural Design Distributed System Architectures Object Oriented Design Real-time Software Design Design with reuse User Interface Design Lecture 4
22
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: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 1

System Design

Architectural DesignDistributed System ArchitecturesObject Oriented DesignReal-time Software DesignDesign with reuseUser Interface Design

Lecture 4

Page 2: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 2

Software Architecture

� Identifying the sub-systems and making a framework for these sub-system control and communication is called architectural design.

� Output of design process = software architecture.� Output of architectural design process = architectural

design document� This document contains e.g. DFD, ERD etc.

Page 3: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 3

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.

Page 4: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 4

Advantages of explicit architecture

� Stakeholder Communication• Architecture may be used as a focus of discussion by system

stakeholders[involved].� System Analysis

• Means that analysis of whether the system can meet its non-functional requirements is possible.

• [What a system should do = non functional requirements]• [How a system should do = functional requirements]

� Large-Scale Reuse• The architecture may be reusable across a range of systems.

Page 5: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 5

System Architecture affects:

� Performance� Security

• Use a layered architecture with critical assets in the inner layers.

� Safety• Use safety-critical features in a small number of sub-systems.

� Availability• Include redundant components and mechanisms for fault

tolerance.� Maintainability

• Provides support, resilency

Page 6: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 6

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 7: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 7

Block Diagram of Computer

Page 8: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 8

1- Client-server model

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

Page 9: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 9

Film and picture library

Catalogueserver

Librarycatalo gue

Videoserver

Film clipfiles

Pictureserver

Digitisedphoto g raphs

Web serv er

Film andphoto info.

Client 1 Client 2 Client 3 Client 4

Internet

Page 10: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 10

2- Abstract machine (layered) 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 sub-systems in different

layers. When a layer interface changes, only the adjacent layer is affected.

� However, often artificial to structure systems in this way.

Page 11: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 11

Version Management System

Configuration management system layer

Database system layer

Operating system layer

Object management system layer

Page 12: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 12

3- Object Oriented 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.

Page 13: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 13

Invoice processing system

issue ()sendReminder ()acceptPayment ()sendReceipt ()

invoice#dateamountcustomer

invoice#dateamountcustomer#

invoice#dateamountcustomer#

customer#nameaddresscredit period

Customer

Payment

Invoice

Receipt

Page 14: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 14

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.

Page 15: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 15

Real-time system control

Systemcontr oller

Userinter face

Faulthandler

Computa tionpr ocesses

Actuatorprocesses

Sensorpr ocesses

Page 16: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 16

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 don’t know if or when an event will be handled.

Page 17: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 17

Selective broadcasting

Sub-sy stem1

Event and messa ge handler

Sub-system2

Sub-system3

Sub-sy stem4

Page 18: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 18

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.

Page 19: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 19

Interrupt-driven control

Handler1

Handler2

Handler3

Handler4

Process1

Process2

Process3

Process4

Interrupts

Interruptvector

Page 20: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 20

Reference architectures

� Architectural models may be specific to some application domain.

� Two types of domain-specific model• Generic models.• Reference models.

� Generic models are usually bottom-up models; Reference models are top-down models.

Page 21: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 21

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.

Page 22: System Design

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 11 Slide 22

OSI reference model

Presenta tion

Session

Transpor t

Network

Data link

Physical

7

6

5

4

3

2

1

Comm unica tions medium

Networ k

Data link

Physical

Applica tion

Presenta tion

Session

Transpor t

Networ k

Data link

Physical

Applica tion