120
Course Title: Software Engineering

Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Course Title: Software Engineering

Page 2: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Course Contents

Unit 3:

1. Architectural Design

1.1. Introduction

1.2. System Structuring

1.3. Control Models

1.4. Modular Decomposition

1.5. Domain Specific Architecture

2. Object Oriented Design:

2.1. Introduction

2.2. Features of object oriented design

2.3. Object oriented software engineering

Page 3: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Course Contents

Unit 3:

1. Architectural Design

1.1. Introduction

1.2. System Structuring

1.3. Control Models

1.4. Modular Decomposition

1.5. Domain Specific Architecture

Page 4: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

As we know, system engineering processes are

1. System Requirements ( Requirements Definition)

2. System Design

3. Sub-System Development

4. System Integration

5. System Installation

6. System Evolution

7. System Decommissioning

Page 5: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

Further, System Design process activities are:

• Architectural design

• Abstract specification

• Interface design

• Component design

• Data structure design

• Algorithm design

Page 6: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design - Overview

PART-I: Architecture Design

1. System structuring ( System organization )

a) the repository model

b) the client-server model

c) the layered model

2. Control modelling

a) Centralised control

b) Event-based control

3. Modular decomposition

a) Object-oriented decomposition

b) Function-oriented pipelining

PART-II: Domain Specific Architecture

Page 7: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

Background:

Let’s Think about:

What is architects? What does he do ?

Building architects Vs Software architects

What is architectural design ?

“Architects design a model which acts as the technical

interface between the customer and the contractor building

the system.”

Page 8: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

Background:

Architects: design a model and acts as the technical

interface between the customer and the contractor building

the system.

The design process for identifying the sub-systems 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.

Page 9: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

1.1. Introduction

Architectural design (also called system design)

transformed the requirements of the software into an

architecture that describes the software's top-level

structure and identifies its components. This acts as

a preliminary 'blueprint' from which software can be

developed.

IEEE defines architectural design as 'the process of

defining a collection of hardware and software

components and their interfaces to establish the

framework for the development of a computer

system.'

Page 10: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

1.1. Introduction

This framework is established by examining the software

requirements document and designing a model for providing

implementation details.

These details are used to specify the components of the

system along with their inputs, outputs, functions, and the

interaction between them.

Page 11: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

1.1. Introduction

So, Architectural design is

an early stage of the system design process

represents the link between requirement

specification and design processes

often carried out in parallel with some specification

activities

It involves identifying major system components

and their communications

Page 12: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

The product of the architecture design process is an

architectural design document which include a

number of graphical representations of the system

along with associated descriptive text.

It should describe how the system is structured into

sub-systems, the approach adopted and how each

sub-system is structured into modules.

The graphical models of the system present different

perspectives on the architecture.

Page 13: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

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

Page 14: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design Example

GSM Network Architecture (System and sub-system)

Page 15: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design Process

Example: BTS Block Diagram (Module of BSS sub-system)

Page 16: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

What is architectural design?

An early stage of the system design process.

Link between the specification and design

processes.

It involves identifying major system components

and their communications.

The output of the architectural design process is a

description of the Software Architecture (SA).

Page 17: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design Example

Packing robot control system

Page 18: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Why do we need architectural design?The Architecture design process is concerned with establishing a

basic structural framework that identifies the major components

of a system and the communications between these components.

Three advantages of designing and documenting a software

architecture:

Stakeholder communication

• Architecture may be used as a focus of discussion by

system stakeholders.

System analysis

• Architectural design decisions has a profound effect on

whether the system can meet the critical requirements

(performance, etc)

Large-scale reuse

• The architecture may be reusable across a range of

systems.

Page 19: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

The architectural model or style used affects the

performance, robustness, distributability and

maintainability of the system.

The particular style and structure chosen for an

application may therefore depend on the non-

functional system requirements i.e Performance,

Security, Safety, Availability and maintainability.

Page 20: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Software architecture and non-functional requirements

Architecture Design also depend on the Non-functional

requirements:

Page 21: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Style

We can have more than one

architectural style within a

single software system.

Page 22: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

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.

Page 23: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural design decisions

Architectural Design is a creative process where

architect try to establish a system organisation that

will satisfy the functional and non-functional system

requirements.

Since it is a creative process, the activities within

the process differ radically depending on the type of

system being developed, the background and

experience of the system architect.

Page 24: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural design decisions

The software architect should answer the following...

Is there a generic application architecture that can

be used?

What architectural styles are appropriate?

How will the system be decomposed into modules?

What control strategy should be used?

How will the architectural design be evaluated?

How should the architecture be documented?

Page 25: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural design decisions

The software architect must make decisions about:

1. System organization ( System structuring)

The system is decomposed into several principal sub-systems

and communications between these sub-systems are identified

2. Control modelling

How the execution of the sub-systems are controlled. A model of

the control relationships between the different parts of the

system is established

3. Modular decomposition

The identified sub-systems are decomposed into modules

Evaluating different architectures for a software is sometimes

refereed to as Trade-off analysis.

Page 26: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

Architecture Design Styles

1. System organization ( System structuring )

a) the repository model

b) the client-server model

c) the layered model

2. Control modelling

a) Centralised control

b) Event-based control

3. Modular decomposition

a) Object-oriented decomposition

b) Function-oriented pipelining

Page 27: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural design decisions

System organizationReflects the basic strategy that is used to structure a

system.

Three organisational styles are widely used:

1. Shared data repository style ( the repository model)

2. Shared services and server style (the client-server

model)

3. An abstract machine or layered style (the layered

model)

Page 28: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

System organization

1. Shared repository style

Sub-systems must exchange data so that they can work together effectively.

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 where shared data is held in a central database or

repository and may be accessed by all sub-systems

This style is used when large amounts of data are to be shared.

Page 29: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

System organization

1. Shared repository styleExamples are management Information system, CAD

systems and CASE tools.

CASE toolset architecture

Page 30: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

System organization

1. Shared repository styleAdvantages:

Efficient way to share large amounts of data;

Sub-systems need not be concerned with how data is produced

Centralised management e.g. backup, recovery, security, etc.

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 to sub-systems but

same to all;

Difficult to distribute over a number of machines because of

data redundancy and inconsistency.

Page 31: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

System organization

2. Client/Server style

In this model, system is organized as a set of services and

associated servers and clients that access and use the services.

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 32: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

System organization

2. Client/Server styleFilm and picture library:

Page 33: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

System organization

2. Client/Server styleAdvantages:

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.

Page 34: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

System organization

3. Abstract machine / layered style

Used to model the interfacing of sub-systems.

Organises the system into a set of layers (or

abstract machines)

Each layer provides a set of services to the layer

above and serves as a client to the layer below.

Supports the incremental development of sub-

systems in different layers.

When a layer interface changes, only the adjacent

layer is affected.

Page 35: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

System organization

3. Abstract machine / layered styleLayered Architecture :

Page 36: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

System organization

3. Abstract machine / layered style Communication protocols (OSI reference model for

network protocols).

Operating systems

Database Management systems (storage,

transaction, query, optimizer, etc

Page 37: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

System organization

3. Abstract machine / layered styleAdvantages

Supports incremental development

Changeable (if a layer changes, only adjacent layers

are affected)

Disadvantages

Structuring systems into layers is difficult

Inner layers may provides facilities required by all

layers (e.g. file management)

Performance is degraded.

Page 38: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural design decisions

The software architect must make decisions about:

• System organisation

• Control style• Decomposition style

Page 39: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural design decisions

Control styleAre concerned with the control flow between

subsystems. Distinct from the system decomposition

model.

Centralised control

• One sub-system has overall responsibility for control and

starts and stops other sub-systems.

Event-Driven control

• Each sub-system can respond to externally generated

events from other sub-systems or the system’s

environment.

Page 40: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Control style

To work as a system, sub-systems must be

controlled so that their services are delivered to the

right place at the right time.

A control sub-system takes responsibility for

managing the execution of other sub-systems

Page 41: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Control style

1. Centralized ControlIn this, one sub-system is designed as the system controller and

has responsibility for managing the execution of other sub-

systems. Centralized control models fall into two classes

depending on whether the controlled sub-systems execute

sequentially or parallel.

Page 42: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Control style

1. Centralised Control Call-Return Model

Page 43: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Control style

1. Centralised Control Manager Model

Page 44: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Control style

2. Event-Driven Control Driven by externally generated events where the

timing of the event is outside the control of the sub-

systems which process the event. (event vs. input)

Two principal event-driven models

Page 45: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Control style

2. Event-Driven ControlBroadcast 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. Subsystems decide on events of interest to them.

(!!!) However, sub-systems don’t know if or when an event will be

handled.

Page 46: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Control style

2. Event-Driven ControlBroadcast model

Selective Broadcasting

Page 47: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Control style

2. Event-Driven ControlInterrupt-driven model

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 48: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Control style

2. Event-Driven ControlInterrupt-driven model

Page 49: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural design decisions

The software architect must make decisions about:

• System organisation

• Control style

• Decomposition style

Page 50: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural design decisions

Decomposition style Sub-systems are decomposed into modules.

Two modular decomposition models covered

1. An object model where the system is decomposed into

interacting objects;

2. A pipeline or data-flow model where the system is

decomposed into functional modules which transform

inputs to outputs.

Page 51: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Decomposition style

1. Object model 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 52: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Decomposition style

1. Object model:

Example: Invoice processing system

Page 53: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Decomposition style

1. Object model:

Advantages Objects are loosely coupled so their implementation

can be modified without affecting other objects.

The objects may reflect real-world entities.

OO implementation languages are widely used.

Page 54: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Decomposition style

2. Pipeline 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

Page 55: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Decomposition style

2. Pipeline modelsExample: Invoice processing system

Page 56: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Decomposition style

2. Pipeline modelsAdvantages

Supports reuse.

Intuitive organization. Many people think of their work in terms

of input and output processing.

Easy to add new transformations.

Relatively simple to implement as either a concurrent or

sequential system.

Disadvantages

Requires a common format for data transfer along the pipeline

and difficult to support event-based interaction.

Page 57: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

Architectural design process:

2. Control modelling

There are two generic control styles that are used in

software systems.

a) Centralised control

b) Event-based control

3. Modular decomposition

Two main strategies use in decomposing a sub-system

into modules.

a) Object-oriented decomposition

b) Function-oriented pipelining

Page 58: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design - Overview

PART-I: Architecture Design

1.System structuring ( System organization )

a) the repository model

b) the client-server model

c) the layered model

2. Control modelling

a) Centralised control

b) Event-based control

3. Modular decomposition

a) Object-oriented decomposition

b) Function-oriented pipelining

PART-II: Domain Specific Architecture

Page 59: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

PART-II: Domain Specific ArchitectureAbove 3-models are general models. There are some specific

model particular to some application that can be reused when

developing new system and is called domain specific architecture.

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 i.e. M&E, Data Collection

• Reference models which are more abstract, idealised model.

Provide a means of information about that class of system

and of comparing different architectures

There is not, of course, a rigid distinction between these types

of model.

Page 60: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

PART-II: Domain Specific Architecture

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 61: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

PART-II: Domain Specific Architecture

OSI reference model

Page 62: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

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

Page 63: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Architectural Design

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

Page 64: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Course Contents

Unit 3:

1. Architectural Design

1.1. Introduction

1.2. System Structuring

1.3. Control Models

1.4. Modular Decomposition

1.5. Domain Specific Architecture

2. Object Oriented Design:

2.1. Introduction

2.2. Features of object oriented design

2.3. Object oriented software engineering

Page 65: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Course Contents

Unit 3:

2. Object Oriented Design:

2.1. Introduction

2.2. Features of object oriented design

2.3. Object oriented software engineering

Page 66: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Objectives:

What do you understand by object oriented design?

Advantages of OOD.

What are the various features of OOD?

Activities/processes in the object-oriented design

process ?

Various models that can be used to describe an object-

oriented design

How the UML may be used to represent these models

Page 67: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

2.1. Introduction

The Object Oriented Design means to design the

software using set of interacting objects that manage

their own state and operations.

Set of activities are required in the design process and

the various models are used to describe an object-

oriented design.

There are various types of UML languages of which

object, class are mainly used for modelling the object

oriented design process.

Page 68: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

2.1. Introduction

An object-oriented system is made up of interacting

objects that maintain their own local state and provide

operation on that state.

The representation of state is private and cannot be

accessed directly from outside the object (encapsulation).

Object oriented design processes involve designing object

classes and the relationships between these classes.

These classes define the objects in the system and their

interaction.

When the design is realized as an executing program, the

objects are created dynamically from these class

definitions.

Page 69: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Interacting Objects:

Page 70: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Different phases of OOD:

1. Object oriented analysis: is concerned with developing an

object-oriented model of the application domain. The objects

in that model reflect the entities and operations associated

with the problem to be solved.

2. Object oriented design: is concerned with developing an

object-oriented model of a software system to implement the

identified requirements. The objects in an object-oriented

design are related to the solution to the problem.

3. Object oriented programming: is concerned with realizing a

software design using an object-oriented programming

language, such as Java. An object-oriented programming

language provides constructs to define object classes and a

run-time system to create objects from these classes.

Page 71: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Different phases of OOD:

Compatible notations are used at different phases/stages of the

development process and go on adding details at next stages to

an existing object classes to provide additional functionalities.

Page 72: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Advantages of OOD:

1. Easier to Change or modify: since objects are independent,

they may be easier to change than other development

approach. Changing the implementation of an object or adding

services should not effect other system objects.

2. Understandability and maintainability: Because objects are

associated with things, there is often a clear mapping between

real-world entities (such as hardware components) and their

controlling objects in the system.

3. Reusability: Objects are independent capsulations of state and

operations so developer can be developed using objects that

have been created in previous designs. This reduces design,

programming and validation costs and also reduce the risks

involved in software development.

Page 73: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Objects and Object Classes:

Objects are entities in a software system which

represent instances of real-world and system entities.

Object classes are templates for objects. They may

be used to create objects.

Object classes may inherit attributes and services

from other object classes.

Page 74: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Objects and Object Classes:

An object is an entity that has a state and a defined set of

operations which operate on that state. The state is

represented as a set of object attributes. The operations

associated with the object provide services to other

objects (clients) which request these services when some

computation is required.

Objects are created according to some object class

definition. An object class definition serves as a template

for objects. It includes declarations of all the attributes

and services which should be associated with an object of

that class.

Page 75: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Example: UML notation of

Employee object class

Object class is represented as a

named rectangle with two

sections.

Object attributes are listed in the

top section

Operations that are associated

with the object are set out in the

bottom section.

Objects communicate by

requesting services called

(methods).

Copies of information needed to

methods are passed as

parameters.

Emplo yee

name: s tring

add ress : st ring

dateOfBir th: Date

employeeNo: integer

soc ialSecu rityNo: s tring

dep ar tment: Dept

manager: Employee

salar y: integer

status: {current, left, retired}

taxCode: integer

. . .

join ()

leave ()

ret ire ()

changeDetails ()

Page 76: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Example:

Class vs Objects

(Creating Class and Objects

in Java programming)

Page 77: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

The Unified Modeling Language:

Several different notations for describing object-

oriented designs were proposed in the 1980s and

1990s.

The Unified Modeling Language(UML) is an

integration of these notations.

It describes notations for a number of different

models that may be produced during OO analysis and

design.

It is now a de facto standard for OO modelling.

Page 78: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

The Unified Modeling Language:

Several different notations for describing object-

oriented designs were proposed in the 1980s and

1990s.

The Unified Modeling Language(UML) is an

integration of these notations.

It describes notations for a number of different

models that may be produced during OO analysis and

design.

It is now a de facto standard for OO modelling.

Page 79: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Generalisation (inheritance):

Objects are members of classes that define

attribute types and operations.

Classes may be arranged in a class hierarchy

where one class (a super-class) is a generalisation of

one or more other classes (sub-classes).

A sub-class inherits the attributes and

operations from its super class and may add

new methods or attributes of its own.

Generalisation in the UML is implemented as

inheritance in OO programming languages.

Page 80: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Generalisation (inheritance): Example

Emplo yee

Prog rammer

projectprogLanguag es

Mana ger

ProjectMana ger

budgetsControlled

dateAppointed

projects

Dept .Mana ger

Strateg icMana ger

dept responsibilities

Page 81: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Aggregation (Association):

Objects and object classes participate in

relationships with other objects and object classes.

In the UML, a generalised relationship is indicated by

an association.

Associations may be annotated with information that

describes the association.

Associations are general but may indicate that an

attribute of an object is an associated object or that a

method relies on an associated object.

The UML notation for this relationship is just a plain

line between the classes.

Page 82: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

An association model:

Employee Depar tment

Manager

is-member-of

is-managed-by

manages

Page 83: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

2.2. Features of object oriented design

Page 84: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

2.2. Features of object oriented design

1. Objects: All entities involved in the solution design are known as

objects. For example, person, banks, company, and users are

considered as objects. Every entity has some attributes associated with

it and has some methods to perform on the attributes.

2. Classes: A class is a generalized description of an object. An object is

an instance of a class. A class defines all the attributes, which an object

can have and methods, which represents the functionality of the object.

3. Messages: Objects communicate by message passing. Messages

consist of the integrity of the target object, the name of the requested

operation, and any other action needed to perform the function.

Messages are often implemented as procedure or function calls.

4. Abstraction In object-oriented design, complexity is handled using

abstraction. Abstraction is the removal of the irrelevant and the

amplification of the essentials.

Page 85: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

2.2. Features of object oriented design

5. Encapsulation: Encapsulation is also called an information hiding

concept. The data and operations are linked to a single unit. Encapsulation

not only bundles essential information of an object together but also

restricts access to the data and methods from the outside world.

6. Inheritance: OOD allows similar classes to stack up in a hierarchical

manner where the lower or sub-classes can import, implement, and re-use

allowed variables and functions from their immediate superclasses. This

property of OOD is called an inheritance. This makes it easier to define a

specific class and to create generalized classes from specific ones.

7. Polymorphism: OOD languages provide a mechanism where methods

performing similar tasks but vary in arguments, can be assigned the same

name. This is known as polymorphism, which allows a single interface is

performing functions for different types. Depending upon how the service

is invoked, the respective portion of the code gets executed.

Page 86: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Class Diagram:

Page 87: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Visibility of Class attributes and Operations:

In OOD, there is a notation of visibility for attributes and

operations. UML identifies four types of visibility: public,

protected, private, and package.

+ denotes public attributes or operations

- denotes private attributes or operations

# denotes protected attributes or operations

~ denotes package attributes or operations

Page 88: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Class Visibility Example:

Page 89: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Class to Object Diagram Example - Order System:

Page 90: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

2.3. Object oriented software engineering

Structured design processes involve developing a

number of different system models.

They require a lot of effort for development and

maintenance of these models and, for small systems,

this may not be cost-effective.

However, for large systems developed by different

groups design models are an essential communication

mechanism.

Page 91: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

General process for OOD has a number of stages:

1. Define the context and modes of use of the system;

2. Design the system architecture;

3. Identify the principal system objects;

4. Develop design models;

5. Specify object interfaces.

All of the activities are interleaved and so influence each other.

After the architecture of the system is defined, objects and their

interfaces are identified. As object models are produced, these

individual object definitions may be defined, which leads to

changes to the system architecture again.

Page 92: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

System context and models of use:

Develop an understanding of the relationships

between the software being designed and its external

environment

System context

A static model that describes other systems in the environment.

Use a subsystem model to show other systems. Following slide

shows the systems around the weather station system.

Model of system use

A dynamic model that describes how the system interacts with its

environment. Use use-cases to show interactions

Page 93: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Example of OOD processes:

A weather mapping system is required to generate weather

maps on a regular basis using data collected from remote,

unattended weather stations and other data sources such as

weather observers, balloons and satellites. Weather station

transmit their data to the area computer in response to a

request from machine.

The area computer system validates the collected data and

integrates the data from different source. The integrated data

is archived and, using data from this archive and a digitised

map database, a set of local weather maps is created. Map

may be printed for distribution on a special-purpose map

printer or may displayed in a number of different formats.

Page 94: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Layered architecture:

«sub system»Data collection

«sub system»Data process ing

«sub system»Data archiving

«sub system»Data display

Data collection layer w here objectsare concerned w ith acquiring datafrom remote sources

Data processing layer where objectsare concerned w ith checking andinteg rat ing the collected data

Data archiving layer w here objectsare concerned with storing the data for future processing

Data display layer where objects areconcerned w ith preparing andpresent ing the data in a human-readable form

Page 95: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Subsystems in the weather mapping system:

Datastorage

Userinter face

«sub system»Data collection

«sub system»Data process ing

«sub system»Data archiving

«sub system»Data display

Weatherstation

Satellite

Comms

Ballo on

Observer

Map store Data s tore

Datastorage

Map

Userinter face

Mapdisplay

Mapprinter

Datachec king

Datainteg rat ion

Page 96: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Use-case models:

Use-case models are used to represent each interaction with

the system.

A use-case model shows the system features as ellipses and

the interacting entity as a stick figure.

Star tup

Shutdown

Repor t

Calibrate

Tes t

Page 97: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Use-case Description:

System Weather station

Use-case Report

Actors Weather data collection system, Weather station

Data The weather station sends a summary of the weather data that has been

collected from the instruments in the collection period to the weather data

collection system. The data sent are the maximum minimum and average

ground and air temperatures, the maximum, minimum and av erage air

pressures, the maximum, minimum and average wind speeds, the total

rainfall and th e wind direction as sampled at 5 minute intervals.

Stimulu s The weather data collection system establishes a modem link with the

weather station and requests transmission of the data.

Response The summarised data is sent to the weather data collection system

Comments Weather stations are usually asked to report once per hour but this

frequency may differ from one station to the other and may be modified in

future.

Page 98: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Architectural design:

Once interactions between the system and its

environment have been understood, use this

information for designing the system architecture.

A layered architecture is appropriate for the weather

station

• Interface layer for handling communications;

• Data collection layer for managing instruments;

• Instruments layer for collecting data.

Page 99: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Architectural design:

Page 100: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Object identification:

Identifying objects (or object classes) is the most

difficult part of object oriented design.

There is no 'magic formula' for object identification. It

relies on the skill, experience

and domain knowledge of system designers.

Object identification is an iterative process. You are

unlikely to get it right first time.

Page 101: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Approaches to identification:

Use a grammatical approach based on a natural

language description of the system (used in Hood

OOD method).

Base the identification on tangible things in the

application domain.

Use a behavioural approach and identify objects

based on what participates in what behaviour.

Use a scenario-based analysis. The objects,

attributes and methods in each scenario are

identified.

Page 102: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Weather station description:

A weather station is a package of software controlled

instruments which collects data, performs some data

processing and transmits this data for further processing.

The instruments include air and ground thermometers, an

anemometer, a wind vane, a barometer and a rain gauge.

Data is collected periodically.

When a command is issued to transmit the weather data,

the weather station processes and summarises the

collected data. The summarised data is transmitted to the

mapping computer when a request is received.

Page 103: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Weather station object classes:

Ground thermometer, Anemometer, Barometer

• Application domain objects that are ‘hardware’ objects related to the

instruments in the system.

Weather station

• The basic interface of the weather station to its environment. It therefore

reflects the interactions identified in the use-case model.

Weather data

• Encapsulates the summarised data from the instruments.

Page 104: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Weather station object classes:

identifier

repor tWeather ()

calibrate (instruments)

test ()

star tup (ins truments)

shutdown (ins truments)

WeatherStation

tes t ()

calibr ate ()

Ground

thermomet er

temper ature

Anemomet er

windSpeed

windDirection

tes t ()

Bar omet er

pressure

height

test ()

calibr ate ()

WeatherData

airTemper atures

groundT emper atures

windSpeeds

windDirections

pressures

rainf all

collect ()

summarise ()

Page 105: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Further objects and object refinement:

Use domain knowledge to identify more objects and operations

• Weather stations should have a unique identifier;

• Weather stations are remotely situated so instrument failures have to be

reported automatically. Therefore attributes and operations for self-checking

are required.

Active or passive objects

• In this case, objects are passive and collect data on request rather than

autonomously. This introduces flexibility at the expense of controller

processing time.

Page 106: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Design models:

Design models show the objects and object classes

and relationships between these entities.

Static models describe the static structure of the

system in terms of object classes and relationships.

Dynamic models describe the dynamic interactions

between objects.

Page 107: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Examples of design models:

Sub-system models that show logical groupings of objects

into coherent subsystems.

Sequence models that show the sequence of object

interactions.

State machine models that show how individual objects

change their state in response to events.

Other models include use-case models, aggregation

models, generalisation models, etc.

Page 108: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Subsystem models:

Shows how the design is organised into logically related

groups of objects.

In the UML, these are shown using packages - an

encapsulation construct. This is a logical model. The

actual organisation of objects in the system may be

different.

Page 109: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Weather station subsystems:

«subsystem»Inter face

«subsystem»Data collect ion

CommsController

WeatherStation

WeatherData

InstrumentStatus

«subsystem»Instruments

Air thermometer

Ground thermometer

RainGauge

Barometer

Anemometer

WindVane

Page 110: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Sequence models:

Sequence models show the sequence of object interactions that take place• Objects are arranged horizontally across the top;

• Time is represented vertically so models are read top to bottom;

• Interactions are represented by labelled arrows, Different styles of arrow represent different types of interaction;

• A thin rectangle in an object lifeline represents the time when the object is the controlling object in the system.

Page 111: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Data collection sequence:

Page 112: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Statecharts:

Show how objects respond to different service requests and the state transitions triggered by these requests

• If object state is Shutdown then it responds to a Startup() message;

• In the waiting state the object is waiting for further messages;

• If reportWeather () then system moves to summarising state;

• If calibrate () the system moves to a calibrating state;

• A collecting state is entered when a clock signal is received.

Page 113: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Statecharts:

Page 114: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Object interface specification:

Object interfaces have to be specified so that the objects and

other components can be designed in parallel.

Designers should avoid designing the interface representation

but should hide this in the object itself.

Objects may have several interfaces which are viewpoints on

the methods provided.

The UML uses class diagrams for interface specification but

Java may also be used.

Page 115: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Design evolution:

Hiding information inside objects means that changes made to

an object do not affect other objects in an unpredictable way.

Assume pollution monitoring facilities are to be added to

weather stations. These sample the air and compute the

amount of different pollutants in the atmosphere.

Pollution readings are transmitted with weather

data.

Page 116: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Changes required:

Add an object class called Air quality as part of

WeatherStation.

Add an operation reportAirQuality to WeatherStation.

Modify the control software to collect pollution readings.

Add objects representing pollution monitoring instruments.

Page 117: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Pollution monitoring:

Add an object class called Air quality as part of

WeatherStation.

Add an operation reportAirQuality to WeatherStation.

Modify the control software to collect pollution readings.

Add objects representing pollution monitoring instruments.

Page 118: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Pollution monitoring:

NODatasmok eDatabenz eneData

collect ()summarise ()

Air quality

ident ifier

repor tWeather ()repor tAirQuality ()calibrate (instruments)test ()star tup (ins truments)shutdown (ins trumen ts)

WeatherStation

Pollut ion monitoring instruments

NOmeter SmokeMeter

BenzeneMeter

Page 119: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Key points:

OOD is an approach to design so that design

components have their own private state and

operations.

Objects should have constructor and inspection

operations. They provide services to other objects.

Objects may be implemented sequentially or

concurrently.

The Unified Modeling Language provides different

notations for defining different object models.

Page 120: Course Title: Software Engineeringpmc.edu.np/department-of-statistics-and-computer... · Centralised management e.g. backup, recovery, security, etc. Disadvantages: Sub-systems must

Object Oriented Design

Key points:

A range of different models may be produced during

an object-oriented design process. These include

static and dynamic system models.

Object interfaces should be defined precisely using

e.g. a programming language like Java.

Object-oriented design potentially simplifies system

evolution.