Software Reality
Programming with
a dose of satire.

Site Map Search


Agile Development
 
Extreme Programming
 
Code Generation


Articles
Geek Fiction
Lifecycle
Design
Programming
Soapbox
Reviews

Use Case Driven
Use Case Driven Object Modeling with UML: Theory and Practice
Get from use cases to working, maintainable source code. Examples use Spring Framework, JUnit and Enterprise Architect

Agile UML
Agile Development with ICONIX Process
A practical subset of agile development techniques, illustrated by example

Get Controversial!
Extreme Programming Refactored
Extreme Programming with a dose of satire
Available now:



Reviews

Book Overview: Use Case Driven Object Modeling With UML

Use Case Driven Object Modeling With UML

Title: Use Case Driven Object Modeling With UML - A Practical Approach
Authors: Doug Rosenberg and Kendall Scott
Publisher: Addison-Wesley
On-line: amazon.com amazon.co.uk

Reviewed by Matt Stephens
June 27, 2003



UPDATE (September 2006):
It's funny how life turns out, but several years after writing this review, I've just completed the follow-up to this book (due for release January 2007, co-authored with Doug Rosenberg). The new book covers the same ground as the original, but is updated to include agile methods, an emphasis on unit testing, and lots of new examples and exercises (with an example written using Spring Framework).

 

"There is a gulf between requirements and design"


There's a spectacular gulf in the software industry - but not between customers and programmers, or between project plans and reality, or even between overworked programmers and their social lives. No, the real gulf is actually between requirements and design. Not very many people know how to get from one to the other.

A myth has evolved that this gulf can't be bridged in a reliable, repeatable way. This seems odd, because it suggests that a single team trying to design the same system twice (with no memory of their previous attempt) would end up designing it completely differently both times. Certain agile methodologies have taken root in this myth, and used it as a reason to forego detailed up-front design and just get on with the coding part.

In Use Case Driven Object Modeling With UML, Doug Rosenberg and Kendall Scott prove that it actually is possible to get from use cases to code by following a concise and repeatable process.

The analysis & design techniques described in Use Case Driven form the ICONIX Process - Doug's own process (which he has been teaching for many years) that aims to get teams from use cases to code in as short a time as possible, without cutting the wrong corners on the way. The ICONIX Process was originally based around Ivar Jacobson's Objectory Process (described in the book Object Oriented Software Engineering). However, the ICONIX Process builds on and refines Jacobson's process.

One of the problems that besets projects using, say, Rational Unified Process (RUP), is that the development team often becomes bogged down in details. The project is prevented from moving forward by the sheer number of requirements analysis and design artifacts that must be completed and maintained. RUP can of course be tailored into something more lightweight and reasonable, but it's common for developers to become confused about what should be taken out of the process for each project.

The process described in Use Case Driven avoids this "everything and the kitchen sink" approach, and opts instead for a streamlined, easy to follow technique for getting from analysis to design. The process uses a subset of the UML diagrams, and defines an efficient way of writing use cases. The process also advocates creating a Domain Model early on in the project; and using robustness diagrams to validate and "disambiguate" your use cases.

A nice touch in both this book and its companion title (Applying Use Case Driven Object Modeling With UML) is the "top 10 errors" lists at the end of each chapter.

For example, the Top 10 Use Case Modeling Errors include:

* Write the Use Cases too tersely

* Divorce yourself completely from the user interface

* Describe only user interactions; avoid system responses

* Avoid explicit names for your boundary objects

* Spend a month deciding whether to use includes or extends

 

As mentioned in the above update, check out the updated version of this book, which I co-authored with Doug: Use Case Driven Object Modeling with UML - Theory and Practice

 


<< Back to Reviews

<< Back to the Front Page

 

All trademarks and copyrights on this page are owned by their respective owners.
Stories and articles are owned by the original author.
All the rest Copyright © 1998-2008 Matt Stephens. ALL RIGHTS RESERVED.