CDN$ 72.99
Temporarily out of stock.
Order now and we'll deliver when available. We'll e-mail you with an estimated delivery date as soon as we have more information. Your account will only be charged when we ship the item.
Ships from and sold by Gift-wrap available.
The Unified Modeling Lang... has been added to your Cart
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

The Unified Modeling Language User Guide (2nd Edition) Hardcover – May 19 2005

3.4 out of 5 stars 75 customer reviews

See all 3 formats and editions Hide other formats and editions
Amazon Price
New from Used from
"Please retry"
CDN$ 72.99
CDN$ 60.77 CDN$ 44.99

Save an Additional 10% on Textbooks When you Join Amazon Student

Special Offers and Product Promotions

  • Amazon Student members save an additional 10% on Textbooks with promo code TEXTBOOK10. Enter code TEXTBOOK10 at checkout. Here's how (restrictions apply)

No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your e-mail address or mobile phone number.

Product Details

  • Hardcover: 496 pages
  • Publisher: Addison-Wesley Professional; 2 edition (May 19 2005)
  • Language: English
  • ISBN-10: 0321267974
  • ISBN-13: 978-0321267979
  • Product Dimensions: 19 x 3.3 x 23.6 cm
  • Shipping Weight: 1.2 Kg
  • Average Customer Review: 3.4 out of 5 stars 75 customer reviews
  • Amazon Bestsellers Rank: #495,128 in Books (See Top 100 in Books)
  •  Would you like to update product info, give feedback on images, or tell us about a lower price?

  • See Complete Table of Contents

Product Description

From Amazon

One of the most important recent developments in software engineering is the Unified Modeling Language (UML) standard for documenting software designs. Written by UML's inventors (the so-called Three Amigos of software engineering), The Unified Modeling Language User Guide provides a very appealing guide to all the fundamentals of using UML effectively. The book opens with a basic tour of the essential concepts and modeling diagrams used in UML, including class diagrams, use case diagrams, and basic modeling principles. The authors pay close attention to modeling classes (and documenting the relationships between classes) as well as use case diagrams (which show how software will be used by various actors in a system). This book mixes in a little software-engineering theory, too, but it makes use of clear examples and actual UML diagrams to illustrate key concepts.

Later in the book, the authors discuss more difficult notational diagrams (such as state diagrams and activity diagrams, which can be used to model behavior in a system). Whatever your background in software engineering, you'll no doubt appreciate the author's clear explanations of basic (and advanced) modeling concepts, as well as the nuts-and-bolts details of today's powerful UML. With its combination of expert modeling advice and excellent detail on the specifics of UML, this book will be absolutely essential reading for anyone who wants to use UML for real-world software design. --Richard Dragan --This text refers to an alternate Hardcover edition.

From the Inside Flap

The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. The UML gives you a standard way to write a system's blueprints, covering conceptual things such as business processes and system functions, as well as concrete things such as classes written in a specific programming language, database schemas, and reusable software components.

This book teaches you how to use the UML effectively.

This book covers UML version 2.0.


In this book, you will

  • Learn what the UML is, what it is not, and why the UML is relevant to the process of developing software-intensive systems.
  • Master the vocabulary, rules, and idioms of the UML and, in general, learn how to "speak" the language effectively.

Understand how to apply the UML to solve a number of common modeling problems.

The user guide provides a reference to the use of specific UML features. However, it is not intended to be a comprehensive reference manual for the UML; that is the focus of another book, The Unified Modeling Language Reference Manual, Second Edition (Rumbaugh, Jacobson, Booch, Addison-Wesley, 2005).The user guide describes a development process for use with the UML. However, it is not intended to provide a complete reference to that process; that is the focus of yet another book, The Unified Software Development Process (Jacobson, Booch, Rumbaugh, Addison-Wesley, 1999).

Finally, this book provides hints and tips for using the UML to solve a number of common modeling problems, but it does not teach you how to model. This is similar to a user guide for a programming language that teaches you how to use the language but does not teach you how to program.


The UML is applicable to anyone involved in the production, deployment, and maintenance of software. The user guide is primarily directed to members of the development team who create UML models. However, it is also suitable to those who read them, working together to understand, build, test, and release a software-intensive system. Although this encompasses almost every role in a software development organization, the user guide is especially relevant to analysts and end users (who specify the required structure and behavior of a system), architects (who design systems that satisfy those requirements), developers (who turn those architectures into executable code), quality assurance personnel (who verify and validate the system's structure and behavior), librarians (who create and catalogue components), and project and program managers (who generally wrestle with chaos, provide leadership and direction, and orchestrate the resources necessary to deliver a successful system).

The user guide assumes a basic knowledge of object-oriented concepts. Experience in an object-oriented programming language or method is helpful but not required.

How to Use This Book

For the developer approaching the UML for the first time, the user guide is best read linearly. You should pay particular attention to Chapter 2, which presents a conceptual model of the UML. All chapters are structured so that each builds upon the content of the previous one, thus forming a linear progression.For the experienced developer seeking answers to common modeling problems using the UML, this book can be read in any order. You should pay particular attention to the common modeling problems presented in each chapter.

Organization and Special Features

The user guide is organized into seven parts:

  • Part 1Getting Started
  • Part 2Basic Structural Modeling
  • Part 3Advanced Structural Modeling
  • Part 4Basic Behavioral Modeling
  • Part 5Advanced Behavioral Modeling
  • Part 6Architectural Modeling
  • Part 7Wrapping Up

The user guide contains two appendices: a summary of the UML notation and a summary of the Rational Unified Process. A glossary of common terms is also provided. An index follows.

Each chapter addresses the use of a specific UML feature, and most are organized into the following four sections:

  1. Getting Started
  2. Terms and Concepts
  3. Common Modeling Techniques
  4. Hints and Tips

The third section introduces and then solves a set of common modeling problems. To make it easy for you to browse the guide in search of these use cases for the UML, each problem is identified by a distinct heading, as in the following example.

Modeling Architectural Patterns

Each chapter begins with a summary of the features it covers, as in the following example.

In this chapter
  • Active objects, processes, and threads
  • Modeling multiple flows of control
  • Modeling interprocess communication
  • Building thread-safe abstractions

Similarly, parenthetical comments and general guidance are set apart as notes, as in the following example.

Abstract operations map to what C++ calls pure virtual operations; leaf operations in the UML map to C++ nonvirtual operations.

The UML is semantically rich. Therefore, a presentation about one feature may naturally involve another. In such cases, cross references are provided in the left margin, as on this page.

Blue highlights are used in figures to indicate explanations about a model, as opposed to the model itself, which is always shown in black. Code is distinguished by displaying it in a monospace font, as in this example.

Acknowledgement. The authors wish to thank Bruce Douglass, Per Krol, and Joaquin Miller for their assistance in reviewing the manuscript of the second edition. A Brief History of the UML

The first object-oriented language is generally acknowledged to be Simula-67, developed by Dahl and Nygaard in Norway in 1967. This language never had a large following, but its concepts were a major inspiration for later languages. Smalltalk became widely available in the early 1980s, followed by other object-oriented languages such as Objective C, C++, and Eiffel in the late 1980s. Object-oriented modeling languages appeared in the 1980s as methodologists, faced with a new genre of object-oriented programming languages and increasingly complex applications, began to experiment with alternative approaches to analysis and design. The number of object-oriented methods increased from fewer than 10 to more than 50 during the period between 1989 and 1994. Many users of these methods had trouble finding a modeling language that met their needs completely, thus fueling the so-called method wars. A few methods gained prominence, including Booch's method, Jacobson's OOSE (Object-Oriented Software Engineering), and Rumbaugh's OMT (Object Modeling Technique). Other important methods included Fusion, Shlaer-Mellor, and Coad-Yourdon. Each of these was a complete method, although each was recognized as having strengths and weaknesses. In simple terms, the Booch method was particularly expressive during the design and construction phases of projects; OOSE provided excellent support for use cases as a way to drive requirements capture, analysis, and high-level design; and OMT was most useful for analysis and data-intensive information systems.

A critical mass of ideas started to form by the mid 1990s when Grady Booch (Rational Software Corporation), James Rumbaugh (General Electric), Ivar Jacobson (Objectory), and others began to adopt ideas from each other's methods, which collectively were becoming recognized as the leading object-oriented methods worldwide. As the primary authors of the Booch, OMT, and OOSE methods, we were motivated to create a unified modeling language for three reasons. First, our methods were already evolving toward each other independently. It made sense to continue that evolution together rather than apart, eliminating the potential for any unnecessary and gratuitous differences that would further confuse users. Second, by unifying our methods, we could bring some stability to the object-oriented marketplace, allowing projects to settle on one mature modeling language and letting tool builders focus on delivering more useful features. Third, we expected that our collaboration would yield improvements for all three earlier methods, helping us to capture lessons learned and to address problems that none of our methods previously handled well.

As we began our unification, we established three goals for our work:

  1. To model systems, from concept to executable artifact, using object-
  2. oriented techniques
  3. To address the issues of scale inherent in complex, mission-critical systems
  4. To create a modeling language usable by both humans and machines

Devising a language for use in object-oriented analysis and design is not unlike designing a programming language. First, we had to constrain the problem: Should the language encompass requirements specification? Should the language be sufficient to permit visual programming? Second, we had to strike a balance between expressiveness and simplicity. Too simple a language would limit the breadth of problems that could be solved; too complex a language would overwhelm the mortal developer. In the case of unifying existing methods, we also had to be sensitive to the installed base. Make too many changes and we would confuse existing users; resist advancing the language and we would miss the opportunity to engage a much broader set of users and to make the language simpler. The UML definition strives to make the best trade-offs in each of these areas.

The UML effort started officially in October 1994 when Rumbaugh joined Booch at Rational. Our project's initial focus was the unification of the Booch and OMT methods. The version 0.8 draft of the Unified Method (as it was then called) was released in October 1995. Around the same time, Jacobson joined Rational and the scope of the UML project was expanded to incorporate OOSE. Our efforts resulted in the release of the UML version 0.9 documents in June 1996. Throughout 1996, we invited and received feedback from the general software engineering community. During this time, it also became clear that many software organizations saw the UML as strategic to their business. We established a UML consortium, with several organizations willing to dedicate resources to work toward a strong and complete UML definition. Those partners contributing to the UML 1.0 definition included Digital Equipment Corporation, Hewlett-Packard, I-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational, Texas Instruments, and Unisys. This collaboration resulted in the UML 1.0, a modeling language that was well-defined, expressive, powerful, and applicable to a wide spectrum of problem domains. Mary Loomis was instrumental in convincing the Object Management Group (OMG) to issue a request for proposals (RFP) for a standard modeling language. UML 1.0 was offered for standardization to the OMG in January 1997 in response to their RFP.

Between January 1997 and July 1997, the original group of partners was expanded to include virtually all of the other submitters and contributors of the original OMG response, including Andersen Consulting, Ericsson, ObjecTime Limited, Platinum Technology, PTech, Reich Technologies, Softeam, Sterling Software, and Taskon. A semantics task force was formed, led by Cris Kobryn of MCI Systemhouse and administered by Ed Eykholt of Rational, to formalize the UML specification and to integrate the UML with other standardization efforts. A revised version of the UML (version 1.1) was offered to the OMG for standardization in July 1997. In September 1997, this version was accepted by the OMG Analysis and Design Task Force (ADTF) and the OMG Architecture Board and then put up for vote by the entire OMG membership. UML 1.1 was adopted by the OMG on November 14, 1997.

For several years, UML was maintained by an OMG Revision Task Force, which produced versions 1.3, 1.4, and 1.5. From 2000 to 2003, a new and expanded set of partners produced an updated specification of UML, version 2.0. This version was reviewed for a year by a Finalization Task Force (FTF) headed by Bran Selic of IBM, and the official version of UML 2.0 was adopted by the OMG in early 2005. UML 2.0 is a major revision of UML 1 and includes a large number of additional features. In addition, many changes were made to previous constructs based on experience with the previous version.It would be a major historical research project to reconstruct a complete list of sources, and even more difficult to identify the many predecessors who have influenced UML in manners large and small. As with all scientific research and engineering practice, UML is a small hill atop a large mountain of previous experience.


See all Product Description

Customer Reviews

Top Customer Reviews

Format: Hardcover
Who this book is for: Programmers with a solid understanding of Java or C++ but minimal experience using UML. The book will give the novice user a complete listing of all the terms and diagrams used in UML. It gives decent examples to describe how terms and diagrams work. After reading the book, a user can decipher any UML diagram they are presented with and understand the view the developer intends to convey.
The book is not for developers with in-depth knowledge of UML. They will be bored with the terms and examples. I imagine they are looking for more of a theoretical approach to what makes a UML diagram efficient or inefficent, not how to read the diagram (thus the nature of some of the negative reviews).
Personally, I liked the fact the book was broken into 30 some chapters. I read a chapter an evening for a month and bang, I had a solid foundation on UML, just what I was looking for. The chapters were short, to the point though they did contain repetitve information (maybe it was intentional as repetition is how people learn.)
I thought the book rocked. I read plenty of CS related books but this is the only one I have ever considered writing a review for because I think it can truly benefit the novice to intermediate UML user.
1 of 1 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse
Format: Hardcover
This is the best book on UML. An excellent book on all aspects of UML methodology. This book comes from those who framed the methodology and that aspect makes it more valuable to the reader, experienced or otherwise.
The book starts of with reasons for modeling with real world examples. For a novice, this will be the best introduction to modeling - why is it needed in the first place.
The book also describes the evolution of UML (best practises of OOSE,OMT and Booch) which will benefit people in all levels of software engineering.
Any modeling technique needs to address the following three components a) Structural b) Behavioral and c) Architecture.
This book contains explanations for all of the above three components in separate sections. Even advance behavioral/structural modeling is discussed.
The structural modeling is described with explanations on a) Objects & classes b) relationship between classes c) class diagrams
The behavioral modeling is described with explanations on a) use case diagrams b) interaction diagrams c) activity diagrams and importantly d) state charts to name a few.
The architecture modeling is described with explanations on deployment, collaborations and component diagrams to name a few.
I would recommend interested OO developers/managers to acquire this book as a reference material for OO development needs.
1 of 1 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse
Format: Hardcover
When you read a book, you must understand the type of book it is. If you approach a satire as a serious treatise, a fantasy as a history, or a telephone directory as a novel, your expectations will not be met and your review of the book will be flawed.
You determine the type of book--the genre--by combining the book's own clues (statements by the author) with your experience in literature of all types (what "patterns" does this book share with other things I've read?). You may have to read the book once, reflect on the distance between what you expect and what the book provides, and then--well, then you have to choose. You can condemn the book as unfruitful and disappointing, or revise your expectations according to the book's genre.
The UML User Guide has forced me to do this revision. On first reading--a close and careful reading--I expected a different book, and was disappointed by the book. Yet the authors are not incompetent: their other works are classics (don't look for tight logic here--anyone can produce a clunker). What sort of book is this? The text is repetitive, both in chapter structure and in content. The material is simple, and barely touches the complexities of real-life modeling. The book is long, covering lots of ground, without digging more than a few centimeters deep at any one point. Where have I seen this before?
In my introductory Hebrew class, I learned that there were two tenses in Hebrew, past and future. I dealt with shallow topics like, "This is the [male] horse of the king," "The king hit the horse of the city," "The [female] horse will kill the king," until I could scream. Every chapter had a topic, examples, review, exercises.
Read more ›
1 of 1 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse
Format: Hardcover
A few months ago I've successfully completed an OO project. I used this book everyday for both analysis and design. It brought me new vision about some details and problems to dodge in my everyday's work. I confirm my first review: this book is really outstanding. UML concepts are explained thoroughly and clearly, even the most abstract concepts. PLUS, he gives you miscellaneous tips on how-to go more deeply in your analysis and design processing. Grady Booch gives you his experiences and feelings in OO technology; take it ... it's so valuable. All about UML is in this book. Buy it, read it and take whatever you want and apply it to your IT/OO problems ... you will be sucessful. Believe me Grady Booch is a great man/mentor as his colleagues Ivar Jacobson & James Rumbaugh, whose I used their notation and methodology before (OOSE & OMT). Amigos' books are references respecting UML. I am really surprise about bad reviews posted previously. Don't forget this book is just a User Guide; it won't fix any analysis or design for you. If you have appreciated Object-Oriented Analysis & Design with Applications and Object Solutions ... you will like this book.
1 of 1 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse

Most recent customer reviews