SlideShare a Scribd company logo
1 of 56
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 1
Chapter 12
Object-Oriented Design
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 2
Object-oriented Design
Designing systems using self-contained
objects and object classes
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 3
Objectives
 To explain how a software design may be
represented as a set of interacting objects that
manage their own state and operations
 To describe the activities in the object-oriented
design process
 To introduce various models that describe an
object-oriented design
 To show how the UML may be used to represent
these models
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 4
Topics covered
 Objects and object classes
 An object-oriented design process
 Design evolution
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 5
Characteristics of OOD
 Objects are abstractions of real-world or system
entities and manage themselves
 Objects are independent and encapsulate state
and representation information.
 System functionality is expressed in terms of
object services
 Shared data areas are eliminated. Objects
communicate by message passing
 Objects may be distributed and may execute
sequentially or in parallel
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 6
Interacting 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 ()
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 7
Advantages of OOD
 Easier maintenance. Objects may be
understood as stand-alone entities
 Objects are appropriate reusable components
 For some systems, there may be an obvious
mapping from real world entities to system
objects
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 8
Object-oriented development
 Object-oriented analysis, design and
programming are related but distinct
 OOA is concerned with developing an object
model of the application domain
 OOD is concerned with developing an object-
oriented system model to implement
requirements
 OOP is concerned with realising an OOD using
an OO programming language such as Java or
C++
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 9
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 10
Objects
An object is an entity which 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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 11
The Unified Modeling Language
 Several different notations for describing object-
oriented designs were proposed in the 1980s
and 1990s
 The Unified Modeling Language 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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 12
Employee object class (UML)
Employee
name: string
address: string
dateOfBirth: Date
employeeNo: integer
socialSecurityNo: string
department: Dept
manager: Employee
salary: integer
status: {current, left, retired}
taxCode: integer
. . .
join ()
leave ()
retire ()
changeDetails ()
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 13
Object communication
 Conceptually, objects communicate by
message passing.
 Messages
• The name of the service requested by the calling object.
• Copies of the information required to execute the service
and the name of a holder for the result of the service.
 In practice, messages are often implemented
by procedure calls
• Name = procedure name.
• Information = parameter list.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 14
Message examples
// Call a method associated with a buffer
// object that returns the next value
// in the buffer
v = circularBuffer.Get () ;
// Call the method associated with a
// thermostat object that sets the
// temperature to be maintained
thermostat.setTemp (20) ;
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 15
Generalisation and inheritance
 Objects are members of classes which 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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 16
A generalisation hierarchy
Employee
Programmer
project
progLanguage
Manager
Project
Manager
budgetsControlled
dateAppointed
projects
Dept.
Manager
Strategic
Manager
dept responsibilities
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 17
Advantages of inheritance
 It is an abstraction mechanism which may be
used to classify entities
 It is a reuse mechanism at both the design and
the programming level
 The inheritance graph is a source of
organisational knowledge about domains and
systems
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 18
Problems with inheritance
 Object classes are not self-contained. they
cannot be understood without reference to their
super-classes
 Designers have a tendency to reuse the
inheritance graph created during analysis. Can
lead to significant inefficiency
 The inheritance graphs of analysis, design and
implementation have different functions and
should be separately maintained
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 19
Inheritance and OOD
 There are differing views as to whether
inheritance is fundamental to OOD.
• View 1. Identifying the inheritance hierarchy or network is a
fundamental part of object-oriented design. Obviously this can
only be implemented using an OOPL.
• View 2. Inheritance is a useful implementation concept which
allows reuse of attribute and operation definitions. Identifying
an inheritance hierarchy at the design stage places
unnecessary restrictions on the implementation
 Inheritance introduces complexity and this is
undesirable, especially in critical systems
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 20
UML associations
 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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 21
An association model
Employee
Department
Manager
is-member-of
is-managed-by
manages
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 22
Concurrent objects
 The nature of objects as self-contained entities
make them suitable for concurrent
implementation
 The message-passing model of object
communication can be implemented directly if
objects are running on separate processors in a
distributed system
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 23
Servers and active objects
 Servers.
• The object is implemented as a parallel process (server)
with entry points corresponding to object operations. If no
calls are made to it, the object suspends itself and waits for
further requests for service
 Active objects
• Objects are implemented as parallel processes and the
internal object state may be changed by the object itself and
not simply by external calls
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 24
Active transponder object
 Active objects may have their attributes modified
by operations but may also update them
autonomously using internal operations
 Transponder object broadcasts an aircraft’s
position. The position may be updated using a
satellite positioning system. The object
periodically update the position by triangulation
from satellites
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 25
An active transponder object
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 26
Java threads
 Threads in Java are a simple construct for
implementing concurrent objects
 Threads must include a method called run() and
this is started up by the Java run-time system
 Active objects typically include an infinite loop so
that they are always carrying out the
computation
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 27
An object-oriented design process
 Define the context and modes of use of the
system
 Design the system architecture
 Identify the principal system objects
 Develop design models
 Specify object interfaces
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 28
Weather system description
A weather data collection 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 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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 29
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 every five minutes.
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 30
Layered architecture
«subsystem»
Data collection
«subsystem»
Data processing
«subsystem»
Data archiving
«subsystem»
Data display
Data collection layer where objects
are concerned with acquiring data
from remote sources
Data processing layer where objects
are concerned with checking and
integrating the collected data
Data archiving layer where objects
are concerned with storing the data
for future processing
Data display layer where objects are
concerned with preparing and
presenting the data in a human-
readable form
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 31
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 32
Subsystems in the weather mapping
system
«subsystem»
Data collection
«subsystem»
Data processing
«subsystem»
Data archiving
«subsystem»
Data display
Weather
station
Satellite
Comms
Balloon
Observer
Data
checking
Data
integration
Map store Data store
Data
storage
Map
User
interface
Map
display
Map
printer
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 33
Use-cases for the weather station
Startup
Shutdown
Report
Calibrate
Test
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 34
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 average air
pressures, the maximum, minimum and average wind speeds, the total rainfall
and the wind direction as sampled at 5 minute intervals.
Stimulus 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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 35
Architectural design
 Once interactions between the system and its
environment have been understood, you use
this information for designing the system
architecture
 Layered architecture is appropriate for the
weather station
• Interface layer for handling communications
• Data collection layer for managing instruments
• Instruments layer for collecting data
 There should be no more than 7 entities in an
architectural model
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 36
Weather station architecture
«subsystem»
Data collection
«subsystem»
Instruments
«subsystem»
Interface
Weather station
Manages all
external
communications
Collects and
summarises
w eather data
Package of
instruments for raw
data collections
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 37
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 38
Approaches to identification
 Use a grammatical approach based on a natural
language description of the system (used in
Hood 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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 39
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 40
Weather station object classes
identifier
reportWeather ()
calibrate (instruments)
test ()
startup (instruments)
shutdown (instruments)
WeatherStation
test ()
calibrate ()
Ground
thermometer
temperature
Anemometer
windSpeed
windDirection
test ()
Barometer
pressure
height
test ()
calibrate ()
WeatherData
airTemperatures
groundTemperatures
windSpeeds
windDirections
pressures
rainfall
collect ()
summarise ()
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 41
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 42
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 43
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 44
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 45
Weather station subsystems
«subsystem»
Interface
CommsController
WeatherStation
«subsystem»
Data collection
«subsystem»
Instruments
Air
thermometer
WeatherData
Ground
thermometer
Anemometer
WindVane
RainGauge
Instrument
Status
Barometer
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 46
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 47
Data collection sequence
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 48
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 49
Weather station state diagram
Shutdown Waiting Testing
Transmitting
Collecting
Summarising
Calibrating
transmission done
calibrate ()
test ()
startup ()
shutdown ()
calibration OK
test complete
weather summary
complete
clock collection
done
Operation
reportWeather ()
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 50
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 51
Weather station interface
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 52
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 53
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 54
Pollution monitoring
NOData
smokeData
benzeneData
collect ()
summarise ()
Air quality
identifier
reportWeather ()
reportAirQuality ()
calibrate (instruments)
test ()
startup (instruments)
shutdown (instruments)
WeatherStation
Pollution monitoring instruments
NOmeter SmokeMeter
BenzeneMeter
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 55
 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
Key points
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 56
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 simplifies system
evolution

More Related Content

Similar to ch12 (1).ppt

Clearing confusion about IoC (Inversion of Control)
Clearing confusion about IoC (Inversion of Control)Clearing confusion about IoC (Inversion of Control)
Clearing confusion about IoC (Inversion of Control)Mohammed Salah Eldowy
 
Chapter 1- Introduction.ppt
Chapter 1- Introduction.pptChapter 1- Introduction.ppt
Chapter 1- Introduction.pptTigistTilahun1
 
CS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT ICS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT Ipkaviya
 
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource GroupLINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource GroupShahzad
 
Software Engineering - Ch12
Software Engineering - Ch12Software Engineering - Ch12
Software Engineering - Ch12Siddharth Ayer
 
Cocoa encyclopedia
Cocoa encyclopediaCocoa encyclopedia
Cocoa encyclopediaAlex Ali
 
System Modelling
System ModellingSystem Modelling
System ModellingIanBriton
 
Software Engineering - Ch8
Software Engineering - Ch8Software Engineering - Ch8
Software Engineering - Ch8Siddharth Ayer
 
Object oriented modeling and design
Object oriented modeling and designObject oriented modeling and design
Object oriented modeling and designjayashri kolekar
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12koolkampus
 
Dependency Injection in .NET
Dependency Injection in .NETDependency Injection in .NET
Dependency Injection in .NETssusere19c741
 
UNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxUNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxanguraju1
 
Lecture 05. UI programming for Mobile Apps
Lecture 05. UI programming for Mobile AppsLecture 05. UI programming for Mobile Apps
Lecture 05. UI programming for Mobile AppsMaksym Davydov
 
Sofwear deasign and need of design pattern
Sofwear deasign and need of design patternSofwear deasign and need of design pattern
Sofwear deasign and need of design patternchetankane
 

Similar to ch12 (1).ppt (20)

Ch14
Ch14Ch14
Ch14
 
Clearing confusion about IoC (Inversion of Control)
Clearing confusion about IoC (Inversion of Control)Clearing confusion about IoC (Inversion of Control)
Clearing confusion about IoC (Inversion of Control)
 
Chapter 1- Introduction.ppt
Chapter 1- Introduction.pptChapter 1- Introduction.ppt
Chapter 1- Introduction.ppt
 
CS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT ICS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT I
 
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource GroupLINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
 
Software Engineering - Ch12
Software Engineering - Ch12Software Engineering - Ch12
Software Engineering - Ch12
 
Intro Uml
Intro UmlIntro Uml
Intro Uml
 
ITSE_10(UML,OO).pptx
ITSE_10(UML,OO).pptxITSE_10(UML,OO).pptx
ITSE_10(UML,OO).pptx
 
Cocoa encyclopedia
Cocoa encyclopediaCocoa encyclopedia
Cocoa encyclopedia
 
System Modelling
System ModellingSystem Modelling
System Modelling
 
Software Engineering - Ch8
Software Engineering - Ch8Software Engineering - Ch8
Software Engineering - Ch8
 
Object oriented modeling and design
Object oriented modeling and designObject oriented modeling and design
Object oriented modeling and design
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12
 
Dependency Injection in .NET
Dependency Injection in .NETDependency Injection in .NET
Dependency Injection in .NET
 
Ch05lect2 ud
Ch05lect2 udCh05lect2 ud
Ch05lect2 ud
 
Ch7
Ch7Ch7
Ch7
 
Ch7
Ch7Ch7
Ch7
 
UNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxUNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptx
 
Lecture 05. UI programming for Mobile Apps
Lecture 05. UI programming for Mobile AppsLecture 05. UI programming for Mobile Apps
Lecture 05. UI programming for Mobile Apps
 
Sofwear deasign and need of design pattern
Sofwear deasign and need of design patternSofwear deasign and need of design pattern
Sofwear deasign and need of design pattern
 

Recently uploaded

8 Tips for Effective Working Capital Management
8 Tips for Effective Working Capital Management8 Tips for Effective Working Capital Management
8 Tips for Effective Working Capital ManagementMBA Assignment Experts
 
An Overview of the Odoo 17 Knowledge App
An Overview of the Odoo 17 Knowledge AppAn Overview of the Odoo 17 Knowledge App
An Overview of the Odoo 17 Knowledge AppCeline George
 
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽中 央社
 
PSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptxPSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptxMarlene Maheu
 
e-Sealing at EADTU by Kamakshi Rajagopal
e-Sealing at EADTU by Kamakshi Rajagopale-Sealing at EADTU by Kamakshi Rajagopal
e-Sealing at EADTU by Kamakshi RajagopalEADTU
 
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjjStl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjjMohammed Sikander
 
Book Review of Run For Your Life Powerpoint
Book Review of Run For Your Life PowerpointBook Review of Run For Your Life Powerpoint
Book Review of Run For Your Life Powerpoint23600690
 
24 ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH SỞ GIÁO DỤC HẢI DƯ...
24 ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH SỞ GIÁO DỤC HẢI DƯ...24 ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH SỞ GIÁO DỤC HẢI DƯ...
24 ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH SỞ GIÁO DỤC HẢI DƯ...Nguyen Thanh Tu Collection
 
Major project report on Tata Motors and its marketing strategies
Major project report on Tata Motors and its marketing strategiesMajor project report on Tata Motors and its marketing strategies
Major project report on Tata Motors and its marketing strategiesAmanpreetKaur157993
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...Nguyen Thanh Tu Collection
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project researchCaitlinCummins3
 
UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024Borja Sotomayor
 
Personalisation of Education by AI and Big Data - Lourdes Guàrdia
Personalisation of Education by AI and Big Data - Lourdes GuàrdiaPersonalisation of Education by AI and Big Data - Lourdes Guàrdia
Personalisation of Education by AI and Big Data - Lourdes GuàrdiaEADTU
 
male presentation...pdf.................
male presentation...pdf.................male presentation...pdf.................
male presentation...pdf.................MirzaAbrarBaig5
 
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...EADTU
 
An overview of the various scriptures in Hinduism
An overview of the various scriptures in HinduismAn overview of the various scriptures in Hinduism
An overview of the various scriptures in HinduismDabee Kamal
 

Recently uploaded (20)

8 Tips for Effective Working Capital Management
8 Tips for Effective Working Capital Management8 Tips for Effective Working Capital Management
8 Tips for Effective Working Capital Management
 
An Overview of the Odoo 17 Knowledge App
An Overview of the Odoo 17 Knowledge AppAn Overview of the Odoo 17 Knowledge App
An Overview of the Odoo 17 Knowledge App
 
OS-operating systems- ch05 (CPU Scheduling) ...
OS-operating systems- ch05 (CPU Scheduling) ...OS-operating systems- ch05 (CPU Scheduling) ...
OS-operating systems- ch05 (CPU Scheduling) ...
 
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
 
PSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptxPSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptx
 
Mattingly "AI & Prompt Design: Named Entity Recognition"
Mattingly "AI & Prompt Design: Named Entity Recognition"Mattingly "AI & Prompt Design: Named Entity Recognition"
Mattingly "AI & Prompt Design: Named Entity Recognition"
 
e-Sealing at EADTU by Kamakshi Rajagopal
e-Sealing at EADTU by Kamakshi Rajagopale-Sealing at EADTU by Kamakshi Rajagopal
e-Sealing at EADTU by Kamakshi Rajagopal
 
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjjStl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
 
Book Review of Run For Your Life Powerpoint
Book Review of Run For Your Life PowerpointBook Review of Run For Your Life Powerpoint
Book Review of Run For Your Life Powerpoint
 
24 ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH SỞ GIÁO DỤC HẢI DƯ...
24 ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH SỞ GIÁO DỤC HẢI DƯ...24 ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH SỞ GIÁO DỤC HẢI DƯ...
24 ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH SỞ GIÁO DỤC HẢI DƯ...
 
Major project report on Tata Motors and its marketing strategies
Major project report on Tata Motors and its marketing strategiesMajor project report on Tata Motors and its marketing strategies
Major project report on Tata Motors and its marketing strategies
 
VAMOS CUIDAR DO NOSSO PLANETA! .
VAMOS CUIDAR DO NOSSO PLANETA!                    .VAMOS CUIDAR DO NOSSO PLANETA!                    .
VAMOS CUIDAR DO NOSSO PLANETA! .
 
Supporting Newcomer Multilingual Learners
Supporting Newcomer  Multilingual LearnersSupporting Newcomer  Multilingual Learners
Supporting Newcomer Multilingual Learners
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project research
 
UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024
 
Personalisation of Education by AI and Big Data - Lourdes Guàrdia
Personalisation of Education by AI and Big Data - Lourdes GuàrdiaPersonalisation of Education by AI and Big Data - Lourdes Guàrdia
Personalisation of Education by AI and Big Data - Lourdes Guàrdia
 
male presentation...pdf.................
male presentation...pdf.................male presentation...pdf.................
male presentation...pdf.................
 
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
 
An overview of the various scriptures in Hinduism
An overview of the various scriptures in HinduismAn overview of the various scriptures in Hinduism
An overview of the various scriptures in Hinduism
 

ch12 (1).ppt

  • 1. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 1 Chapter 12 Object-Oriented Design
  • 2. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 2 Object-oriented Design Designing systems using self-contained objects and object classes
  • 3. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 3 Objectives  To explain how a software design may be represented as a set of interacting objects that manage their own state and operations  To describe the activities in the object-oriented design process  To introduce various models that describe an object-oriented design  To show how the UML may be used to represent these models
  • 4. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 4 Topics covered  Objects and object classes  An object-oriented design process  Design evolution
  • 5. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 5 Characteristics of OOD  Objects are abstractions of real-world or system entities and manage themselves  Objects are independent and encapsulate state and representation information.  System functionality is expressed in terms of object services  Shared data areas are eliminated. Objects communicate by message passing  Objects may be distributed and may execute sequentially or in parallel
  • 6. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 6 Interacting 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 ()
  • 7. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 7 Advantages of OOD  Easier maintenance. Objects may be understood as stand-alone entities  Objects are appropriate reusable components  For some systems, there may be an obvious mapping from real world entities to system objects
  • 8. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 8 Object-oriented development  Object-oriented analysis, design and programming are related but distinct  OOA is concerned with developing an object model of the application domain  OOD is concerned with developing an object- oriented system model to implement requirements  OOP is concerned with realising an OOD using an OO programming language such as Java or C++
  • 9. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 9 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
  • 10. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 10 Objects An object is an entity which 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.
  • 11. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 11 The Unified Modeling Language  Several different notations for describing object- oriented designs were proposed in the 1980s and 1990s  The Unified Modeling Language 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
  • 12. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 12 Employee object class (UML) Employee name: string address: string dateOfBirth: Date employeeNo: integer socialSecurityNo: string department: Dept manager: Employee salary: integer status: {current, left, retired} taxCode: integer . . . join () leave () retire () changeDetails ()
  • 13. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 13 Object communication  Conceptually, objects communicate by message passing.  Messages • The name of the service requested by the calling object. • Copies of the information required to execute the service and the name of a holder for the result of the service.  In practice, messages are often implemented by procedure calls • Name = procedure name. • Information = parameter list.
  • 14. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 14 Message examples // Call a method associated with a buffer // object that returns the next value // in the buffer v = circularBuffer.Get () ; // Call the method associated with a // thermostat object that sets the // temperature to be maintained thermostat.setTemp (20) ;
  • 15. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 15 Generalisation and inheritance  Objects are members of classes which 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
  • 16. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 16 A generalisation hierarchy Employee Programmer project progLanguage Manager Project Manager budgetsControlled dateAppointed projects Dept. Manager Strategic Manager dept responsibilities
  • 17. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 17 Advantages of inheritance  It is an abstraction mechanism which may be used to classify entities  It is a reuse mechanism at both the design and the programming level  The inheritance graph is a source of organisational knowledge about domains and systems
  • 18. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 18 Problems with inheritance  Object classes are not self-contained. they cannot be understood without reference to their super-classes  Designers have a tendency to reuse the inheritance graph created during analysis. Can lead to significant inefficiency  The inheritance graphs of analysis, design and implementation have different functions and should be separately maintained
  • 19. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 19 Inheritance and OOD  There are differing views as to whether inheritance is fundamental to OOD. • View 1. Identifying the inheritance hierarchy or network is a fundamental part of object-oriented design. Obviously this can only be implemented using an OOPL. • View 2. Inheritance is a useful implementation concept which allows reuse of attribute and operation definitions. Identifying an inheritance hierarchy at the design stage places unnecessary restrictions on the implementation  Inheritance introduces complexity and this is undesirable, especially in critical systems
  • 20. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 20 UML associations  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
  • 21. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 21 An association model Employee Department Manager is-member-of is-managed-by manages
  • 22. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 22 Concurrent objects  The nature of objects as self-contained entities make them suitable for concurrent implementation  The message-passing model of object communication can be implemented directly if objects are running on separate processors in a distributed system
  • 23. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 23 Servers and active objects  Servers. • The object is implemented as a parallel process (server) with entry points corresponding to object operations. If no calls are made to it, the object suspends itself and waits for further requests for service  Active objects • Objects are implemented as parallel processes and the internal object state may be changed by the object itself and not simply by external calls
  • 24. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 24 Active transponder object  Active objects may have their attributes modified by operations but may also update them autonomously using internal operations  Transponder object broadcasts an aircraft’s position. The position may be updated using a satellite positioning system. The object periodically update the position by triangulation from satellites
  • 25. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 25 An active transponder object 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
  • 26. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 26 Java threads  Threads in Java are a simple construct for implementing concurrent objects  Threads must include a method called run() and this is started up by the Java run-time system  Active objects typically include an infinite loop so that they are always carrying out the computation
  • 27. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 27 An object-oriented design process  Define the context and modes of use of the system  Design the system architecture  Identify the principal system objects  Develop design models  Specify object interfaces
  • 28. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 28 Weather system description A weather data collection 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 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.
  • 29. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 29 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 every five minutes. 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.
  • 30. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 30 Layered architecture «subsystem» Data collection «subsystem» Data processing «subsystem» Data archiving «subsystem» Data display Data collection layer where objects are concerned with acquiring data from remote sources Data processing layer where objects are concerned with checking and integrating the collected data Data archiving layer where objects are concerned with storing the data for future processing Data display layer where objects are concerned with preparing and presenting the data in a human- readable form
  • 31. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 31 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
  • 32. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 32 Subsystems in the weather mapping system «subsystem» Data collection «subsystem» Data processing «subsystem» Data archiving «subsystem» Data display Weather station Satellite Comms Balloon Observer Data checking Data integration Map store Data store Data storage Map User interface Map display Map printer
  • 33. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 33 Use-cases for the weather station Startup Shutdown Report Calibrate Test
  • 34. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 34 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 average air pressures, the maximum, minimum and average wind speeds, the total rainfall and the wind direction as sampled at 5 minute intervals. Stimulus 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.
  • 35. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 35 Architectural design  Once interactions between the system and its environment have been understood, you use this information for designing the system architecture  Layered architecture is appropriate for the weather station • Interface layer for handling communications • Data collection layer for managing instruments • Instruments layer for collecting data  There should be no more than 7 entities in an architectural model
  • 36. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 36 Weather station architecture «subsystem» Data collection «subsystem» Instruments «subsystem» Interface Weather station Manages all external communications Collects and summarises w eather data Package of instruments for raw data collections
  • 37. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 37 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
  • 38. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 38 Approaches to identification  Use a grammatical approach based on a natural language description of the system (used in Hood 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
  • 39. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 39 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
  • 40. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 40 Weather station object classes identifier reportWeather () calibrate (instruments) test () startup (instruments) shutdown (instruments) WeatherStation test () calibrate () Ground thermometer temperature Anemometer windSpeed windDirection test () Barometer pressure height test () calibrate () WeatherData airTemperatures groundTemperatures windSpeeds windDirections pressures rainfall collect () summarise ()
  • 41. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 41 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
  • 42. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 42 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.
  • 43. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 43 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.
  • 44. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 44 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.
  • 45. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 45 Weather station subsystems «subsystem» Interface CommsController WeatherStation «subsystem» Data collection «subsystem» Instruments Air thermometer WeatherData Ground thermometer Anemometer WindVane RainGauge Instrument Status Barometer
  • 46. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 46 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
  • 47. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 47 Data collection sequence
  • 48. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 48 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
  • 49. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 49 Weather station state diagram Shutdown Waiting Testing Transmitting Collecting Summarising Calibrating transmission done calibrate () test () startup () shutdown () calibration OK test complete weather summary complete clock collection done Operation reportWeather ()
  • 50. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 50 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
  • 51. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 51 Weather station interface 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
  • 52. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 52 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
  • 53. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 53 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
  • 54. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 54 Pollution monitoring NOData smokeData benzeneData collect () summarise () Air quality identifier reportWeather () reportAirQuality () calibrate (instruments) test () startup (instruments) shutdown (instruments) WeatherStation Pollution monitoring instruments NOmeter SmokeMeter BenzeneMeter
  • 55. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 55  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 Key points
  • 56. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 56 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 simplifies system evolution