object orienteddesign v

56
06/14/22 1 www.prsolutions08.blogspot.co m Object-oriented Design Object-oriented Design

Upload: harshita-gopu

Post on 17-Jan-2016

10 views

Category:

Documents


0 download

DESCRIPTION

Material

TRANSCRIPT

Page 1: Object OrientedDesign V

04/21/23 1www.prsolutions08.blogspot.com

Object-oriented DesignObject-oriented Design

Page 2: Object OrientedDesign V

04/21/23 2www.prsolutions08.blogspot.com

ObjectivesObjectives To explain how a software design may be To explain how a software design may be

represented as a set of interacting represented as a set of interacting objects that manage their own state and objects that manage their own state and operationsoperations

To describe the activities in the object-To describe the activities in the object-oriented design processoriented design process

To introduce various models that can be To introduce various models that can be used to describe an object-oriented used to describe an object-oriented designdesign

To show how the UML may be used to To show how the UML may be used to represent these modelsrepresent these models

Page 3: Object OrientedDesign V

04/21/23 3www.prsolutions08.blogspot.com

Topics coveredTopics covered Objects and object classes Objects and object classes An object-oriented design processAn object-oriented design process Design evolutionDesign evolution

Page 4: Object OrientedDesign V

04/21/23 4www.prsolutions08.blogspot.com

Object-oriented Object-oriented developmentdevelopment

Object-oriented analysis, design and Object-oriented analysis, design and programming are related but distinct.programming are related but distinct.

OOA is concerned with developing an OOA is concerned with developing an object model of the application domain.object model of the application domain.

OOD is concerned with developing an OOD is concerned with developing an object-oriented system model to object-oriented system model to implement requirements.implement requirements.

OOP is concerned with realising an OOD OOP is concerned with realising an OOD using an OO programming language such using an OO programming language such as Java or C++.as Java or C++.

Page 5: Object OrientedDesign V

04/21/23 5www.prsolutions08.blogspot.com

Characteristics of OODCharacteristics of OOD Objects are abstractions of real-world or Objects are abstractions of real-world or

system entities and manage themselves.system entities and manage themselves. Objects are independent and encapsulate Objects are independent and encapsulate

state and representation information. state and representation information. System functionality is expressed in terms of System functionality is expressed in terms of

object services.object services. Shared data areas are eliminated. Objects Shared data areas are eliminated. Objects

communicate by message passing.communicate by message passing. Objects may be distributed and may execute Objects may be distributed and may execute

sequentially or in parallel.sequentially or in parallel.

Page 6: Object OrientedDesign V

04/21/23 6www.prsolutions08.blogspot.com

Interacting objectsInteracting objects

state o3

o3:C3

state o4

o4: C4

state o1

o1: C1

state o6

o6: C1

state o5

o5:C5

state o2

o2: C3

ops1() ops3 () ops4 ()

ops3 () ops1 () ops5 ()

Page 7: Object OrientedDesign V

04/21/23 7www.prsolutions08.blogspot.com

Advantages of OODAdvantages of OOD Easier maintenance. Objects may be Easier maintenance. Objects may be

understood as stand-alone entities.understood as stand-alone entities. Objects are potentially reusable Objects are potentially reusable

components.components. For some systems, there may be an For some systems, there may be an

obvious obvious mapping from real world entities to mapping from real world entities to system system objects.objects.

Page 8: Object OrientedDesign V

04/21/23 8www.prsolutions08.blogspot.com

Objects and object Objects and object classesclasses

Objects are entities in a software Objects are entities in a software system which represent instances of system which represent instances of real-world and system entities.real-world and system entities.

Object classes are templates for Object classes are templates for objects. They may be used to create objects. They may be used to create objects.objects.

Object classes may inherit attributes Object classes may inherit attributes and services from other object and services from other object classes.classes.

Page 9: Object OrientedDesign V

04/21/23 9www.prsolutions08.blogspot.com

Objects and object Objects and object classesclasses

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 10: Object OrientedDesign V

04/21/23 10www.prsolutions08.blogspot.com

The Unified Modeling The Unified Modeling LanguageLanguage

Several different notations for describing Several different notations for describing object-oriented designs were proposed in object-oriented designs were proposed in the 1980s and 1990s. the 1980s and 1990s.

The Unified Modeling Language is an The Unified Modeling Language is an integration of these notations.integration of these notations.

It describes notations for a number of It describes notations for a number of different models that may be produced different models that may be produced during OO analysis and design.during OO analysis and design.

It is now a It is now a de factode facto standard for OO standard for OO modelling.modelling.

Page 11: Object OrientedDesign V

04/21/23 11S.Sreenivasa Rao

Employee object class Employee object class (UML)(UML)

Employee

name: stringaddress: stringdateOfBirth: DateemployeeNo: integersocialSecurityNo: stringdepartment: Deptmanager: Employeesalary: integerstatus: {current, left, retired}taxCode: integer. . .

join ()leave ()retire ()changeDetails ()

Page 12: Object OrientedDesign V

04/21/23 12S.Sreenivasa Rao

Object communicationObject communication Conceptually, objects communicate by Conceptually, objects communicate by

message passing.message passing. MessagesMessages

The name of the service requested by the calling The name of the service requested by the calling object;object;

Copies of the information required to execute the Copies of the information required to execute the service service and the name of a holder for the result of the service.and the name of a holder for the result of the service.

In practice, messages are often implemented In practice, messages are often implemented by procedure callsby procedure calls Name = procedure name;Name = procedure name; Information = parameter list.Information = parameter list.

Page 13: Object OrientedDesign V

04/21/23 13www.prsolutions08.blogspot.com

Message examplesMessage examples

// Call a method associated with a buffer // Call a method associated with a buffer // object that returns the next value // object that returns the next value // in the buffer// in the buffer

v = circularBuffer.Get () ;v = circularBuffer.Get () ;

// Call the method associated with a// Call the method associated with a// thermostat object that sets the // thermostat object that sets the // temperature to be maintained// temperature to be maintained

thermostat.setTemp (20) ;thermostat.setTemp (20) ;

Page 14: Object OrientedDesign V

04/21/23 14www.prsolutions08.blogspot.com

Generalisation and Generalisation and inheritanceinheritance

Objects are members of classes that define Objects are members of classes that define attribute types and operations.attribute types and operations.

Classes may be arranged in a class hierarchy Classes may be arranged in a class hierarchy where one class (a super-class) is a where one class (a super-class) is a generalisation of one or more other classes generalisation of one or more other classes (sub-classes).(sub-classes).

A sub-class inherits the attributes and A sub-class inherits the attributes and operations from its super class and may add operations from its super class and may add new methods or attributes of its own.new methods or attributes of its own.

Generalisation in the UML is implemented as Generalisation in the UML is implemented as inheritance in OO programming languages.inheritance in OO programming languages.

Page 15: Object OrientedDesign V

04/21/23 15www.prsolutions08.blogspot.com

A generalisation A generalisation hierarchyhierarchy

Employee

Programmer

projectprogLanguages

Manager

ProjectManager

budgetsControlled

dateAppointed

projects

Dept.Manager

StrategicManager

dept responsibilities

Page 16: Object OrientedDesign V

04/21/23 16www.prsolutions08.blogspot.com

Advantages of Advantages of inheritanceinheritance

It is an abstraction mechanism It is an abstraction mechanism which may be used to classify which may be used to classify entities.entities.

It is a reuse mechanism at both the It is a reuse mechanism at both the design and the programming level.design and the programming level.

The inheritance graph is a source of The inheritance graph is a source of organisational knowledge about organisational knowledge about domains and systems.domains and systems.

Page 17: Object OrientedDesign V

04/21/23 17www.prsolutions08.blogspot.com

Problems with Problems with inheritanceinheritance

Object classes are not self-contained. they Object classes are not self-contained. they cannot be understood without reference to cannot be understood without reference to their super-classes.their super-classes.

Designers have a tendency to reuse the Designers have a tendency to reuse the inheritance graph created during analysis. inheritance graph created during analysis. Can lead to significant inefficiency.Can lead to significant inefficiency.

The inheritance graphs of analysis, design The inheritance graphs of analysis, design and implementation have different and implementation have different functions and should be separately functions and should be separately maintained.maintained.

Page 18: Object OrientedDesign V

04/21/23 18www.prsolutions08.blogspot.com

UML associationsUML associations

Objects and object classes participate in Objects and object classes participate in relationships with other objects and object relationships with other objects and object classes.classes.

In the UML, a generalised relationship is In the UML, a generalised relationship is indicated by an association.indicated by an association.

Associations may be annotated with Associations may be annotated with information that describes the association.information that describes the association.

Associations are general but may indicate that Associations are general but may indicate that an attribute of an object is an associated an attribute of an object is an associated object or that a method relies on an object or that a method relies on an associated object.associated object.

Page 19: Object OrientedDesign V

04/21/23 19www.prsolutions08.blogspot.com

An association modelAn association model

Employee Department

Manager

is-member-of

is-managed-by

manages

Page 20: Object OrientedDesign V

04/21/23 20www.prsolutions08.blogspot.com

Concurrent objectsConcurrent objects The nature of objects as self-The nature of objects as self-

contained entities make them contained entities make them suitable for concurrent suitable for concurrent implementation.implementation.

The message-passing model of object The message-passing model of object communication can be implemented communication can be implemented directly if objects are running on directly if objects are running on separate processors in a distributed separate processors in a distributed system.system.

Page 21: Object OrientedDesign V

04/21/23 21www.prsolutions08.blogspot.com

Servers and active Servers and active objectsobjects

Servers. Servers. The object is implemented as a parallel process The object is implemented as a parallel process

(server) (server) with entry points corresponding to object with entry points corresponding to object operations. If no operations. If no calls are made to it, the object suspends itself calls are made to it, the object suspends itself and waits for further requests for service.and waits for further requests for service.

Active objectsActive objects Objects are implemented as parallel processes Objects are implemented as parallel processes

and the and the internal object state may be changed by the internal object state may be changed by the object itself and not simply by external calls.object itself and not simply by external calls.

Page 22: Object OrientedDesign V

04/21/23 22www.prsolutions08.blogspot.com

Active transponder Active transponder objectobject

Active objects may have their attributes Active objects may have their attributes modified by operations but may also modified by operations but may also update them autonomously using update them autonomously using internal operations.internal operations.

A A TransponderTransponder object broadcasts an object broadcasts an aircraft’s position. The position may be aircraft’s position. The position may be updated using a satellite positioning updated using a satellite positioning system. The object periodically update system. The object periodically update the position by triangulation from the position by triangulation from satellites.satellites.

Page 23: Object OrientedDesign V

04/21/23 23www.prsolutions08.blogspot.com

An active transponder An active transponder objectobject

class Transponder extends Thread {

Position currentPosition ;Coords c1, c2 ;Satellite sat1, sat2 ;Navigator theNavigator ;

public Position givePosition () {

return currentPosition ;}

public void run () {

while (true) {

c1 = sat1.position () ;c2 = sat2.position () ;currentPosition = theNavigator.compute (c1, c2) ;

}

}

} //Transponder

Page 24: Object OrientedDesign V

04/21/23 24www.prsolutions08.blogspot.com

Java threadsJava threads

Threads in Java are a simple Threads in Java are a simple construct for implementing construct for implementing concurrent objects.concurrent objects.

Threads must include a method Threads must include a method called run() and this is started up by called run() and this is started up by the Java run-time system.the Java run-time system.

Active objects typically include an Active objects typically include an infinite loop so that they are always infinite loop so that they are always carrying out the computation.carrying out the computation.

Page 25: Object OrientedDesign V

04/21/23 25www.prsolutions08.blogspot.com

An object-oriented An object-oriented design processdesign process

Structured design processes involve Structured design processes involve developing a number of different system developing a number of different system models.models.

They require a lot of effort for They require a lot of effort for development and maintenance of these development and maintenance of these models and, for small systems, this may models and, for small systems, this may not be cost-effective.not be cost-effective.

However, for large systems developed However, for large systems developed by different groups design models are by different groups design models are an essential communication mechanism.an essential communication mechanism.

Page 26: Object OrientedDesign V

04/21/23 26www.prsolutions08.blogspot.com

Process stagesProcess stages

Highlights key activities without Highlights key activities without being tied to any proprietary process being tied to any proprietary process such as the RUP.such as the RUP. Define the context and modes of use of Define the context and modes of use of

the system;the system; Design the system architecture;Design the system architecture; Identify the principal system objects;Identify the principal system objects; Develop design models;Develop design models; Specify object interfaces.Specify object interfaces.

Page 27: Object OrientedDesign V

04/21/23 27www.prsolutions08.blogspot.com

Weather system Weather system descriptiondescription

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 stations transmit their data to the area computer in response to a request from that machine.

The area computer system validates the collected data and integrates it with the data from different sources. The integrated data is archived and, using data from this archive and a digitised map database a set of local weather maps is created. Maps may be printed for distribution on a special-purpose map printer or may be displayed in a number of different formats.

Page 28: Object OrientedDesign V

04/21/23 28www.prsolutions08.blogspot.com

System context and models System context and models of useof use

Develop an understanding of the relationships Develop an understanding of the relationships between the software being designed and its between the software being designed and its external environmentexternal environment

System contextSystem context A static model that describes other systems in the A static model that describes other systems in the

environment. Use a subsystem model to show other environment. Use a subsystem model to show other systems. Following slide shows the systems around systems. Following slide shows the systems around the weather station system.the weather station system.

Model of system useModel of system use A dynamic model that describes how the system A dynamic model that describes how the system

interacts with its environment. Use use-cases to interacts with its environment. Use use-cases to show interactionsshow interactions

Page 29: Object OrientedDesign V

04/21/23 29www.prsolutions08.blogspot.com

Layered architectureLayered architecture

«subsystem»Data collection

«subsystem»Data processing

«subsystem»Data archiving

«subsystem»Data display

Data collection layer where objectsare concerned with acquiring datafrom remote sources

Data processing layer where objectsare concerned with checking andintegrating the collected data

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

Data display layer where objects areconcerned with preparing andpresenting the data in a human-readable form

Page 30: Object OrientedDesign V

04/21/23 30www.prsolutions08.blogspot.com

Subsystems in the weather Subsystems in the weather mapping systemmapping system

Datastorage

Userinterface

«subsystem»Data collection

«subsystem»Data processing

«subsystem»Data archiving

«subsystem»Data display

Weatherstation

Satellite

Comms

Balloon

Observer

Map store Data store

Datastorage

Map

Userinterface

Mapdisplay

Mapprinter

Datachecking

Dataintegration

Page 31: Object OrientedDesign V

04/21/23 31www.prsolutions08.blogspot.com

Use-case modelsUse-case models

Use-case models are used to Use-case models are used to represent each interaction with the represent each interaction with the system.system.

A use-case model shows the system A use-case model shows the system features as ellipses and the features as ellipses and the interacting entity as a stick figure.interacting entity as a stick figure.

Page 32: Object OrientedDesign V

04/21/23 32www.prsolutions08.blogspot.com

Use-cases for the weather Use-cases for the weather stationstation

Startup

Shutdown

Report

Calibrate

Test

Page 33: Object OrientedDesign V

04/21/23 33www.prsolutions08.blogspot.com

Use-case descriptionUse-case description

System Weather stationUse-case ReportActors Weather data collection system, Weather stationData The weather station sends a summary of the weather data that has been

collected from the instruments in the collection period to the weather datacollection system. The data sent are the maximum minimum and averageground and air temperatures, the maximum, minimum and average airpressures, the maximum, minimum and average wind speeds, the totalrainfall and the wind direction as sampled at 5 minute intervals.

Stimulus The weather data collection system establishes a modem link with theweather station and requests transmission of the data.

Response The summarised data is sent to the weather data collection systemComments 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 infuture.

Page 34: Object OrientedDesign V

04/21/23 34www.prsolutions08.blogspot.com

Architectural designArchitectural design

Once interactions between the system and its Once interactions between the system and its environment have been understood, you use environment have been understood, you use this information for designing the system this information for designing the system architecture.architecture.

A layered architecture as discussed in Chapter A layered architecture as discussed in Chapter 11 is appropriate for the weather station11 is appropriate for the weather station Interface layer for handling communications;Interface layer for handling communications; Data collection layer for managing instruments;Data collection layer for managing instruments; Instruments layer for collecting data.Instruments layer for collecting data.

There should normally be no more than 7 There should normally be no more than 7 entities in an architectural model.entities in an architectural model.

Page 35: Object OrientedDesign V

04/21/23 35www.prsolutions08.blogspot.com

Weather station Weather station architecturearchitecture

Weather station

Manages allexternal

communications

Collects andsummarisesweather data

Package ofinstruments for raw

data collections

«subsystem»Data collection

«subsystem»Instruments

«subsystem»Interface

Page 36: Object OrientedDesign V

04/21/23 36www.prsolutions08.blogspot.com

Object identificationObject identification Identifying objects (or object classes) is the Identifying objects (or object classes) is the

most difficult part of object oriented design.most difficult part of object oriented design. There is no 'magic formula' for object There is no 'magic formula' for object

identification. It relies on the skill, identification. It relies on the skill, experience experience and domain knowledge of system designers.and domain knowledge of system designers.

Object identification is an iterative process. Object identification is an iterative process. You are unlikely to get it right first time.You are unlikely to get it right first time.

Page 37: Object OrientedDesign V

04/21/23 37www.prsolutions08.blogspot.com

Approaches to Approaches to identificationidentification

Use a grammatical approach based on a Use a grammatical approach based on a natural language description of the system natural language description of the system (used in Hood OOD method).(used in Hood OOD method).

Base the identification on tangible things in Base the identification on tangible things in the application domain.the application domain.

Use a behavioural approach and identify Use a behavioural approach and identify objects based on what participates in what objects based on what participates in what behaviour.behaviour.

Use a scenario-based analysis. The objects, Use a scenario-based analysis. The objects, attributes and methods in each scenario are attributes and methods in each scenario are identified.identified.

Page 38: Object OrientedDesign V

04/21/23 38www.prsolutions08.blogspot.com

Weather station Weather station descriptiondescription

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 39: Object OrientedDesign V

04/21/23 39www.prsolutions08.blogspot.com

Weather station object Weather station object classesclasses

Ground thermometer, Anemometer, Ground thermometer, Anemometer, BarometerBarometer Application domain objects that are ‘hardware’ Application domain objects that are ‘hardware’

objects related to the instruments in the system.objects related to the instruments in the system. Weather stationWeather station

The basic interface of the weather station to its The basic interface of the weather station to its environment. It therefore reflects the interactions environment. It therefore reflects the interactions identified in the use-case model.identified in the use-case model.

Weather dataWeather data Encapsulates the summarised data from the Encapsulates the summarised data from the

instruments.instruments.

Page 40: Object OrientedDesign V

04/21/23 40www.prsolutions08.blogspot.com

Weather station object Weather station object classesclasses

identifier

reportWeather ()calibrate (instruments)test ()startup (instruments)shutdown (instruments)

WeatherStation

test ()calibrate ()

Groundthermometer

temperature

Anemometer

windSpeedwindDirection

test ()

Barometer

pressureheight

test ()calibrate ()

WeatherData

airTemperaturesgroundTemperatureswindSpeedswindDirectionspressuresrainfall

collect ()summarise ()

Page 41: Object OrientedDesign V

04/21/23 41www.prsolutions08.blogspot.com

Further objects and object Further objects and object refinementrefinement

Use domain knowledge to identify more Use domain knowledge to identify more objects and operationsobjects and operations Weather stations should have a unique identifier;Weather stations should have a unique identifier; Weather stations are remotely situated so Weather stations are remotely situated so

instrument failures have to be reported instrument failures have to be reported automatically. Therefore attributes and operations automatically. Therefore attributes and operations for self-checking are required.for self-checking are required.

Active or passive objectsActive or passive objects In this case, objects are passive and collect data on In this case, objects are passive and collect data on

request rather than autonomously. This introduces request rather than autonomously. This introduces flexibility at the expense of controller processing flexibility at the expense of controller processing time.time.

Page 42: Object OrientedDesign V

04/21/23 42www.prsolutions08.blogspot.com

Design modelsDesign models

Design models show the objects and Design models show the objects and object classes and relationships object classes and relationships between these entities.between these entities.

Static models describe the static Static models describe the static structure of the system in terms of structure of the system in terms of object classes and relationships.object classes and relationships.

Dynamic models describe the Dynamic models describe the dynamic interactions between dynamic interactions between objects.objects.

Page 43: Object OrientedDesign V

04/21/23 43S.Sreenivasa Rao

Examples of design Examples of design modelsmodels

Sub-system models that show logical Sub-system models that show logical groupings of objects into coherent groupings of objects into coherent subsystems.subsystems.

Sequence models that show the sequence of Sequence models that show the sequence of object interactions.object interactions.

State machine models that show how State machine models that show how individual objects change their state in individual objects change their state in response to events.response to events.

Other models include use-case models, Other models include use-case models, aggregation models, generalisation models, aggregation models, generalisation models, etc.etc.

Page 44: Object OrientedDesign V

04/21/23 44S.Sreenivasa Rao

Subsystem modelsSubsystem models

Shows how the design is organised Shows how the design is organised into logically related groups of into logically related groups of objects.objects.

In the UML, these are shown using In the UML, these are shown using packages - an encapsulation packages - an encapsulation construct. This is a logical model. construct. This is a logical model. The actual organisation of objects in The actual organisation of objects in the system may be different.the system may be different.

Page 45: Object OrientedDesign V

04/21/23 45S.Sreenivasa Rao

Weather station Weather station subsystemssubsystems

«subsystem»Interface

«subsystem»Data collection

CommsController

WeatherStation

WeatherData

InstrumentStatus

«subsystem»Instruments

Air thermometer

Ground thermometer

RainGauge

Barometer

Anemometer

WindVane

Page 46: Object OrientedDesign V

04/21/23 46S.Sreenivasa Rao

Sequence modelsSequence models Sequence models show the sequence of Sequence models show the sequence of

object interactions that take placeobject interactions that take place Objects are arranged horizontally across the Objects are arranged horizontally across the

top;top; Time is represented vertically so models are Time is represented vertically so models are

read top to bottom;read top to bottom; Interactions are represented by labelled Interactions are represented by labelled

arrows, Different styles of arrow represent arrows, Different styles of arrow represent different types of interaction;different types of interaction;

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

Page 47: Object OrientedDesign V

04/21/23 47www.prsolutions08.blogspot.com

Data collection sequenceData collection sequence

:CommsController

request (report)

acknowledge ()report ()

summarise ()

reply (report)

acknowledge ()

send (report)

:WeatherStation :WeatherData

Page 48: Object OrientedDesign V

04/21/23 48www.prsolutions08.blogspot.com

StatechartsStatecharts Show how objects respond to different service Show how objects respond to different service

requests and the state transitions triggered by requests and the state transitions triggered by these requeststhese requests If object state is Shutdown then it responds to a If object state is Shutdown then it responds to a

Startup() message;Startup() message; In the waiting state the object is waiting for further In the waiting state the object is waiting for further

messages;messages; If reportWeather () then system moves to If reportWeather () then system moves to

summarising state;summarising state; If calibrate () the system moves to a calibrating state;If calibrate () the system moves to a calibrating state; A collecting state is entered when a clock signal is A collecting state is entered when a clock signal is

received.received.

Page 49: Object OrientedDesign V

04/21/23 49www.prsolutions08.blogspot.com

Weather station state Weather station state diagramdiagram

transmission done

calibrate ()

test ()startup ()

shutdown ()

calibration OK

test complete

weather summarycomplete

clock collectiondone

Operation

reportWeather ()

Shutdown Waiting Testing

Transmitting

Collecting

Summarising

Calibrating

Page 50: Object OrientedDesign V

04/21/23 50www.prsolutions08.blogspot.com

Object interface Object interface specificationspecification

Object interfaces have to be specified so Object interfaces have to be specified so that the objects and other components can that the objects and other components can be designed in parallel.be designed in parallel.

Designers should avoid designing the Designers should avoid designing the interface representation but should hide interface representation but should hide this in the object itself.this in the object itself.

Objects may have several interfaces which Objects may have several interfaces which are viewpoints on the methods provided.are viewpoints on the methods provided.

The UML uses class diagrams for interface The UML uses class diagrams for interface specification but Java may also be used.specification but Java may also be used.

Page 51: Object OrientedDesign V

04/21/23 51www.prsolutions08.blogspot.com

Weather station Weather station interfaceinterface

interface WeatherStation {

public void WeatherStation () ;

public void startup () ;public void startup (Instrument i) ;

public void shutdown () ;public void shutdown (Instrument i) ;

public void reportWeather ( ) ;

public void test () ;public void test ( Instrument i ) ;

public void calibrate ( Instrument i) ;

public int getID () ;

} //WeatherStation

Page 52: Object OrientedDesign V

04/21/23 52www.prsolutions08.blogspot.com

Design evolutionDesign evolution Hiding information inside objects means that Hiding information inside objects means that

changes made to an object do not affect other changes made to an object do not affect other objects in an unpredictable way.objects in an unpredictable way.

Assume pollution monitoring facilities are to be Assume pollution monitoring facilities are to be added to weather stations. These sample the added to weather stations. These sample the air and compute the amount of different air and compute the amount of different pollutants in the atmosphere.pollutants in the atmosphere.

Pollution readings are transmitted with weather Pollution readings are transmitted with weather data.data.

Page 53: Object OrientedDesign V

04/21/23 53www.prsolutions08.blogspot.com

Changes requiredChanges required Add an object class called Add an object class called Air qualityAir quality

as part of as part of WeatherStationWeatherStation.. Add an operation Add an operation reportAirQualityreportAirQuality to to

WeatherStationWeatherStation. Modify the control . Modify the control software to collect pollution software to collect pollution readings.readings.

Add objects representing pollution Add objects representing pollution monitoring instruments.monitoring instruments.

Page 54: Object OrientedDesign V

04/21/23 54www.prsolutions08.blogspot.com

Pollution monitoringPollution monitoring

NODatasmokeDatabenzeneData

collect ()summarise ()

Air qualityidentifier

reportWeather ()reportAirQuality ()calibrate (instruments)test ()startup (instruments)shutdown (instruments)

WeatherStation

Pollution monitoring instruments

NOmeter SmokeMeter

BenzeneMeter

Page 55: Object OrientedDesign V

04/21/23 55www.prsolutions08.blogspot.com

OOD is an approach to design so that design OOD is an approach to design so that design components have their own private state and components have their own private state and operations.operations.

Objects should have constructor and Objects should have constructor and inspection operations. They provide services inspection operations. They provide services to other objects.to other objects.

Objects may be implemented sequentially or Objects may be implemented sequentially or concurrently.concurrently.

The Unified Modeling Language provides The Unified Modeling Language provides different notations for defining different different notations for defining different object models.object models.

Key pointsKey points

Page 56: Object OrientedDesign V

04/21/23 56www.prsolutions08.blogspot.com

Key pointsKey points A range of different models may be A range of different models may be

produced during an object-oriented produced during an object-oriented design process. These include static design process. These include static and dynamic system models.and dynamic system models.

Object interfaces should be defined Object interfaces should be defined precisely using e.g. a programming precisely using e.g. a programming language like Java.language like Java.

Object-oriented design potentially Object-oriented design potentially simplifies system evolution.simplifies system evolution.