Home > Store

Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example

Register your product to gain access to bonus material or receive a coupon.

Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example

Book

  • Sorry, this book is no longer in print.
Not for Sale

Description

  • Copyright 2001
  • Dimensions: 8" x 10"
  • Pages: 176
  • Edition: 1st
  • Book
  • ISBN-10: 0-201-73039-1
  • ISBN-13: 978-0-201-73039-5

In this first-ever use case workbook, proven authors Doug Rosenberg and Kendall Scott help developers and analysts put their use case knowledge to the test, in real-world projects. A perfect companion to the authors' breakthrough Use Case Driven Modeling with UML -- or any other introductory guide to use cases -- this book offers systematic hands-on practice in implementing use cases, based on the authors' unparalleled experience in teaching working developers. This workbook dissects the design of an Internet bookstore, step-by-step, in exceptional detail -- showing common mistakes in building use cases, and how the models look once they've been corrected. The authors provide hands-on practice with every aspect of use case development with UML, including requirements review, domain modeling, use case modeling, preliminary design review, robustness analysis, sequence diagrams, critical design review, and more. The book also contains five valuable "Top 10" lists, including lists of errors in robustness analysis and sequence diagramming. For all systems analysts, software architects, software engineers, and developers interested in working with UML or strengthening their current UML skills.

Sample Content

Downloadable Sample Chapter

Click below for Sample Chapter related to this title:
rosenbergch16.pdf

Table of Contents



Preface.

Practice.

The Premise.

Acknowledgments.



1: Introduction.

A Walk (Backwards) through the ICONIX Process.

Key Features of the ICONIX Process.

Process Fundamentals.

The Process in a Nutshell.

Requirements List for The Internet Bookstore.



2: Domain Modeling.

The Key Elements of Domain Modeling.

The Top 10 Domain Modeling Errors.

Exercises.

Bringing the Pieces Together.



3: Use Case Modeling.

The Key Elements of Use Case Modeling.

The Top 10 Use Case Modeling Errors.

Exercises.

Bringing the Pieces Together.



4: Requirements Review.

The Key Elements of Requirements Review.

The Top 10 Requirements Review Errors.



5: Robustness Analysis.

The Key Elements of Robustness Analysis.

The Top 10 Robustness Analysis Errors.

Exercises.

Bringing the Pieces Together.



6: Preliminary Design Review.

The Key Elements of Preliminary Design Review.

The Top 10 PDR Errors.



7: Sequence Diagrams.

The Key Elements of Sequence Diagrams.

Getting Started with Sequence Diagrams.

The Top 10 Sequence Diagramming Errors.

Exercises.

Bringing the Pieces Together.



8: Critical Design Review.

The Key Elements of Critical Design Review.

The Top 10 CDR Errors.



Appendix.


Bibliography.


Index.

Preface

Theory, in Practice

In our first book, Use Case Driven Object Modeling with UML, we suggested that the difference between theory and practice was that in theory, there is no difference between theory and practice, but in practice, there is. In that book, we attempted to reduce OOAD modeling theory to a practical subset that was easy to learn and pretty much universally applicable, based on our experience in teaching this material to people working on hundreds of projects since about 1993.

Now, two years after hitting the shelves, that book is in its fifth printing. But even though our work has been favorably received, it seems like the job isn't all the way done yet. "We need to see more use case and UML modeling examples" is a phrase we've been hearing fairly often over the last couple of years. And, as we've used the first book as the backbone of training workshops where we apply the theory to real client projects, it has become clear that the process of reviewing the models is critically important and not well understood by many folks.

So, although we present a fairly extensive example in our first book, we convinced Addison-Wesley to let us produce this companion workbook, in which we dissect the design of an Internet bookstore, step-by-step, in great detail. This involves showing many common mistakes, and then showing the relevant pieces of the model with their mistakes corrected. We chose an Internet bookstore because it's relevant to many of today's projects in the Web-driven world, and because we've been teaching workshops using this example and, as a result, had a rich source of classroom UML models with real student mistakes in them.

We collected some of our favorite mistakes--that is, the kind of mistakes we saw getting repeated over and over again--and built this workbook around those models. And then we added three new chapters about reviews--one on requirements reviews, one on preliminary design reviews, and one on critical design reviews.

What really makes this book unique, though, is the fact that you, the reader, get to correct the mistakes.

The Premise

After we give you an overview of the ICONIX process in Chapter 1, four of the seven subsequent chapters address the four key phases of the process in some detail. The format of each of these chapters is as follows:

  • The first part describes the essence of domain modeling (Chapter 2), use case modeling (Chapter 3), robustness analysis (Chapter 5), or sequence diagrams (Chapter 7), and places the material in the context of the "big picture" of the process. In each of these chapters, you'll work through pieces of the Internet bookstore example, and then you'll see an overview diagram at the end of the chapter that brings the relevant pieces together. We present fragments of ten different use cases in Chapter 3; we carry five of these forward through preliminary design and detailed design in Chapters 5 and 7, respectively. (The fragments of class diagrams that appear in Chapter 2 also trace into the use case text and to full class diagrams that appear in Chapters 5 and 7.)
  • The next section describes the key elements of the given phase. Each of these sections is basically a condensed version of an associated chapter in Use Case Driven Object Modeling with UML, with some new information added within each chapter.
  • The following section describes the top 10 mistakes that our students tend to make during workshops in which we teach the process. We've added five new Top 10 lists in this book: Top 10 robustness analysis errors, Top 10 sequence diagramming errors, and Top 10 mistakes to avoid for each of the three "review" chapters.
  • The final section presents a set of five exercises for you to work, to test your knowledge of the material in the chapter.

The following aspects are common to each set of exercises:

  • There's a red box, with a white label, at the top of each right-hand page. For the domain modeling and use case exercises, this label takes the form Exercise X; for the robustness analysis and sequence diagram exercises, the label takes the form of a use case name. (We'll explain the significance of this soon.)
  • There are three or four mistakes on each right-hand page. Each mistake has a "Top 10" logo next to it that indicates which rule is being violated.
  • The left-hand page on the flip side of each "red" page has a black box, with a white label, at the top. Corrections to the errors presented on the associated "bad" page are explicitly indicated; explanations of the mistakes appear at the bottom of the page.

Your task is to write corrections on each "bad" exercise page before you flip it over to see the "good" exercise diagram.

To summarize: Chapter 2 presents classes used by the ten sample use cases. Chapter 3 presents fragments from all of those use cases. Chapters 5 and 7 present diagrams connected with five of the use cases. The idea is that you'll move from a partial understanding of the use cases through to sequence diagrams that present full text, and some of the associated elements of the detailed design, for each use case.

What about the other three chapters, you ask?

  • Chapter 4 describes how to perform requirements review, which involves trying to ensure that the use cases and the domain model work together to address the customers' functional requirements.
  • Chapter 6 describes how to perform preliminary design review (PDR), which involves trying to ensure that robustness diagrams exist for all use cases (and are consistent with those use cases), the domain model has a fairly rich set of attributes that correspond well with whatever prototypes are in place (and all of the objects needed by the use cases are represented in that model), and the development team is ready to move to detailed design.
  • Chapter 8 describes how to perform critical design review (CDR), which involves trying to ensure that the "how" of detailed design, as shown on sequence diagrams, matches up well with the "what" that the use cases specify, and that the detailed design is of sufficient depth to facilitate a relatively small and seamless leap into code.

All three of these review chapters offer overviews, details, and top 10 lists, but we don't make you work any more exercises. What these reviews have in common is the goal of ensuring consistency of the various parts of the model, as expressed on the "good" exercise diagrams.

The Appendix contains a report that summarizes the model for the bookstore; you can download the full model from http://www.iconixsw.com/WorkbookExample.html. The Appendix contains all of the diagrams that appear in the body of the book, but the full model includes design details for the other five use cases. This allows you to go through these use cases as further exercises, and then compare your results to ours; we highly recommend that you do this.

Cool premise, isn't it? We're not aware of another book like this one, and we're hoping you'll find it useful in your efforts to apply use case driven object modeling with UML.

Acknowledgments

Doug would like to thank his intrepid crew at ICONIX, especially Andrea Lee for her work on the script for the Inside the ICONIX Process CD, which we borrowed heavily from for Chapter 1, along with Chris Starczak, Jeff Kantor, and Erin Arnold. Doug would also like to thank Kendall for (finally) agreeing that yes, this would make the book better, and yes, we do have time to add that, and yes, the fact that R comes before S does mean that Mr. Rosenberg has more votes than Mr. Scott. Co-author's note to self: Get name legally changed to Scott Kendall before the next book comes out. That'll teach him.

Doug and Kendall would like to thank Paul Becker and all the fine folks at Addison-Wesley (including Ross Venables, who's no longer there but who got this project off the ground) who somehow managed to compress the production schedule to compensate for the delays in the writing schedule (which are all Kendall's fault). We'd also like to thank the reviewers of the manuscript, especially Mark Woodbury, whose incisive comments about "defragmenting" the example gave us the push we needed to get it the point where we think it's really, really cool as opposed to just really cool. And, we'd like to thank Greg Wilson, who reviewed our first book for Dr. Dobbs' Journal, liked it, and suggested that we write a companion workbook. Specifically, he said: "The second criticism of this book is one that I thought I'd never make: It is simply too short. Having finally found a useful, readable, and practical description of a design-centered development methodology, I really wanted a dozen or more examples of each point to work through. If the authors were to produce a companion workbook, I can promise them that they'd have at least one buyer."

Finally, Kendall would like to thank Doug for raising the art of snarkiness to a level that makes Kendall look like a paragon of good cheer in comparison to Doug.

Doug RosenbergKendall Scott

Santa Monica, CaliforniaHarrison, Tennessee

May 2001May 2001

dougr@iconixsw.comkendall@usecasedriven.com

http://www.iconixsw.comhttp://www.usecasedriven.com




0201730391P06042001

Index

1040 long form 39
1040EZ short form 39
80-20 rule 1
A
active voice 38, 39, 55, 58
aggregation 17, 20
analysis paralysis 10, 19, 60
applicability 91, 109, 112
association 17, 19
attributes
on class diagrams 17
and nouns 19
and PDR 79
and possessive phrases 19
and robustness analysis 63, 82, 83
and use case text 38
B
back of the envelope 59
Beck, Kent 56
behavior allocation
and CDR 109, 113
initial definition 3
and PDR 83
and process 11
and robustness analysis 64
and sequence diagrams 85, 90
blue screen of death 55
Booch stuff 21, 110
Booch, Grady 1, 5, 20, 109
booster-stage engine 65
boundary object
defined 59
initial definition 38
notation 60
on robustness diagrams 7
on sequence diagrams 85, 88
sources 83
Browse List of Books use case
text fragments 49, 50
C
call and response 55
Cancel Order use case
text fragments 43, 44
CDR
see Critical Design Review (CDR)
cement collar 11
Check Out use case
text fragments 47, 48
class diagram
analysis-level 8
design-level 3
domain model 7
classes
discovering 19, 61, 86
and relational database tables 21
sources 19
cohesion 91, 107, 109
completeness 20, 110
completeness and correctness check 61, 65
complexity 109, 112
composition 20
connecting tissue 58
control in the screen 81, 89
control object
defined 59
discussion 62
notation 60
and sequence diagrams 85, 89
controller
and sequence diagrams 85, 89
defined 59
desirable number 65
discussion 62
notation 60
coupling 91, 107, 109
critical design review (CDR)
defined vii
as milestone 15, 108
critical design review, continued
overview 107
participants 107
top 10 errors 111
customers
and CDR 107, 111
managing expectations 57
and PDR 79, 82, 83
and requirements review 53
D
Delivery milestone 15
Derr, Kurt 20
design patterns
and CDR 107, 112
and domain modeling 21
Factory Method pattern 111
Gang of Four 89, 111
Iterator pattern 111
and PDR 83
and robustness diagrams 81
design-level class diagram
defined 3
vs. domain model 7
example 103, 104, 105
detailed design
overview 85
and robustness diagrams 65
disambiguation 82, 90
do-ability 81
domain model
building 7
on class diagram 7
defined 7
vs. design-level class diagram 7
example 33, 77
as glossary 7, 17
and ICONIX process 18
and requirements review 57
updating 36, 83
and use cases 57
domain modeling
introduction 17
top 10 errors 19
domain objects 7
dynamic model
and attributes and operations 90
and CDR 108
exploration 9
and ICONIX process 8
as outside-in approach 36
and static model 86
and use cases 35
E
Edit Contents of Shopping Cart use case
robustness diagrams 71, 72
sequence diagrams 99, 100
text fragments 43, 44, 45, 46
entity object
defined 59
discussion 62
notation 60
and PDR 79
on sequence diagrams 85, 88
entity-relationship diagram (ERD) 19
event-response 39
extend relationship 37
eXtreme Programming (XP)
C3 project 56
and feature-itis 56
gospel per Bob Martin 110
vs. ICONIX process 1
and prototypes 55
thoughts on design 113
F
Factory Method design pattern 111
feature creep 82
feature-itis 56
flowchart 90
Fowler, Martin 113
friend relationships 21
G
GDPro 4, 88
generalization 17, 19
grammar check 55
grammatical inspection 20
GUI design 55
H
helper classes 91
I
ICONIX process
basic steps 13, 14, 15
big picture 9
vs. eXtreme Programming (XP) 1
milestones 13, 14, 15
vs. Rational Unified Process (RUP) 1
walking backwards 2, 3, 4, 5, 6, 8
implementation knowledge 109, 112
include relationship 37, 39
infrastructure 91
inside-out approach 12, 18
interaction flow diagram 55
invoke relationship 37, 39
iterative and incremental 10
Iterator design pattern 111
J
Jacobson, Ivar 1, 5, 9, 59, 86, 89, 108
L
legacy systems 21, 36
line drawings 9, 55, 57
localized class diagrams 91
localizing changes 62
Log In use case
robustness diagrams 67, 68
sequence diagrams 95, 96
text fragments 41, 42, 43, 44
M
Martin, Robert 110
milestones
Critical Design Review (CDR) 15, 108
Delivery 15
introduction 11
Preliminary Design Review (PDR) 14, 80
Requirements Review 13, 54
minimal yet sufficient 2, 10, 20
minimalist approach 1, 86
modularity 107
more heat than light 58
multiplicity 19
N
negotiation 56, 57
noun-verb analysis 19, 20
noun-verb-noun format 36, 84
O
Object Modeling Technique (OMT) 7, 18, 86
Objectory 5, 59
OML
see Open Modeling Language (OML)
OMT
see Object Modeling Technique (OMT)
one thing at a time 113
OO goodness 107
Open Account use case
text fragments 41, 42
Open Modeling Language (OML) 37
invoke 39
precede 39
operations
on class diagrams 17
distribution among classes 86
and domain modeling 20
and PDR 83
on sequence diagrams 87
and verbs 19
opportunistic 11
outside-in approach 12, 18, 36

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020