is the way OO and Component development are done. There are too many books
on UML, some good, some not so good, some a waste of money, some that are must
haves that will never go out of style. The following books are ones I
actually own and use in my practice. One of the problems in the UML world is
that Rational Software holds the primary "Brand Recognition" for UML
and the UML education process. In some case Rational's materials are valuable,
in other cases there a much better alternatives. Simply buying a book or a
product because of the Rational logo, may be a mistake.
have used UML in a variety of settings, from analysis to Java code generation. I
have my favorite tools and materials. The following books have been helpful in
Process: Elaboration Phase and The Unified Process: Construction
Phase, Scott Ambler, R&D Book. These, along with the current books, are
a series of articles written by Scott on deploying the Unified Process
Unified Process An Introduction: Second Edition, Philippe Kruchten,
Addison Wesley, 2000. This is a good introduction to RUP, with well laid out
chapters describing each workflow process. This should be the starting point
for any UML based development methodology.
Applications with UML, Jim Conallen, Prentice Hall, 1998. This book
describes the methods used to define and build web sites using an extension
to UML. This notation extension can be easily implemented in any UML tools
that support Stereotypes.
Driven Object Modeling with UML: A Practical Approach, Doug Rosenberg,
Prentice Hall, 1999. Using another UML extension, a system development
process is described for rapid definition and construction.
Requirements Context, Daryl Kulak and Eamonn Guiney, Addison Wesley,
2000. The increasing use of Use Cases for formal requirements definition is
described in this book. Along with several recent IEEE Computer articles,
the concepts described here can be directly applied to the gathering and
organization of requirements while completely avoiding the long narrative
approaches found in traditional processes.
Modeling Language User Guide, Grady Booch, James Rumbaugh, and Ivar
Jacobson, Addison Wesley, 1999. This is the text from the authors of UML.
Modeling with UML: Designing Successful Software through Business Analysis,
Chris Marshall, Addison Wesley, 2000. Like all UML books, this one
starts off with simple concepts, but it has several important chapters. The
separation of Entities from Process is a critical component of the system
architectures I have deployed. Without this understanding, then reuse is
and Patterns: An Introduction to Object–Oriented Analysis and Design,
Craig Larman, Prentice Hall, 1998. This is an interesting book in that it is
a complete description of UML and its application to a real world problem.
Although the problem (a point of sale terminal) is somewhat simple, the
application of UML is well formed.
Distilled: Applying the Standard Object Modeling Language, Martin
Fowler, Addison Wesley, 1997. This is the classic book on UML and should
kept at hand for anyone working in UML. The second edition is out and should
be bought in place of this edition.
Hans–Erik Eriksson and Magnus Penker, John Wiley & Sons, 1998. This is
a good modeling process book, complete with Java code for the case studies.
UML: The Developer's Guide With a Web–Based Application in Java, Paul
Harmon and Mark Watson, Morgan Kaufmann, 1998. This is the text supplied
with the Popkin UML tool.
Pierrre–Alain Muller, WROX Publisher, 1997. This is a good survey of UML
with great references.
UML: Developing Efficient Object for Embedded Systems, Bruce Powel
Douglas, Addison Wesley, 1998. Although real–time UML is not the norm in
many industries, it is become more so with the advent of distributed Corba
and federated systems. This is worth a read once all the other UML books
have been digested.
UML in a
Nutshell, Sinan Si Alhir, O'Reilly, 1998. besides the cool cat picture
on the cover this book makes a good pocket reference.
of Object–Oriented Design in UML, Meilir Page–Jones, Addison Wesley,
2000. This is a hands on book that coveys many OO design concepts in terms
Components, and Frameworks with UML: The Catalysis Approach, Desmond F.
D'Souza and Alan Cameron Wills, Addison Wesley, 1998. The Catalysis Approach
is an extension of standard UML. This should not be a hindrance though since
many of the case studies can be applied without these extensions.
Combined with Booch, OMT, UML, Putnam P. Texel and Charles B. Williams,
Prentice Hall, 1997. This book is a bit dated with OMT and Booch notation
being replaced by UML 1.3. The UML in this text is UML 1.1, so even some of
the UML is dated. But there is a significant piece of information in the
text — there is a project schedule WBS for an Object Oriented development
project that can be the basis of nearly every development project ever
Case: A Practical Guide, Geri Schneider and Jason P. Winters, Addison
Wesley, 1998. Use Cases are a vital part of UML, so this is a good starting
Regarding UML tools,
I have tried nearly every one on actual projects. The one I use is Peter Coad's
Together/J Enterprise, from Object International.
It wins hands down on nearly all aspects of practical UML deployment. It doesn't
try to do everything for everyone, but focuses on capturing the design and round
trip engineering aspects of the Java code. It is written in Java (which puts a
slight burden on the development machine – 466 and above for the processor and
at least 128MB of memory – but the load is worth it with an intuitive
interface, no code tags (this is extremely important for code management once
the Java has been deployed, and it allows reverse engineering without damaging
the source code), and a fully integrated JavaDoc and IDE suite.