+ All Categories
Home > Documents > Ch02lect1 UD (1)

Ch02lect1 UD (1)

Date post: 18-Feb-2018
Category:
Upload: hanumanthu-mothukuru
View: 218 times
Download: 0 times
Share this document with a friend
56
7/23/2019 Ch02lect1 UD (1) http://slidepdf.com/reader/full/ch02lect1-ud-1 1/56    U   s    i   n   g    U    M    L  ,    P   a    t    t   e   r   n   s  ,   a   n    d    J   a   v   a    b   e   c    t   -   r   e   n    t   e    d   o    t   w   a   r   e    E   n   g   n   e   e   r   n   g Chapter 2, Modeling with UML
Transcript
Page 1: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 1/56

   U  s   i  n  g   U   M   L ,   P  a   t   t  e  r  n  s ,  a  n   d

   J  a  v  a

   b  e  c   t  -  r

  e  n   t  e   d

  o   t  w  a  r  e   E  n  g  n

  e  e  r  n  g Chapter 2,

Modeling with UML

Page 2: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 2/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

Overview: modeling with UML

♦ What is modeling?♦ What is UML?

♦ Use case diagrams

♦ Class diagrams

♦ Sequence diagrams

♦ Activity diagrams

Page 3: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 3/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3

What is modeling?

♦ Modeling consists of building an abstraction of reality.♦ Abstractions are simplifications because:

They ignore irrelevant details and

They only represent the relevant details.

♦ What is relevant  or irrelevant  depends on the purpose of themodel.

Page 4: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 4/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

 Example: street map

Page 5: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 5/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5

Why model software?

Why model software?

♦ Software is getting increasingly more complex

Windows XP > 40 million lines of code

A single programmer cannot manage this amount of code in itsentirety.

♦ Code is not easily understandable by developers who did notwrite it

We need simpler representations for complex systems Modeling is a means for dealing with complexity

Page 6: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 6/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6

 Application and Solution Domain

♦ Application Domain (Requirements Analysis): The environment in which the system is operating

♦ Solution Domain (System Design, Object Design):

The available technologies to build the system

Page 7: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 7/56Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

Object-oriented Modeling

Application Domain(Phenomena)

Solution Domain(Phenomena)

System Model (Concepts) System Model (Concepts)

Aircraft TrafficController

FlightPlanAirport

MapDisplay

FlightPlanDatabase

Summary

Display

TrafficControl

TrafficControl

UMLPackage

(Analysis)   (Design)

Page 8: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 8/56Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8

What is UML?

♦ UML (Unified Modeling Language)

Nonproprietary standard for modeling software systems, OMG

Convergence of notations used in object-oriented methods

OMT (James Rumbaugh and collegues)

Booch (Grady Booch)

OOSE (Ivar Jacobson)

♦ Current Version: UML 2.2

Information at the OMG portal http://www.uml.org/ 

♦ Commercial tools: Rational (IBM),Together (Borland), Visual Architect

(business processes, BCD)

♦ Open Source tools: ArgoUML, StarUML, Umbrello

♦ Commercial and Opensource: PoseidonUML (Gentleware)

Page 9: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 9/56Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9

UML: First Pass

You can model 80% of most problems by using about 20%UML

♦ We teach you those 20%

♦ 80-20 rule: Pareto principle(http://en.wikipedia.org/wiki/Pareto_principle)

80% of your profits come from 20% of your customers

80% of your complaints come from 20% of your customers

80% of your profits come from 20% of the time you spend

80% of your sales come from 20% of your products

Page 10: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 10/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10

UML First Pass

♦ Use case diagrams

Describe the functional behavior of the system as seen by theuser

♦ Class diagrams

Describe the static structure of the system: Objects, attributes,

associations♦ Sequence diagrams

Describe the dynamic behavior between objects of the system

♦ State diagrams

Describe the dynamic behavior of an individual object

Page 11: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 11/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

UML Core Conventions

All UML Diagrams denote graphs of nodes and edges Nodes are entities and drawn as rectangles or ovals

Rectangles denote classes or instances

Ovals denote functions

• Names of Classes are not underlined• SimpleWatch

• Firefighter 

• Names of Instances are underlined

• myWatch:SimpleWatch• Joe:Firefighter

• An edge between two nodes denotes arelationship between the corresponding entities

Page 12: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 12/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

UML first pass: Use case diagrams

Use case diagrams represent the functionality of the systemfrom user’s point of view

Actor

Use Case

System boundary

Classifier

Page 13: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 13/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13

UML first pass: Class diagrams

ClassAssociation

Multiplicity

Class diagrams represent the structure of the system

21 1

1

1

1

1

2

SimpleWatch

Display Battery TimePushButton

Page 14: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 14/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14

UML first pass: Class diagrams

1

2

push()

release()

1

1

blinkIdx

blinkSeconds()

blinkMinutes()

blinkHours()

stopBlinking()

referesh()

LCDDisplay   Battery

Load

1

2

1

Time

Now

1

Watch

Operations

state

PushButton

Attribute

Class diagrams represent the structure of the system

ClassAssociation

Multiplicity

Page 15: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 15/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

Message

UML first pass: Sequence diagram

:Time:Watch:WatchUser

Object

Activation

Sequence diagrams represent the behavior of a system

as messages (“interactions”) between different objects

Actor

pressButton1()

Lifeline

blinkHours()

pressButton2()incrementMinutes()

:LCDDisplay

pressButton1and2()

commitNewTime()

stopBlinking()

refresh()

pressButton1()blinkMinutes()

Page 16: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 16/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

UML first pass: Statechart diagrams

State

Initial state

Final state

Transition

Event

Represent behavior ofa single object with interestingdynamic behavior.

button1&2Pressed

button1Pressed

button2Pressed

button2Pressed

button2Pressed

button1Pressed

button1&2Pressed IncrementMinutes

IncrementHoursBlinkHours

BlinkSeconds

BlinkMinutes

IncrementSeconds

StopBlinking

Page 17: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 17/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17

Other UML Notations

UML provides many other notations, for example♦ Deployment diagrams for modeling configurations

Useful for testing and for release management

♦ We introduce these and other notations as we go along in the

lectures OCL: A language for constraining UML models

Page 18: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 18/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18

What should be done first? Coding or Modeling?

It all depends….♦ Forward Engineering

Creation of code from a model

Start with modeling

Greenfield projects

♦ Reverse Engineering

Creation of a model from existing code

Interface or reengineering projects

♦ Roundtrip Engineering

Move constantly between forward and reverse engineering

Reengineering projects

Useful when requirements, technology and schedule are changingfrequently.

Page 19: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 19/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19

UML Second Pass

♦ Use case diagrams

Describe the functional behavior of the system as seen by the user

♦ Class diagrams

Describe the static structure of the system: Objects, attributes,associations

♦ Sequence diagrams Describe the dynamic behavior between objects of the system

♦ State diagrams

Describe the dynamic behavior of an individual object

♦ Activity diagrams Describe the dynamic behavior of a system, in particular the

workflow.

Page 20: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 20/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20

UML Use Case Diagrams

An Actor represents a role, that is, a typeof user of the system

Passenger

PurchaseTicket

Used during requirements elicitation

and analysis to represent externalbehavior (“visible from the outside ofthe system!

Use case model "

#he set of all use cases thatcompletely describe thefunctionality of the system$

A use case represents a class offunctionality provided by the system

Page 21: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 21/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21

 Actors

♦ An actor is a model for an external entity

which interacts (communicates) with thesystem:

User

External system (Another system)

Physical environment (e.g. Weather)

♦ An actor has a unique name and an optionaldescription

♦ Examples:

Passenger: A person in the train GPS satellite: An external system that provides

the system with GPS coordinates.

Passenger

Name

OptionalDescription

Page 22: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 22/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22

Use Case

• A use case represents a class offunctionality provided by the system

• Use cases can be described textually, with afocus on the event flow between actor andsystem

• The textual use case description consists of

6 parts:1. Unique name

2. Participating actors

3. Entry conditions

4. Exit conditions

5. Flow of events

6. Special requirements.

PurchaseTicket

Page 23: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 23/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23

Textual Use Case Description Example

1. Name: Purchase ticket

2. Participating actor: Passenger

3. Entry condition: ♦ Passenger stands in front of

ticket distributor

♦ Passenger has sufficientmoney to purchase ticket

4. Exit condition:

♦ Passenger has ticket

5. Flow of events:

1. Passenger selects thenumber of zones to be traveled

2. Ticket Distributor displaysthe amount due

3. Passenger inserts money, atleast the amount due

4. Ticket Distributor returnschange

5. Ticket Distributor issues ticket

6. Special requirements: None.

Passenger  PurchaseTicket

Page 24: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 24/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24

Uses Cases can be related 

Extends Relationship To represent seldom invoked use cases or exceptional functionality

♦ Includes Relationship

To represent functional behavior common to more than one usecase.

Page 25: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 25/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25

The <<extends>>  Relationship

♦ <<extends>> relationships modelexceptional or seldom invoked cases

♦ The exceptional event flows arefactored out of the main event flow forclarity

♦ The direction of an <<extends>> relationship is to the extended use case

♦ Use cases representing exceptionalflows can extend more than one usecase.

Passenger

PurchaseTicket

TimeOut

<<extends>>

NoChange

<<extends>>OutOfOrder

<<extends>>

Cancel

<<extends>>

Page 26: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 26/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26

The <<includes>>   Relationship

♦ <<includes>> relationship

represents common functionalityneeded in more than one use case

♦ <<includes>> behavior isfactored out for reuse, not because itis an exception

The direction of a <<includes>> relationship is to the using use case(unlike the direction of the<<extends>> relationship).

Passenger

PurchaseSingleTicket

PurchaseMultiCard

<<includes>>

CollectMoney

<<includes>>

NoChange

<<extends>>

Cancel

<<extends>>

Cancel

<<extends>>

Page 27: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 27/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27

Class Diagrams

Class diagrams represent the structure of the system♦ Used

during requirements analysis to model application domainconcepts

during system design to model subsystems

during object design to specify the detailed behavior andattributes of classes.

Table zone2price

Enumeration getZones()

Price getPrice(Zone)

TarifSchedule

* *

Trip

zone:Zone

Price: Price

Page 28: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 28/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28

Classes

♦ A class represents a concept

♦ A class encapsulates state (attributes) and behavior (operations)

Table zone2price

Enumeration getZones()

Price getPrice(Zone)

TarifSchedule

zone2price

getZones()

getPrice()

TarifSchedule

Name

Attributes

Operations

Signature

TarifSchedule

#he class name is the only mandatory information

%ach attribute has a type%ach operation has a signature

Type

Page 29: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 29/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30

 Actor vs Class vs Object

♦ Actor 

An entity outside the system to be modeled, interacting with thesystem (“Passenger”)

♦ Class

An abstraction modeling an entity in the application or solutiondomain

The class is part of the system model (“User”, “Ticket distributor”,“Server”)

♦ Object A specific instance of a class (“Joe, the passenger who is purchasing

a ticket from the ticket distributor”).

Page 30: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 30/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31

 Associations

Associations denote relationships between classes

Price

ZoneEnumeration getZones()

Price getPrice(Zone)

TarifSchedule TripLeg

* *

#he multiplicity of an association end denotes how manyob&ects the instance of a class can legitimately reference$

Page 31: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 31/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32

1-to-1 and 1-to-many Associations

1-to-1 association

1-to-many association

Polygon

draw()

Point

x: Integer

y: Integer

*

Country

name:String

City

name:String

11

Page 32: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 32/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33

 Many-to-Many Associations

StockExchange

Company

tickerSymbol**

Page 33: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 33/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34

 From Problem Statement To Object Model 

 

Class Diagram:

StockExchange Company

tickerSymbol Lists 

**

Problem Statement: A stock exchange lists many companies. Each company is uniquely identified by a ticker symbol

Page 34: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 34/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35

 From Problem Statement to Code

Problem Statement : A stock exchange lists many companies.

Each company is identified by a ticker symbol

Class Diagram:

 private Vector m_Company = new Vector();

 public int m_tickerSymbol; private Vector m_StockExchange = new Vector();

public class StockExchange{

};public class Company{

};

Java Code

StockExchange Company

tickerSymbol Lists

**

Associationsare mapped toAttributes!

Page 35: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 35/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36

 Aggregation

♦ An aggregation is a special case of association denoting a “consists-of”hierarchy

♦ The aggregate is the parent class,the components are the children classes

Exhaust system

Muffler

diameter

Tailpipe

diameter

1 0..2

TicketMachine

ZoneButton

3

A solid diamond denotes composition" A strong form ofaggregation where the life time of the componentinstances  is controlled by the aggregate$ #hat is' the parts

dont exist on their won (“the whole controls)destroys theparts!

Page 36: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 36/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 39

 Inheritance

♦  Inheritance is another special case of an association denoting a“kind-of” hierarchy

♦ Inheritance simplifies the analysis model by introducing ataxonomy

♦ The children classes inherit the attributes and operations of theparent class.

Button

ZoneButtonCancelButton

Page 37: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 37/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40

 Packages

♦ Packages help you to organize UML models to increase their

readability♦ We can use the UML package mechanism to organize classes into

subsystems

♦ Any complex system can be decomposed into subsystems, whereeach subsystem is modeled as a package.

Account

CustomerBank

Page 38: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 38/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 41

Object Modeling in Practice

Class Identification: Name of Class, Attributes and Methods

Is Foo the right name?

Foo

Amount

CustomerId

Deposit()

Withdraw()GetBalance()

Page 39: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 39/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 42

Object Modeling in Practice: Brainstorming

Foo

Amount

CustomerId

Deposit()

Withdraw()GetBalance()

Account

Amount

CustomerId

Deposit()Withdraw()GetBalance()Is Foo the right name?

“Dada”

Amount

CustomerId

Deposit()

Withdraw()GetBalance()

Page 40: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 40/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 43

Object Modeling in Practice: More classes

Account

Amount

Deposit()Withdraw()GetBalance()

Customer

Name

CustomerId

CustomerIdAccountIdBank

Name

1) Find New Classes

2) Review Names, Attributes and Methods

Page 41: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 41/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 44

Object Modeling in Practice: Associations

Account

Amount

Deposit()Withdraw()GetBalance()

Customer

Name

CustomerId

CustomerIdAccountIdAccountIdBank

Name

1) Find New Classes

2) Review Names, Attributes and Methods

3) Find Associations between Classes

owns

4) Label the generic assocations

6) Review associations

*2

*?

has

5) Determine the multiplicity of the assocations

Page 42: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 42/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 45

 Practice Object Modeling: Find Taxonomies

SavingsAccount

Withdraw()

CheckingAccount

Withdraw()

MortgageAccount

Withdraw()

Account

Amount

Deposit()Withdraw()GetBalance()

CustomerIdAccountIdAccountId

Customer

Name

CustomerId()

Has*Bank

Name*

Page 43: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 43/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 46

 Practice Object Modeling: Simplify, Organize

SavingsAccount

Withdraw()

CheckingAccount

Withdraw()

MortgageAccount

Withdraw()

Account

Amount

Deposit()Withdraw()GetBalance()

CustomerIdAccountIdAccountId

Show Taxonomies

separately

Page 44: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 44/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 47

 Practice Object Modeling: Simplify, Organize

Customer

Name

CustomerId()

Account

Amount

Deposit()Withdraw()GetBalance()

CustomerIdAccountIdAccountId

Bank

Name   Has**

Use the 7+-2 heuristics

or better 5+-2!

Page 45: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 45/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 48

Sequence Diagrams

♦ Used during analysis To refine use case descriptions

to find additional objects(“participating objects”)

♦ Used during system design

to refine subsystem interfaces

♦  Instances are represented byrectangles. Actors by sticky figures

♦  Lifelines are represented by dashedlines

♦  Messages are represented by arrows 

♦  Activations are represented by narrowrectangles.

selectZone()

pickupChange()

pickUpTicket()

insertCoins()

TicketMachinePassenger

Focus oncontrol flow

Messages ->Operations on

 participating Object

zone2price

selectZone()

insertCoins()

pickupChange()

pickUpTicket()

TicketMachine

Page 46: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 46/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 49

Sequence Diagrams can also model the Flow of Data

♦ The source of an arrow indicates the activation which sent the message

♦ Horizontal dashed arrows indicate data flow, for example return resultsfrom a message

Passenger

selectZone()

ZoneButton TarifSchedule Display

lookupPrice(selection)

displayPrice(price)

price

Dataflow

*continued on next slide$$$

Page 47: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 47/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 50

Sequence Diagrams: Iteration & Condition

♦ Iteration is denoted by a * preceding the message name

♦ Condition is denoted by boolean expression in [ ] before the messagename

Passenger  ChangeProcessor

insertChange(coin)

CoinIdentifier Display CoinDrop

displayPrice(owedAmount)

lookupCoin(coin)

price

[owedAmount<0] returnChange(-owedAmount)

Iteration

Condition

*continued on next slide$$$

…continued from previous slide...

*

Page 48: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 48/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 51

Creation and destruction

♦ Creation is denoted by a message arrow pointing to the object

♦ Destruction is denoted by an X mark at the end of the destruction activation

In garbage collection environments, destruction can be used to denote the endof the useful life of an object.

Passenger  ChangeProcessor

…continued from previous slide...

Ticket

createTicket(selection)

free()

Creation of Ticket

Destruction of Ticket

print()

Page 49: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 49/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 52

Sequence Diagram Properties

UML sequence diagram represent behavior in terms ofinteractions

♦ Useful to identify or find missing objects

♦ Time consuming to build, but worth the investment

Complement the class diagrams (which represent structure).

Page 50: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 50/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 53

 Activity Diagrams

♦ An activity diagram is a special case of a state chart diagram

♦ The states are activities (“functions”)

♦ An activity diagram is useful to depict the workflow in asystem

Handle

Incident

Document

Incident

Archive

Incident

Page 51: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 51/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 54

 Activity Diagrams allow to model Decisions

OpenIncident

Notify

Police Chief

NotifyFire Chief

AllocateResources

[fire & highPriority]

[not fire & highPriority]

[lowPriority]

Decision

Page 52: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 52/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 55

 Activity Diagrams can model Concurrency

Synchronization of multiple activities♦ Splitting the flow of control into multiple threads

OpenIncident

Allocate

Resources

CoordinateResources

DocumentIncident

ArchiveIncident

SynchronizationSplitting

Page 53: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 53/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 56

 Activity Diagrams: Grouping of Activities

Activities may be grouped into swimlanes to denote the objector subsystem that implements the activities.

OpenIncident

AllocateResources

CoordinateResources

DocumentIncident

ArchiveIncident

Dispatcher

FieldOfficer

Page 54: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 54/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 57

 Activity Diagram vs. Statechart Diagram

HandleIncident

DocumentIncident

ArchiveIncident

Active Inactive   Closed   Archived

Incident-

Handled

Incident-

DocumentedIncident-

Archived

Statechart Diagram for Incident

Focus on the set of attributes of a single abstraction (object, system)

Activity Diagram for Incident

(Focus on dataflow in a system) 

TriggerlesstransitionCompletion of activity

causes state transition

Event causesstate transition

Page 55: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 55/56

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 58

UML Summary

♦ UML provides a wide variety of notations for representingmany aspects of software development

Powerful, but complex

♦ UML is a programming language

Can be misused to generate unreadable models

Can be misunderstood when using too many exotic features

♦ We concentrated on a few notations:

Functional model: Use case diagram

Object model: class diagram

Dynamic model: sequence diagrams, statechart and activitydiagrams

Page 56: Ch02lect1 UD (1)

7/23/2019 Ch02lect1 UD (1)

http://slidepdf.com/reader/full/ch02lect1-ud-1 56/56

 Additional References

♦ Martin Fowler

UML Distilled: A Brief Guide to the Standard Object ModelingLanguage, 3rd ed., Addison-Wesley, 2003

♦ Grady Booch,James Rumbaugh,Ivar Jacobson The Unified Modeling Language User Guide, Addison Wesley, 2nd 

edition, 2005♦ Commercial UML tools

Rational Rose XDE for Java http://www-306.ibm.com/software/awdtools/developer/java/ 

Together (Eclipse, MS Visual Studio, JBuilder)

http://www.borland.com/us/products/together/index.html

♦ Open Source UML tools

http://java-source.net/open-source/uml-modeling

ArgoUML,UMLet,Violet, …


Recommended