- Shopping Bag ( 0 items )
“If you are a serious user of UML, there is no other book quite like this one. I have been involved with the UML specification process for some time, but I still found myself learning things while reading through this book–especially on the changes and new capabilities that have come with UML.”
–Ed Seidewitz, Chief Architect, IntelliData Technologies Corporation
The latest version of the Unified Modeling Language–UML 2.0–has increased its capabilities as the standard notation for modeling software-intensive systems. Like most standards documents, however, the official UML specification is difficult to read and navigate. In addition, UML 2.0 is far more complex than previous versions, making a thorough reference book more essential than ever.
In this significantly updated and expanded edition of the definitive reference to the standard, James Rumbaugh, Ivar Jacobson, and Grady Booch–the UML’s creators–clearly and completely describe UML concepts, including major revisions to sequence diagrams, activity models, state machines, components, internal structure of classes and components, and profiles. Whether you are capturing requirements, developing software architectures, designing implementations, or trying to understand existing systems, this is the book for you.
The result is an indispensable resource for anyone who needs to understand the inner workings of the industry standard modeling language.
This book is intended to be a complete, useful reference to the Unified Modeling Language (UML) for the developer, architect, project manager, system engineer, programmer, analyst, contracting officer, customer, and anyone else who needs to specify, design, build, or understand complex software systems. It provides a full reference to the concepts and constructs of UML, including their semantics, notation, and purpose. It is organized to be a convenient but thorough reference for the working professional developer. It also attempts to provide additional detail about issues that may not be clear from the standards documents and to provide a rationale for many decisions that went into the UML.
This book is not intended as a guide to the UML standards documents or to the internal structure of the metamodel contained in them. The details of the metamodel are of interest to methodologists and UML tool builders, but most other developers have little need for the arcane details of the Object Management Group (OMG) documents. This book provides all the details of UML that most developers need; in many cases, it makes information explicit that must otherwise be sought between the lines of the original documents. For those who wish to consult the source documents, they are on the OMG web site (www.omg.org).
This book is intended as a reference for those who already have some understanding of object-oriented technology. For beginners, the original books by us and by other authors are listed in the bibliography; although some of the notation has changed, books such as Rumbaugh-91, Jacobson-92, Booch-94, and Meyer-88 provide an introduction to object-oriented concepts that isstill valid and therefore unnecessary to duplicate here. Blaha-05 updates Rumbaugh-91 using UML notation. For a tutorial introduction to UML that shows how to model a number of common problems, see The Unified Modeling Language User Guide Booch-99 or UML Distilled Fowler-04.
UML does not require a particular development process. Although UML may be used with a variety of development processes, it was designed to support an iterative, incremental, use-case-driven process with a strong architectural focus—the kind we feel is most suitable for the development of modern, complex systems. To place UML in its context as a tool for software development, this book defines the stages of such a process, but they are not part of the UML standard. The Unified Software Development Process Jacobson-99 describes in detail the kind of process we believe complements the UML and best supports software development. Second Edition and UML Version
This second edition has been extensively modified from the first edition, which was published in 1999. This edition is based on the OMG “adopted” specification of UML version 2.0, with anticipated changes to the “available” specification being prepared by an OMG Finalization Task Force. Corrections to the book due to changes in the OMG UML specification will be posted on the publisher’s web site for this book at www.awprofessional.com/titles/0321245628. The information in the book is accurate as of June 2004. Original specification documents and up-to-date information about work on UML and related topics can be found on the OMG web site at www.omg.org. Reference Manual and OMG Specification
UML is a large modeling language with many features. A reference manual that just repeats the original specification documents would not help readers much. As in any dictionary or encyclopedia, we have had to summarize information as clearly as possible while reducing the amount of material included. We have frequently chosen to emphasize common usages by omitting obscure special cases or redundant means of representing some concepts. This does not mean that those capabilities are useless, but most readers should be able to succeed without using them. The Reference Manual should not be regarded as the final authority on the UML language, however. As with any standard, the final authority rests with the official specifications, and these should be consulted to resolve disputes.
We have tried to follow these principles:
The UML Reference Manual is organized into four parts: (1) an overview of UML history and of modeling, (2) a survey of UML concepts, (3) an alphabetical dictionary of UML terms and concepts, and (4) brief appendices.
The first part is an overview of UML—its history, purposes, and uses—to help you understand the origin of UML and the need it tries to fill.
The second part is a brief survey of UML concepts so that you can put all the features into perspective. The survey provides a brief overview of the views UML supports and shows how the various constructs work together. This part uses an example that walks through various UML views. It contains one chapter for each kind of UML view. This survey is not intended as a full tutorial or as a comprehensive description of concepts. It serves mainly to summarize and relate the various UML concepts, providing starting points for detailed readings in the dictionary.
The third part contains the reference material organized for easy access to each topic. The bulk of the book is an alphabetical dictionary of all of the concepts and constructs in UML. Each UML term of any importance has its own entry in the dictionary. The dictionary is meant to be complete; therefore, everything in the concept overview in Part 2 is repeated in more detail in the dictionary. The same or similar information has sometimes been repeated in multiple dictionary articles so that the reader can conveniently find it. Some common object-oriented terms that are not official UML concepts are included to provide context in examples and discussions.
Appendices show the UML metamodel and a summary of UML notation. There is a brief bibliography of major object-oriented books, but no attempt has been made to include a comprehensive citation of sources of ideas for UML or other approaches. Many of the books in the bibliography contain excellent lists of references to books and journal articles for those interested in tracking the development of the ideas. Dictionary Entry Formatting Conventions
The dictionary part of the book is organized as an alphabetical list of entries, each describing one concept in some detail. The articles represent a flat list of UML concepts at various conceptual levels. A high-level concept typically contains a summary of its subordinate concepts, each of which is fully described in a separate article. The articles are highly cross-referenced. The flat dictionary organization permits the description of each concept to be presented at a fairly uniform level of detail, without constant shifts in level for the nested descriptions that would be necessary for a sequential presentation. The hypertext format of the document should also make it convenient for reference. It should not be necessary to use the index much; instead, go directly to the main article in the dictionary for any term of interest and follow cross-references. This format is not necessarily ideal for learning the language; beginners are advised to read the overview description of UML found in Part 2 or to read introductory books on UML, such as the UML User Guide Booch-99. Dictionary articles have the following divisions, although not all divisions appear in all articles. Headword and brief definition
The name of the concept appears in boldface, set to the left of the body of the article. A brief definition follows in normal type. This definition is intended to capture the main idea of the concept, but it may simplify the concept for concise presentation. Refer to the main article for precise semantics.
Predefined stereotypes are included as entries. A comment in parentheses following the entry name identifies the modeling element to which they apply. Semantics
This section contains a detailed description of the meaning of the concept, including constraints on its uses and its execution consequences. Notation is not covered in this section, although examples use the appropriate notation. General semantics are given first. For concepts with subordinate structural properties, a list of the properties follows the general semantics, often under the subheading Structure. In most cases, properties appear as a table in alphabetical order by property name, with the description of each property on the right. If a property has an enumerated list of choices, they may be given as an indented sublist. In more complicated cases, a property is given its own article to avoid excessive nesting. When properties require more explanation than permitted by a table, they are described in normal text with run-in headers in boldface italics. In certain cases, the main concept is best described under several logical subdivisions rather than one list. In such cases, additional sections follow or replace the Structure subsection. Although several organizational mechanisms have been used, their structure should be obvious to the reader. The names of properties are usually stated in plain language rather than using internal identifiers from the UML metamodel, but the correspondence is meant to be obvious. Notation
This section contains a detailed description of the notation for the concept. Usually, the notation section has a form that parallels the preceding semantics section, which it references, and it often has the same divisions. The notation section usually includes one or more diagrams to illustrate the concept. The actual notation is printed in black. To help the reader understand the notation, many diagrams contain annotations in blue. Any material in blue is commentary and is not part of the actual notation. Style guidelines
This optional section describes widespread style conventions. They are not mandatory, but they are followed within the UML specification itself. Recommended presentation guidelines may also be given in a separate section. Example
This subsection contains examples of notation or illustrations of the use of the concept. Frequently, the examples also treat complicated or potentially confusing situations. If the examples are brief, they may be folded in with another section. Discussion
This section describes subtle issues, clarifies tricky and frequently confused points, and contains other details that would otherwise digress from the more descriptive semantics section. A minority of articles have a discussion section.
This section also explains certain design decisions that were made in the development of the UML, particularly those that may appear counterintuitive or that have provoked strong controversy. Simple differences in taste are generally not covered.
Sometimes we express an opinion on the value (or lack thereof) of certain concepts. We recognize that others may disagree with these assessments. We have tried to confine opinions to the discussion section. History
This section describes changes from UML1 to UML2, sometimes including reasons for the changes. Minor changes are not usually listed. Absence of this section does not mean that no changes have occurred. CD
This book is accompanied by a CD containing the full text of the book in Adobe® Reader® (PDF) format. Using Adobe Reader, the viewer can easily search the book for a word or phrase. The CD version also contains a clickable table of contents, index, Adobe Reader bookmarks, and extensive hot links (in red) in the bodies of the articles. Simply click on one of the links to jump to the dictionary article for a word or phrase. We hope that this CD will be a useful reference aid for readers. Creators of UML
We wish to thank the many collaborators who built the UML specification through years of meetings, heated discussions, writing, and implementation of ideas. The list of contributors has grown significantly since UML1, and the OMG specification no longer lists the major contributors, who number between twenty and fifty depending on the threshold for inclusion, and even more if work influencing UML is included. It no longer appears possible to compile a complete list without overlooking many persons.
Most of all, we want to celebrate the hundreds of persons who contributed to the community of ideas from which UML was drawn—ideas in object-oriented technology, software methodology, programming languages, user interfaces, visual programming, and numerous other areas of computer science. It is impossible to list them all, or indeed to track even the major chains of influence, without a major scholarly effort, and this is an engineering book, not a historical review. Many of them are well known, but many good ideas also came from those who did not have the good fortune to become widely recognized. The bibliography includes a few of the lesser-known books that influenced the authors.
|Ch. 1||UML overview||3|
|Ch. 2||The nature and purpose of models||15|
|Pt. 2||UML concepts|
|Ch. 3||UML walkthrough||25|
|Ch. 4||Static view||47|
|Ch. 5||Design view||69|
|Ch. 6||Use case view||77|
|Ch. 7||State machine view||81|
|Ch. 8||Activity view||95|
|Ch. 9||Interaction view||101|
|Ch. 10||Deployment view||109|
|Ch. 11||Model management view||111|
|Ch. 13||UML environment||121|
|Ch. 14||Dictionary of terms||129|