Niwot Ridge Resources

A Source of Information for Mission Critical Systems, Management Processes, and Strategies

UML Topics

UML 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.

I 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 this work.

  • The Unified 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 using UML.

  • The Rational 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.

  • Building Web 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.

  • Use Case 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.

  • Use Case: 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.

  • The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, and Ivar Jacobson, Addison Wesley, 1999. This is the text from the authors of UML. 

  • Enterprise 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 very difficult.

  • Applying UML 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.

  • UML 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.

  • UML Toolkit, 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.

  • Understanding 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.

  • Instant UML, Pierrre–Alain Muller, WROX Publisher, 1997. This is a good survey of UML with great references.

  • Real–Time 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.

  • Fundamentals 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 of UML

  • Objects, 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.

  • Use Cases 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 encountered.

  • Applying Use 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 point.

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.


Home | Search |Site Map | Copyright