slide 8b.1 copyright © 2004 by the mcgraw-hill companies, inc. all rights reserved. an introduction...

35
Slide 8B.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with UML and the Unified Process McGraw-Hill, 2004 Stephen R. Schach [email protected]

Post on 20-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Slide 8B.1

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

An Introduction toObject-Oriented

Systems Analysis and Design with UML and

the Unified Process

McGraw-Hill, 2004

Stephen R. Schach

[email protected]

Slide 8B.2

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

CHAPTER 8 — Unit B

THE OBJECT-ORIENTED DESIGN WORKFLOW

Slide 8B.3

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

Continued from Unit 8A

Slide 8B.4

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

Responsibility-Driven Design: Osbert Oglesby

Consider operation getAuctionPrice

Irrespective of the source of the message requesting an auction price– Operation getAuctionPrice must be allocated to Auctioned

Painting Class

Slide 8B.5

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

Responsibility-Driven Design: Osbert Oglesby

Allocation of getAuctionPrice

Slide 8B.6

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

Inheritance: Osbert Oglesby Case Study

Consider operations – setTitle and– getTitle

Slide 8B.7

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

Inheritance: Osbert Oglesby Case Study (contd)

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?

Slide 8B.8

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

Inheritance: Osbert Oglesby Case Study (contd)

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

Slide 8B.9

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

Inheritance: Osbert Oglesby Case Study (contd)

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

Slide 8B.10

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

Inheritance: Osbert Oglesby Case Study (contd)

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

Slide 8B.11

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

Inheritance: Osbert Oglesby Case Study (contd)

Allocation of operations setTitle and getTitle

Slide 8B.12

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

CRC Cards

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)

Slide 8B.13

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

CRC Cards (contd)

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

Slide 8B.14

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

CRC Cards (contd)

Example:

Slide 8B.15

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

CRC Cards (contd)

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

Slide 8B.16

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

CRC Cards (contd)

Consider the MSG collaboration diagram

Slide 8B.17

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

CRC Cards (contd)

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

Slide 8B.18

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

CRC Cards (contd)

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

Slide 8B.19

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

CRC Cards (contd)

Consider the MSG collaboration diagram

Slide 8B.20

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

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

Slide 8B.21

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

CRC Cards (contd)

Third iteration of the MSG initial class diagram

Slide 8B.22

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

CRC Cards (contd)

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

Slide 8B.23

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

CRC Cards (contd)

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 the second entry in the CRC card

Slide 8B.24

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

CRC Cards (contd)

Consider the MSG collaboration diagram

Slide 8B.25

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

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

Slide 8B.26

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

CRC Cards (contd)

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

Slide 8B.27

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

CRC Cards (contd)

Consider the MSG collaboration diagram

Slide 8B.28

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

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

Slide 8B.29

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

CRC Cards (contd)

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

Slide 8B.30

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

CRC Cards (contd)

As a check, consider the fourth iteration of the MSG class diagram

Slide 8B.31

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

Slide 8B.32

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

CRC Cards (contd)

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

Slide 8B.33

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

CRC Cards (contd)

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

Slide 8B.34

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

CRC Cards (contd)

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

Slide 8B.35

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

CRC Cards (contd)

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