Lecture 09-Object-Oriented-Design

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

The Norms and Standard of Software

Documentation

 Xiaoqiang Yan( 闫小强 )


 School of Information Engineering
 Email: [email protected]
 Wechat( 微信 ): 13592540976

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 1


Lesson 9 Object-Oriented Design

Chapter 1 Introduction to Software Engineering 2

©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


Three hierarchy of Object-Oriented
 Object-Oriented Language(语言 )
 Object-Oriented Software Engineering (方法)
 Object-Oriented Database (数据库)

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 4


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 5


Topics covered
 Objects and object classes
 An object-oriented design process
 Design evolution

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 6


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 7


Interacting objects

o1: C1 o3:C3 o4: C4


state o1 state o3 state o4
ops1() ops3 () ops4 ()

o2: C3 o6: C1 o5:C5


state o2 state o6 state o5
ops3 () ops1 () ops5 ()

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 8


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 9


Object-oriented development
面向对象的开发
 Object-oriented analysis, design and programming are
related but distinct
 OOA (object-oriented analysis) is concerned with
developing an object model of the application domain
 OOD (object-oriented development) is concerned with
developing an object-oriented system model to
implement requirements
 OOP (object-oriented programming) 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 10


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 11


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 12
The Unified Modeling Language
 Several different notations for describing object-
oriented designs were proposed in the 1980s and
1990s
 The Unified Modelling 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 13


Employee object class (UML)
Employee
name: string
address: string
dateOfBirth: Date
employeeNo: integer
socialSecurityNo: string
department: Dept
ma nager: Employee
salary: integer
status: {current, left, retired}
taxCode: integer
. ..
join ()
leave ()
retire ()
changeDetails ()

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 14


Object communication(通讯 )
 Conceptually, objects communicate by
message passing.
 Messages
•The name of the service requested by the calling object.

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

Ma nager Programmer

budgetsControlled project
progLanguage
dateAppointed

Project De pt. Strategic


Ma nag er Ma nager Ma nag er
projects 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


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 20


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 21
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 22


Layered architecture
Data display layer where objects are
«subsystem» concerned with preparing and
Da ta display presenting the data in a human-
readable form

Data archiving layer where objects


«subsystem» are concerned with storing the data
Da ta archiving for future processing

Data processing layer where objects


«subsystem» are concerned with checking and
Da ta processing integrating the collected data

Data collection layer where objects


«subsystem» are concerned with acquiring data
Da ta collection from remote sources

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 23


Subsystems in the weather mapping system
«subsystem»
Da ta collection «subsystem»
Da ta display

Observer Satellite
User Ma p
Co mms interface display

Weather Ma p
Balloon Ma p printer
station

«subsystem» «subsystem»
Da ta processing Da ta archiving

Da ta
Da ta Da ta storage
checking integration
Ma p store Da ta store

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 24


Use-cases for the weather station
Startup

Shutdown

Re port

Ca librate

Test

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 25


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 26


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 27


Weather station architecture
Weather station

Manages all
«subsystem» external
Interface communications

Collects and
«subsystem» summarises
Da ta collection weather data

«subsystem» Package of
instruments for raw
Instruments data collections

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 28


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 29


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 30
Weather station object classes
WeatherStation WeatherData
identifier airTemperatures
groundTemperatures
reportWeather () win dSpeeds
calibrate (instruments) win dDirections
test () pressures
startup (instruments) rainfall
shutdown (instruments)
collect ()
summarise ()

Ground Anemometer Ba rom eter


the rmometer pressure
win dSpeed
temperature win dDirection height
test () test ()
calibrate () test ()
calibrate ()

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 31


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 independently. This introduces flexibility at the
expense of controller processing time

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 32


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 33


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 34


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 35


Weather station subsystems
«subsystem» «subsystem»
Interface Da ta collection

Co mmsCo ntroller WeatherData

Instrument
WeatherStation Status

«subsystem»
Instruments

Air
thermometer Ra inGauge Anemometer

Ground
thermometer Barometer Wind Vane

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 36


Design evolution
 Hiding information inside objects means that
changes made to an object do not affect other
objects in an unpredictable way

Assume pollution monitors 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 37


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 38


Pollution monitoring
WeatherStation
Air quality
identifier
NO Data
reportWeather () smokeData
reportAirQuality () benzeneData
calibrate (instruments)
test () collect ()
startup (instruments) summarise ()
shutdown (instruments)

Pollution monitoring instruments

NO meter SmokeMeter

BenzeneMeter

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 39


Key points

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

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

Objects may be implemented sequentially or
concurrently

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

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 40


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

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 41


Assignment
 This is the 11-th week
 Please prepare the outline and detailed design
document
 Make the presentation in next week

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 42


Time line
Software
This week Testing Free time ?

11 12 13 14 15 16

Presentation 3: Presentation 4: Final


Outline and Software Presentation:
detailed design Testing All your project

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 43


 Because the time is tight, you only have one week
to prepare your outline and detailed design.
Therefore, your design can be as simple as
possible.

Next Wednesday, you should give your
presentation about outline and detailed design
on time.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12 Slide 44

You might also like