PowerPoint

advertisement
CS 501: Software Engineering
Lecture 16
Object Oriented Design 2
1
CS 501 Spring 2005
Administration
2
CS 501 Spring 2005
Candidate Classes: Solution Classes
Application classes and solution classes:
Application classes represent application concepts.
Noun identification is an effective technique to generate
candidate application classes.
Solution classes represent system concepts, e.g., user
interface objects, databases, etc.
3
CS 501 Spring 2005
From Candidate Classes to Completed
Design
Methods used to move to final design:
Reuse: Wherever possible use existing components, or class
libraries. They may need modification.
Restructuring: Change the design to improve, understandability,
maintainability, etc. Techniques include merging similar
classes, splitting complex classes, etc.
Optimization: Ensure that the system meets anticipated
performance requirements, e.g., by changed algorithms or
restructuring.
Completion: Fill all gaps, specify interfaces, etc.
4
CS 501 Spring 2005
An Exam Question:
Object Oriented Design
A system generates weather maps using data collected from
unattended weather stations. Each weather station collects
meteorological data and produces summaries of the data.
On request, it sends the summary information to an area
computer. The area computer uses a database of digitized
maps to generate a set of local weather maps.
5
CS 501 Spring 2005
Exam Question: Noun Identification
A system generates weather maps using data collected from
unattended weather stations. Each weather station collects
meteorological data and produces summaries of the data.
On request, it sends the summary information to an area
computer. The area computer uses a database of digitized
maps to generate a set of local weather maps.
6
CS 501 Spring 2005
Exam Question: Candidate Classes
System
general term
WeatherMap
Data
same as MeteorologicalData
WeatherStation
is this a general term?
MeteorologicalData
how does this relate to WeatherStation?
DataSummary
how does this relate to MeteorologicalData?
AreaComputer
hardware
Database
general term
DigitizedMap
7
CS 501 Spring 2005
Exam Question: Observations about
the Candidate Classes
WeatherMap
is a DigitizedMap
is derived from 1...* DataSummary
WeatherStation
has a set of MeteorologicalData
MeteorologicalData
DataSummary
is derived from MeteorologicalData
DigitizedMap
Can Meteorological Data be an attribute of WeatherStation?
Can DataSummary be combined with WeatherMap?
8
CS 501 Spring 2005
Exam Question: Attributes and
Operations
WeatherStation
location
metereologicalData
collectData()
getSummary()
DigitizedMap
location
geographicData
printMap()
9
WeatherMap
location
date-time
geographicData
weather
gatherData()
printMap()
Or should
MetereologicalData be a
separate object?
CS 501 Spring 2005
Exam Question: Class Diagram
DigitizedMap
WeatherStation
location
metereologicalData
collectData()
getSummary()
WeatherMap
1
1...*
summary
location
date-time
geographicData
weather
gatherData()
printMap()
10
CS 501 Spring 2005
Modeling Dynamic Aspects of Systems
Interaction diagrams: set of objects and their relationships
including messages that may be dispatched among them
•
Sequence diagrams: time ordering of messages
• Collaboration diagrams: structural organization of
objects that send and receive messages
Activity diagram: flow chart showing flow of control from
activity to activity
Statechart diagram: models a state machine
11
CS 501 Spring 2005
Notation: Statechart diagrams
State diagrams can be used for both requirements specification
and for program design.
Waiting
A state machine is a behavior that specifies the sequence of
states an object or an interaction goes through during its
lifetime in response to events.
12
CS 501 Spring 2005
State Diagram: Notation
returned()
not
borrowable
returned()
borrowable
borrowed()[last copy]
guard expression
borrowed()[not last copy]
State diagram for class Book in a library system
13
CS 501 Spring 2005
State Transition Diagram
Select field
Enter
Patients
Enter
Fields
Start
(lock off)
Setup
Beam
on
Ready
Stop
(lock on)
Select patient
14
CS 501 Spring 2005
Interaction: Bouncing Ball Diagrams
Example: execution of http://www.cs.cornell.edu/
domain name
service
TCP
connection
HTTP get
Client
15
Server(s)
CS 501 Spring 2005
Notation for Classes and Objects
Classes
AnyClass
attribute1
attribute2
operation1()
operation2()
or
AnyClass
16
Objects
anObject:AnyClass
or
:AnyClass
or
anObject
The names of objects are
underlined.
CS 501 Spring 2005
Notation: Active Class
EventManager
eventlist
suspend()
flush()
An active class is a class whose objects own one or
more processes or threads and therefore can initiate
control activity.
17
CS 501 Spring 2005
Notation: Interaction
display
An interaction is a behavior that comprises a set of messages
exchanged among a set of objects within a particular context to
accomplish a specific purpose.
18
CS 501 Spring 2005
Actions on Objects
returnCopy(c)
call
okToBorrow()
return
send
create
destroy
19
local
status
notifyReturn(b)
asynchronous
signal
<<create>>
<<destroy>>
stereotypes
CS 501 Spring 2005
Sequence Diagram: Borrow Copy of a
Book
libMem:
LibraryMember
BookBorrower
theBook:Book
theCopy:Copy
borrow(theCopy)
okToBorrow
borrow
borrow
20
CS 501 Spring 2005
Sequence Diagram: Change in Cornell
Program
:MEngStudent
Cornellian
1 : getName()
1.1 : name
2: <<create>> PhDStudent(name)
:PhDStudent
3: <<destroy>>
sequence numbers added to messages
21
CS 501 Spring 2005
Sequence Diagram: Painting Mechanism
:Thread
run
:Toolkit
run
:ComponentPeer
target:HelloWorld
callbackLoop
handleExpose
paint
22
CS 501 Spring 2005
Other Diagrams in UML
• Activity diagram is a statechart diagram that shows the
flow from activity to activity within a system.
• Component diagram shows the organization and
dependencies among a set of components.
• Deployment diagram shows the configuration of
processing nodes and the components that live on them.
23
CS 501 Spring 2005
Activity Diagram (Flowchart)
Release work
order
Activity diagrams can be used for
both requirements specification
and for program design.
branch
[materials not ready]
Reschedule
[materials ready]
guard expression
Assign tasks
24
CS 501 Spring 2005
Activity Diagram: Parallel Activities
start state
Decompress
fork
Stream video
Stream audio
join
stop state
25
CS 501 Spring 2005
Software Reuse
Better software at lower cost
Potential benefits of reuse:
• Reduce development time and cost
• Improved reliability of mature components
• Shared maintenance cost
Potential disadvantages of reuse:
• Difficulty in finding appropriate components
• Components may be a poor fit for application
26
The discussion of design for reuse draws from the
book by Bruegge and Dutoit in the readings.
CS 501 Spring 2005
Software Reuse: Examples
Software developers rely heavily on
software components provided by others
System software
•
•
•
•
device drivers
file systems
exception handling
network protocols
Subsystems
• database management systems
• firewalls
• web servers
27
CS 501 Spring 2005
Software Reuse Examples (Tools)
Standard functions
• mathematical methods
• formatting
User interface
•
•
28
toolkits (e.g. Quickdraw)
class libraries, (e.g., Swing)
CS 501 Spring 2005
Software Reuse (Application Packages)
An application package supports a standard application (e.g.,
payroll)
Functionality can be enhanced by:
=> configuration parameters (e.g., table driven)
=> extensibility at defined interfaces
=> custom written source code extensions
29
CS 501 Spring 2005
Reuse and Object Oriented Languages
Example: Java
Java is a relatively straightforward language with a very rich set
of class hierarchies.
• Java programs derive much of their functionality from
standard classes
• Learning and understanding the classes is difficult
• Experienced Java programmers can write complex systems
quickly
• Inexperienced Java programmers write inelegant and buggy
programs
30
CS 501 Spring 2005
Design for Reuse
The software design should anticipate possible changes in the
system over its life-cycle.
New vendor or new technology
Components are replaced because a supplier goes out of
business, ceases to provide adequate support, increases its
price, etc., or because better software from another sources
provides better functionality, support, pricing, etc.
This can apply to either open-source or vendor-supplied
components.
31
CS 501 Spring 2005
Design for Reuse
New implementation
The original implementation may be problematic, e.g., poor
performance, inadequate back-up and recovery, difficult to
trouble-shoot, or unable to support growth and new features
added to the system.
Example. The portal nsdl.org was originally implemented
using uPortal. This did not support important extensions that
were requested and proved awkward to maintain. It was
reimplemented using PHP/MySQL.
32
CS 501 Spring 2005
Design for Reuse
Additions to the requirements
When a system goes into production, it is usual to
reveal both weaknesses and opportunities for extra
functionality and enhancement to the user interface
design.
For example, in a data-intensive system it is almost
certain that there will be requests for extra reports and
ways of viewing the data.
Requests for enhancements are often the sign of a
successful system. Clients recognize latent
possibilities.
33
CS 501 Spring 2005
Design for Reuse
Changes in the application domain
Most application domains change continually, e.g.,
because of business opportunities, external changes
(such as new laws), mergers and take-overs, new groups
of users, etc., etc.,
It is rarely feasible to implement a completely new system
when the application domain changes. Therefore existing
systems must be modified. This may involve extensive
restructuring.
34
CS 501 Spring 2005
Reuse Techniques
Implementation inheritance:
Reuse of code by subclassing an existing class and
modifying its behavior.
Specification inheritance:
Subclasses are subtypes of their superclass. Objects of
the subclass can be substituted for any object of the
superclass type.
Delegation:
*
35
Implementation of an operation by sending a message to
another class.
CS 501 Spring 2005
Download