43
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

  • View
    216

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

1 CS 501 Spring 2003

CS 501: Software Engineering

Lecture 18

Object Oriented Design II

Page 2: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

2 CS 501 Spring 2003

Administration

New syllabus

Quiz 4 on Thursday, April 3 (no lecture)

Lecture 23 on Wednesday April 16 (evening)

Second presentation and report next week

Sign up. Assignment will be posted shortly

Quiz 3

Collect after class

No office hours next week

Page 3: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

3 CS 501 Spring 2003

Actor and Use Case Diagram

• An actor is a user of a system in a particular role.

An actor can be human or an external system.

• A use case is a a task that an actor needs to perform with the help of the system.

Borrow book

BookBorrower

Page 4: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

4 CS 501 Spring 2003

Use Cases and Actors

• A scenario is an instance of a use case

• Actor is role, not an individual(e.g., librarian can have many roles)

• Actor must be a "beneficiary" of the use case(e.g., not librarian who processes book when borrowed)

In UML, the system boundary is the set of use cases.

Page 5: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

5 CS 501 Spring 2003

Use Cases for Borrowing Books

Borrow copy of book

BookBorrowerReturn copy

of book

Reserve book

Extend loan

Page 6: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

6 CS 501 Spring 2003

Relationships Between Use Cases: <<uses>>

BookBorrower

Check for reservation

Extend loan

<<uses>>

<<uses>>

Borrow copy of book

Page 7: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

7 CS 501 Spring 2003

Relationships Between Use Cases: <<extends>>

Borrow copy of bookBookBorrower

Refuse loan

<<extends>>

Page 8: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

8 CS 501 Spring 2003

Use Cases in the Development Cycle

• Use cases are a tool in requirements analysis

• Intuitive -- easy to discuss with clients

• Use cases are often hard to translate into class models

• Scenarios are useful to validate design

Page 9: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

9 CS 501 Spring 2003

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

Page 10: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

10 CS 501 Spring 2003

Notation: States

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.

Page 11: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

11 CS 501 Spring 2003

State Diagram

State diagram for class Book

not borrowable

returned()

returned()

borrowable

borrowed()[not last copy]

borrowed()[last copy]

guard expression

Page 12: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

12 CS 501 Spring 2003

A Quiz Question

A machine tool is controlled by a switch and two buttons:

power Turn the power on/off (switch)

start Start the machine (button)

stop Stop the machine (button)

There is also a blade guard. To change the blade, the power must be off and the blade guard removed.

To run the machine, press the start button. The power must be turned on and the blade guard must be in place.

The machine runs until the stop button is pressed. While the machine is running, the blade guard is locked in place.

Page 13: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

13 CS 501 Spring 2003

Power offGuard off

run

A Quiz Question: States

Power offGuard on

Power onGuard on

Power onGuard off

readysafe

change danger

Page 14: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

14 CS 501 Spring 2003

A Quiz Question: Transitions

Transitions

power on

power off

start

stop

guard on

guard off

Page 15: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

15 CS 501 Spring 2003

A Quiz Question: State Transition Table

poweron

poweroff

start stopguard

onguard

off

safe

change

danger

ready

run

run dangersafe

ready change

danger

change

safe ready

safe

ready

not specified

Page 16: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

16 CS 501 Spring 2003

run

A Quiz Question: State Transition Diagram

readysafe

change danger

start

stop

power off

guard off

guard off

guard on

guard on

power off

power on

power on

Page 17: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

17 CS 501 Spring 2003

Notation for Classes and Objects

Classes Objects

AnyClass

attribute1attribute2

operation1()operation2()

AnyClass

or

anObject:AnyClass

:AnyClass

anObject

The names of objects are underlined.

or

or

Page 18: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

18 CS 501 Spring 2003

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.

Page 19: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

19 CS 501 Spring 2003

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.

Page 20: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

20 CS 501 Spring 2003

Actions on Objects

call

return

send

create

destroy

returnCopy(c)

okToBorrow() local

status

notifyReturn(b) asynchronous signal

<<create>>

<<destroy>>stereotypes

Page 21: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

21 CS 501 Spring 2003

Bouncing Ball Diagrams

Example: execution of http://www.cs.cornell.edu/

Client Servers

domain name service

TCP connection

HTTP get

Page 22: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

22 CS 501 Spring 2003

Sequence Diagram: Borrow Copy of a Book

BookBorrower

libMem: LibraryMember

theCopy:Copy

theBook:Book

borrow(theCopy)okToBorrow

borrowborrow

Page 23: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

23 CS 501 Spring 2003

Sequence Diagram: Change in Cornell Program

Cornellian

:MEngStudent

1 : getName()

sequence numbers added to messages

:PhDStudent

1.1 : name

2: new PhDStudent(name)

3: <<destroy>>

Page 24: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

24 CS 501 Spring 2003

Sequence Diagram: Painting Mechanism

:Thread :Toolkit :ComponentPeer target:HelloWorld

runrun callbackLoop

handleExpose

paint

Page 25: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

25 CS 501 Spring 2003

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.

Page 26: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

26 CS 501 Spring 2003

Activity Diagram: Process Modeling

Release work order

Assign tasks

Reschedule[materials not ready]

[materials ready]guard expression

branch

Page 27: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

27 CS 501 Spring 2003

Activity Diagram: Parallel Activities

Decompress

Stream audioStream video

fork

join

start state

stop state

Page 28: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

28 CS 501 Spring 2003

Implementation Modeling

Subsystem

A grouping of elements that specifies what a part of a system should do.

Component (UML definition)

"A distributable piece of implementation of a system, including software code (source, binary, or executable) but also including business documents, etc., in a human system."

A component can be thought of as an implementation of a subsystem.

Page 29: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

29 CS 501 Spring 2003

Notation: Collaboration

Chain of responsibility

A collaboration defines an interaction, i.e., a society of roles and other elements that work together to provide some cooperative behavior.

Page 30: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

30 CS 501 Spring 2003

Notation: Component & Node

orderform.java

A component is a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces.

Server

A node is a physical element that exists at run time and represents a computational resource.

Page 31: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

31 CS 501 Spring 2003

Component Diagram

HelloWorld.class

hello.java

hello.hml

hello.jpg

executable component

Page 32: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

32 CS 501 Spring 2003

Components and Classes

Classes represent logical abstractions. Components represent physical things.

Components may live on nodes.

Classes have attributes and operations directly. Components have operations that are reachable only through interfaces.

Page 33: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

33 CS 501 Spring 2003

Components and Classes

agent.dll

AgentAction

Policy

PatternSearch

Page 34: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

34 CS 501 Spring 2003

Components and Classes

agent.dll

RealizesAgentActionPatternSearchPolicy

extended component

Page 35: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

35 CS 501 Spring 2003

Interfaces

simulation.exe render.java

IRender

dependency

interface

realization

Page 36: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

36 CS 501 Spring 2003

Application Programming Interface (API)

API is an interface that is realized by one or more components.

simulation.exe

IModels ILighting

IRender

Page 37: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

37 CS 501 Spring 2003

Components and Replaceability

Components allow system to be assembled from binary replaceable elements.

• A component is physical -- bits not concepts

• A component can be replaced by any other component(s) that conforms to the interfaces.

• A component is part of a system.

• A component provides the realization of a set of interfaces.

Page 38: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

38 CS 501 Spring 2003

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.

Page 39: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

39 CS 501 Spring 2003

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.

Page 40: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

40 CS 501 Spring 2003

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

Page 41: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

41 CS 501 Spring 2003

Exam Question: Observations about the Candidate Classes

WeatherMap is a DigitizedMapis 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?

Page 42: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

42 CS 501 Spring 2003

Exam Question: Attributes and Operations

WeatherStation

locationmetereologicalData

collectData()getSummary()

WeatherMap

locationdate-timegeographicDataweather

gatherData()printMap()DigitizedMap

locationgeographicData

printMap()

Or should MetereologicalData be a separate object?

Page 43: 1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II

43 CS 501 Spring 2003

Exam Question: Class Diagram

DigitizedMap

1...*1

WeatherStation

locationmetereologicalData

collectData()getSummary()

WeatherMap

locationdate-timegeographicDataweather

gatherData()printMap()

summary