You are on page 1of 35

Slide 8B.

An Introduction to
Object-Oriented
Systems Analysis and Design
with UML and
the Unified Process
McGraw-Hill, 2004

Stephen R. Schach
srs@vuse.vanderbilt.edu
Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CHAPTER 8 Unit B

Slide 8B.2

THE OBJECT-ORIENTED DESIGN WORKFLOW

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Slide 8B.3

Continued from Unit 8A

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Responsibility-Driven Design: Osbert Oglesby

Slide 8B.4

Consider operation getAuctionPrice

Irrespective of the source of the message requesting


an auction price
Operation getAuctionPrice must be allocated to Auctioned
Painting Class

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Responsibility-Driven Design: Osbert Oglesby

Slide 8B.5

Allocation of getAuctionPrice

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Inheritance: Osbert Oglesby Case Study

Slide 8B.6

Consider operations
setTitle and
getTitle

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Inheritance: Osbert Oglesby Case Study (contd)


Slide 8B.7

Example: Osbert prints a list of all his paintings


Each object in the information system in turn is examined
A message is sent to operation getTitle to obtain the title of
the painting represented by that object

To which class must operations


setTitle

and

getTitle

be allocated?

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Inheritance: Osbert Oglesby Case Study (contd)


Slide 8B.8

First consider operation setTitle

In the traditional paradigm, there would have to be


three different versions of setTitle, one for each type of
painting
set_masterpiece_title
set_masterwork_title
set_other_painting_title

That is because the traditional paradigm does not


support inheritance
Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Inheritance: Osbert Oglesby Case Study (contd)


Slide 8B.9

In the object-oriented paradigm, consider the


Painting Class inheritance hierarchy

Painting Class has attribute title


This attribute is inherited by instances of its 5 subclasses

Gallery Painting Class


Auctioned Painting Class
Masterpiece Class
Masterwork Class
Other Painting Class

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Inheritance: Osbert Oglesby Case Study (contd)


Slide 8B.10

Thus, operation setTitle must be allocated to Painting


Class so that it can be inherited (and used) by
instances of all five subclasses

This applies to all operations, including

getTitle

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Inheritance: Osbert Oglesby Case Study (contd)


Slide 8B.11

Allocation of operations setTitle and getTitle

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards

Slide 8B.12

Since 1990, class-responsibility-collaboration (CRC)


cards have been utilized for object-oriented analysis
and design

For each class, fill in a card showing


The name of the class;
The functionality of that class (its responsibility); and
The other classes it invokes to achieve that functionality
(its collaboration)

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Slide 8B.13

CRC cards were originally introduced for performing


requirements elicitation and analysis

They are excellent for this purpose


Provided the team members are familiar with the domain

For professionals who have no domain expertise


CRC cards are an extremely effective way of testing
object-oriented analysis and design artifacts

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Example:

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Slide 8B.14

CRC Cards (contd)

Slide 8B.15

The data for the CRC card are obtained from the
realizations of all the use cases

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Consider the MSG collaboration diagram

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Slide 8B.16

CRC Cards (contd)

Slide 8B.17

The message
7: Request estimated grants and payments for week

is passed from : Estimate Funds for Week Class


to : Mortgage Class, followed by the message
8: Return estimated grants and payments for week

in the reverse direction

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Slide 8B.18

Mortgage Class therefore has a responsibility to


Compute estimated grants and payments for week

In order to do this, it must collaborate with Estimate


Funds for Week Class
This is shown in the first entry in the CRC card

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Consider the MSG collaboration diagram

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Slide 8B.19

CRC Cards (contd)

The message
3: Update tax and date

is passed from : Manage an Asset Class


to : Mortgage Class

Then, the message


4: Send successful completion message

is passed back

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Slide 8B.20

CRC Cards (contd)

Third iteration of the MSG initial class diagram

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Slide 8B.21

CRC Cards (contd)

Slide 8B.22

Mortgage Class has eight attributes (including


annual real-estate tax), that might need to be
changed by : Manage an Asset Class
All the attributes are initialized by : Manage an Asset
Class

A complete set of scenarios includes all 16 set and


get operations

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Slide 8B.23

Each of the 16 scenarios in turn requires an


interaction diagram of its realization
In addition, managing a mortgage includes adding a new
mortgage and deleting an existing mortgage

For brevity, combine all these responsibilities into


responsibility
Initialize, update, and delete mortgages

with collaborator
Manage an Asset Class

This is theCopyright
second
entry in the CRC card
2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Consider the MSG collaboration diagram

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Slide 8B.24

CRC Cards (contd)

The message
3: Update income and date

is passed from : Manage an Asset Class


to : Mortgage Class

The message
4: Send successful completion message

is then passed back

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Slide 8B.25

CRC Cards (contd)

Slide 8B.26

Attribute combinedWeeklyIncome is one of the eight


attributes of Mortgage Class that might need to be
changed by : Manage an Asset Class
This responsibility is already included in responsibility
Initialize, update, and delete mortgages

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Consider the MSG collaboration diagram

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Slide 8B.27

CRC Cards (contd)

The message
2: Transfer request [for list of mortgages]

is passed from : User Interface Class


to : Mortgage Class

Thus, Mortgage Class has the responsibility


Generate list of mortgages

with collaborator User Interface Class

This is the third entry in the CRC card


Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

Slide 8B.28

CRC Cards (contd)

Slide 8B.29

Also, the message


3: Print list of mortgages

is passed from : Mortgage Class to : Mortgages


Report Class

Mortgage Class thus also has the responsibility


Print list of mortgages

with collaborator Mortgages Report Class

This is the fourth entry in the CRC card


Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Slide 8B.30

As a check, consider the fourth iteration of the MSG


class diagram

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

In the class diagram there five classes with which


Mortgage Class has a relationship

Slide 8B.31

User Interface Class


Estimate Funds for Week Class
Mortgages Report Class
Asset Class
Manage an Asset Class

From the realizations it is clear that Mortgage Class


no responsibility with Asset Class

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Slide 8B.32

All four of the remaining classes are listed in the


COLLABORATION column of the CRC card

This does not necessarily mean that every


responsibility of every collaboration class has been
included
However, it is likely that all the collaboration classes have
been included

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Slide 8B.33

CRC cards have been extended

A CRC card nowadays often contains the attributes


and operations of a class, not its responsibility
The CRC card then contains the information of the
complete class diagram

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Slide 8B.34

The technology has changed


Instead of using cards, some organizations move Post-it
notes around on a white board and draw lines between
them to denote collaboration

Nowadays the whole process can be automated


Some CASE tools include modules for creating and
updating CRC cards on the screen

Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.

CRC Cards (contd)

Slide 8B.35

When used by a team, CRC cards can highlight


missing or incorrect attributes or operations

Having the members of the team act out the


responsibilities of each CRC card is an effective
means of verifying that the classes are correct

Example:
One team member acting out the responsibilities of a
class may cause another member to realize that a needed
responsibility has been omitted
Copyright 2004 by The McGraw-Hill Companies, Inc. All rights reserved.