Written by the three pioneers behind the Unified Modeling Language (UML) standard, The Unified Modeling Language Reference Manual provides an excellent real-world guide to working with UML. This title provides expert knowledge on all facets of today's UML standard, helping developers who are encountering UML on the job for the first time to be more productive.
The book begins with a history of UML, from structured design methods of the '60s and '70s to the competing object-oriented design standards that were unified in 1997 to create UML. For the novice, the authors illustrate key diagram types such as class, use case, state machine, activity, and implementation. (Of course, learning these basic diagram types is what UML is all about. The authors use an easy-to-understand ticket-booking system for many of their examples.)
After a tour of basic document types, The Unified Modeling Language Reference Manual provides an alphabetical listing of more than 350 UML terms. Entries range from a sentence or two to several pages in length. (Class, operation, and use case are just a few of the important terms that are covered.) Though you will certainly need to be acquainted with software engineering principles, this reference will serve the working software developer well. As the authors note, this isn't UML for Dummies, but neither is it an arcane academic treatise. The authors succeed in delivering a readable reference that will answer any UML question, no matter how common or obscure. --Richard Dragan
From Book News, Inc.
Written by the original designers of the Unified Modeling Language (UML), this reference provides additional detail about issues that may not be clear from the standards documents, and a rationale for many decisions that went into the UML. Opens with a history of UML, then surveys the views UML supports and shows how the various constructs work together. The majority of the book is an alphabetical encyclopedia of all of the concepts and constructs in UML. A complimentary CD-ROM with the complete UML standards documents can be requested by mail. Book News, Inc.®, Portland, OR
Book Description
The authors have done an outstanding job with this UML book. The definitions of the terms are the best I have seen. The organization and material in the encyclopedia are fantastic! -Perry Cole, MCIWorldCom
The Unified Modeling Language (UML) has rapidly become the standard notation for modeling software-intensive systems. This book provides the definitive description of UML from its original developers--James Rumbaugh, Ivar Jacobson, and Grady Booch. Whether you are capturing requirements, developing a software architecture, designing the implementation, or trying to understand an existing system, this is the book for you.
The majority of the book is a unique alphabetical list of articles covering every aspect of UML in a form convenient for quick reference and detailed study. This format permits full coverage of UML details as well as high-level articles without confusing the reader by constant shifts in level. The first part of the book--a complete summary of UML concepts organized by subject area--provides an introduction to UML for the newcomer as well as entry points into the detailed articles.
Highlights of the book include: Two-color diagrams, extensively annotated Thorough coverage of both semantics and notation, separated in each article for easy reference Further explanations of concepts whose meaning or purpose is obscure in the original specifications Discussion sections offering usage advice and additional insight into tricky concepts A hyperlinked version of the book in Adobe Reader format on CD-ROM, an excellent resource for browsing or searching the text for specific information Full text of the UML specification documents on CD-ROM, courtesy of the Object Management Group Notation summary, with hyperlinks to individual articles on CD-ROM
From the Inside Flap
Goals This book is intended to be a complete and 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, syntax, 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 standard 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 do wish to consult the source documents, they are included on the accompanying CD. 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, Booch-94, Jacobson-92, and Meyer-88 provide an introduction to object-oriented concepts that is still valid and therefore unnecessary to duplicate here. 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. Those who already know an object-oriented method, such as OMT, Booch, Objectory, Coad-Yourdon, or Fusion, should be able to read the Reference Manual and use it to understand UML notation and semantics; to learn UML quickly, they may nevertheless find it useful to read the User Guide. UML does not require a particular development process, and this book does not describe one. Although UML may be used with a variety of development processes, it was designed to support an iterative, incremental, use-casendriven process with a strong architectural focus--the kind we feel is most suitable for the development of modern, complex systems. The Unified Software Development Process Jacobson-99 describes the kind of process we believe complements the UML and best supports software development. Outline of the Book The UML Reference Manual is organized into three parts: an overview of UML history and of modeling, a survey of UML concepts, and an alphabetical encyclopedia of UML terms and concepts. The first part is a survey 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 views so that you can put all the concepts into perspective. The survey provides a brief overview of the views UML supports and shows how the various constructs work together. This part begins with an example that walks through various UML views and then 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 and provides starting points for detailed readings in the encyclopedia. The third part contains the reference material organized for easy access to each topic. The bulk of the book is an alphabetical encyclopedia of all of the concepts and constructs in UML. Each UML term of any importance has its own entry in the encyclopedia. The encyclopedia is meant to be complete; therefore, everything in the concept overview in Part 2 is repeated in more detail in the encyclopedia. The same or similar information has sometimes been included in multiple encyclopedia articles so that the reader can conveniently find it. The reference part also contains an alphabetic list of UML standard elements. A standard element is a feature predefined using the UML extensibility mechanisms. The standard elements are extensions that are felt to be widely useful. Appendices show the UML metamodel, a summary of UML notation, and some standard sets of extensions for particular domains. 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. Encyclopedia Article Formatting Conventions The encyclopedia 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. This flat encyclopedia 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 encyclopedia 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. Encyclopedic articles have the following divisions, although not all divisions appear in all articles. 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. 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, the properties appear as a table in alphabetical order by property name, with the description of each property on the right. If a property has a brief enumerated list of choices, they may be given as an indented sublist. In more complicated cases, the 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. 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 ink. To help the reader understand the notation, many diagrams contain annotations in blue ink. Any material in blue is commentary and is not part of the actual notation. 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. 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. Only a fraction of articles have this section. Simple differences in taste are generally not covered. Standard elements This section lists standard constraints, tags, stereotypes, and other conventions that are predefined for the concept in the article. This section is fairly rare. Syntax Conventions Syntax expressions. Syntax expressions are given in a modified BNF format in a sans serif font. To avoid confusing literal values and syntax productions, literal values that appear in the target sentence are printed in black ink, and the names of syntax variables and special syntax operators are printed in blue ink. Text printed in black ink appears in that form in the target string. Punctuation marks (they are always printed in black) appear in the target string. Any word printed in blue ink represents a variable that must be replaced by another string or another syntax production in the target string. Words may contain letters and hyphens. If a blue word is italicized or underlined, the actual replacement string must be italicized or underlined. In code examples, comments are printed in blue ink to the right of the code text. Subscripts and overbars are used as syntax operators (please refer to book for further information). Literal strings. In running text, language keywords, names of model elements, and sample strings from models are shown in a sans serif font. Diagrams. In diagrams, blue text and arrows are annotations, that is, explanations of the diagram notation that do not appear in an actual diagram. Any text and symbols in black ink are actual diagram notation. 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 thumbnails, and extensive hot links in the body of the articles. Simply click on one of the links to jump to the encyclopedia article for the word or phrase. The CD also contains the full text of the OMG UML specifications, included by the permission of the Object Management Group. We feel that this CD will be a useful on-line reference to UML for advanced users. For More Information Additional source files and up-to-date information on further work on UML and related topics can be found on the World Wide Web sites rational and omg. Acknowledgments We want to thank many people who made the UML possible. First, we must thank Rational Software Corporation, especially Mike Devlin and Paul Levy, who had the vision to bring us together, start the unification work, and stay the course during the four years that were required to bring the work to successful completion. We also thank the Object Management Group for providing the framework that brought together many diverse viewpoints and merged them together into a broad consensus that was much greater than any one contribution. We particularly want to thank Cris Kobryn, who led the technical team that prepared the UML standard and who managed to achieve a consensus among an extremely strong-willed group of persons (and the three of us were not the least of his problems). His diplomatic skills and technical balance kept the UML effort from foundering amid many differences of opinion. Cris also reviewed the book and provided countless useful suggestions. We would like to thank Gunnar Övergaard for reviewing the book thoroughly, as well as for his perseverance in completing many sections of the UML documents that were not fun to write but were necessary to its formal correctness. We want to thank Karin Palmkvist for an exceedingly thorough review that uncovered many bugs in technical content, as well as many flaws in grammar, phrasing, and presentation. We would also like to thank Mike Blaha, Conrad Bock, Perry Cole, Bruce Douglass, Martin Fowler, Eran Gery, Pete McBreen, Guus Ramackers, Tom Schultz, Ed Seidewitz, and Bran Selic for their helpful reviews. Most of all, we want to thank the scores or even 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 are well known, but many good ideas came from those who did not have the good fortune to be widely recognized. On a more personal note, I wish to thank Professor Jack Dennis, who inspired my work in modeling and the work of many other students, more than twenty-five years ago. The ideas from his Computations Structures Group at MIT have borne much fruit, and they are not the least of the sources of UML. I must also thank Mary Loomis and Ashwin Shah, with whom I developed the original ideas of OMT, and my former colleagues at GE R&D Center, Mike Blaha, Bill Premerlani, Fred Eddy, and Bill Lorensen, with whom I wrote the OMT book. Finally, without the patience of my wife, Madeline, and my sons, Nick and Alex, there would have been no UML and no book about it. James Rumbaugh Cupertino, California November 1998 020130998XP04062001
From the Back Cover
The authors have done an outstanding job with this UML book. The definitions of the terms are the best I have seen. The organization and material in the encyclopedia are fantastic!--Perry Cole, MCIWorldCom The Unified Modeling Language (UML) has rapidly become the standard notation for modeling software-intensive systems. This book provides the definitive description of UML from its original developers--James Rumbaugh, Ivar Jacobson, and Grady Booch. Whether you are capturing requirements, developing a software architecture, designing the implementation, or trying to understand an existing system, this is the book for you. The majority of the book is a unique alphabetical list of articles covering every aspect of UML in a form convenient for quick reference and detailed study. This format permits full coverage of UML details as well as high-level articles without confusing the reader by constant shifts in level. The first part of the book--a complete summary of UML concepts organized by subject area--provides an introduction to UML for the newcomer as well as entry points into the detailed articles. Highlights of the book include: Two-color diagrams, extensively annotated Thorough coverage of both semantics and notation, separated in each article for easy reference Further explanations of concepts whose meaning or purpose is obscure in the original specifications Discussion sections offering usage advice and additional insight into tricky concepts A hyperlinked version of the book in Adobe Reader format on CD-ROM, an excellent resource for browsing or searching the text for specific information Full text of the UML specification documents on CD-ROM, courtesy of the Object Management Group Notation summary, with hyperlinks to individual articles on CD-ROM
020130998XB04062001
About the Author
Dr. James Rumbaugh is one of the leading object-oriented methodologists. He is the chief developer of the Object Modeling Technique (OMT) and the lead author of the best-selling book Object-Oriented Modeling and Design. Before joining Rational Software Corporation in October 1994, he worked for more than 25 years at General Electric Research and Development Center in Schenectady, New York. He has been working on object-oriented methodology and tools for many years. He developed the DSM object-oriented programming language, the state tree model of control, the OMT object modeling notation, and the Object Modeling Tool graphic editor. The foundations for the OMT notation were developed more than 10 years ago with Mary Loomis and Ashwin Shah of Calma Corporation. The OMT methodology was developed at GE R&D Center with coauthors Mike Blaha, Bill Premerlani, Fred Eddy, and Bill Lorensen. Dr. Rumbaugh received his Ph.D. in computer science from MIT. During his Ph.D. research under Professor Jack Dennis, Dr. Rumbaugh was one of the inventors of data flow computer architecture. His career has dealt with semantics of computation, tools for programming productivity, and applications using complex algorithms and data structures. Dr. Rumbaugh has published journal articles on his work and has spoken at leading object-oriented conferences. He writes a regular column for the Journal of Object-Oriented Programming. Dr. Rumbaugh is the lead author of the recent best-selling book Object-Oriented Modeling and Design, published by Prentice Hall. His latest book, OMT Insights: Perspectives on Modeling from the Journal of Object-Oriented Programming, was released in October 1996. He and his colleagues developed the OMT methodology described in the book based on real-world applications at GE, and they have worked to extend the original methodology. He has taught courses based on the methodology to different audiences around the world, ranging from one-hour seminars to intensive several-day training courses. He has a B.S. in physics from MIT, an M.S. in astronomy from Caltech, and a Ph.D. in computer science from MIT. During his career at GE, he worked on a variety of problems, including the design of one of the first time-sharing operating systems, early work in interactive graphics, algorithms for computed tomography, use of parallel machines for fast image generation, VLSI chip design, and finally, object-oriented technology. Jim developed OMTool, an interactive graphical editor for manipulation of object model diagrams. The editor is commercially available. In addition, he led a five-year programming effort producing production-quality software. In addition, Jim was the manager of the Software Engineering Program at GE, where he led a team of eight to ten Ph.D. and M.S. scientists performing research in software engineering in the areas of algorithm development, programming languages, program proving, and VLSI computer-aided design. In addition, he performed personal research. Jim developed Chipwright, an interactive graphical CAD system for VLSI layout with incremental design rule checking. He also led a team of four programmers in implementation. Jim developed and implemented the object-oriented language DSM, combining object-oriented concepts with database concepts and distributed it within GE for use on production applications. The language was heavily used at Calma Corporation and was extensively extended based on user feedback with a preliminary version. Jim also developed Vista, a hierarchical interactive standard graphics system (similar to the PHIGS system) written in the object-oriented DSM language. He implemented user-interface applications based on this system, including a configuration-management tool and a user-interface generation tool. Jim developed the concept of state trees, a structured extension of finite state machines incorporating a new model of object-oriented control. He applied it to the design of user interfaces, and the technique was used as a main aspect of the CHIDE user-interface system developed by colleagues at GE-CRD. Later, it was used in the OMTool object editor. Jim also developed the Flow Graph System, a generic interactive graphic system for controlling a network of design engineering jobs, including management of multiple versions of data and coordination of information flow among applications. He received a patent on the underlying concepts. In addition, Jim developed algorithms for the reconstruction of images for computerized tomography using fewer input points and with reduced noise in the reconstructed images. He also developed algorithms for display of three-dimensional images in real time using array processors, and he developed Parallax, a language for programming pipelined array processors. Jim has served on various committees, including the OOPSLA Program Committee and the TOOLS Program Committee.
Ivar Jacobson is one of the “fathers” of components and component architecture, use cases, modern business engineering, the Unified Modeling Language, and the Rational Unified Profess. He is the principal author of five best-selling books on these methods and technologies, in addition to being the coauthor of the two leading books on the Unified Modeling Language. Ivar is an executive technical consultant to IBM Rational and founder of Ivar Jacobson International. He is also currently focusing his efforts on his new software company, Jaczone AB, where he and his daughter and cofounder, Agneta Jacobson, develop intelligent agents for software development. Grady Booch, is the Chief Scientist at Rational Software Corporation and developer of the Booch Method of object-oriented analysis and design. He is also co-developer of the Unified Modeling Language (UML). Widely recognized for these and many contributions in the field, he is a popular speaker at technology conferences around the world. Booch has twice received Software Development magazine's coveted Jolt-Cola Product Excellence Award for his seminal text, Object-Oriented Analysis and Design with Applications.
Excerpt. © Reprinted by permission. All rights reserved.
Goals This book is intended to be a complete and 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, syntax, 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 standard 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 do wish to consult the source documents, they are included on the accompanying CD. 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, Booch-94, Jacobson-92, and Meyer-88 provide an introduction to object-oriented concepts that is still valid and therefore unnecessary to duplicate here. 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. Those who already know an object-oriented method, such as OMT, Booch, Objectory, Coad-Yourdon, or Fusion, should be able to read the Reference Manual and use it to understand UML notation and semantics; to learn UML quickly, they may nevertheless find it useful to read the User Guide. UML does not require a particular development process, and this book does not describe one. Although UML may be used with a variety of development processes, it was designed to support an iterative, incremental, use-casendriven process with a strong architectural focus--the kind we feel is most suitable for the development of modern, complex systems. The Unified Software Development Process Jacobson-99 describes the kind of process we believe complements the UML and best supports software development. Outline of the Book The UML Reference Manual is organized into three parts: an overview of UML history and of modeling, a survey of UML concepts, and an alphabetical encyclopedia of UML terms and concepts. The first part is a survey 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 views so that you can put all the concepts into perspective. The survey provides a brief overview of the views UML supports and shows how the various constructs work together. This part begins with an example that walks through various UML views and then 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 and provides starting points for detailed readings in the encyclopedia. The third part contains the reference material organized for easy access to each topic. The bulk of the book is an alphabetical encyclopedia of all of the concepts and constructs in UML. Each UML term of any importance has its own entry in the encyclopedia. The encyclopedia is meant to be complete; therefore, everything in the concept overview in Part 2 is repeated in more detail in the encyclopedia. The same or similar information has sometimes been included in multiple encyclopedia articles so that the reader can conveniently find it. The reference part also contains an alphabetic list of UML standard elements. A standard element is a feature predefined using the UML extensibility mechanisms. The standard elements are extensions that are felt to be widely useful. Appendices show the UML metamodel, a summary of UML notation, and some standard sets of extensions for particular domains. 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. Encyclopedia Article Formatting Conventions The encyclopedia 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. This flat encyclopedia 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 encyclopedia 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. Encyclopedic articles have the following divisions, although not all divisions appear in all articles. 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. 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, the properties appear as a table in alphabetical order by property name, with the description of each property on the right. If a property has a brief enumerated list of choices, they may be given as an indented sublist. In more complicated cases, the 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. 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 ink. To help the reader understand the notation, many diagrams contain annotations in blue ink. Any material in blue is commentary and is not part of the actual notation. 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. 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. Only a fraction of articles have this section. Simple differences in taste are generally not covered. Standard elements This section lists standard constraints, tags, stereotypes, and other conventions that are predefined for the concept in the article. This section is fairly rare. Syntax Conventions Syntax expressions. Syntax expressions are given in a modified BNF format in a sans serif font. To avoid confusing literal values and syntax productions, literal values that appear in the target sentence are printed in black ink, and the names of syntax variables and special syntax operators are printed in blue ink. Text printed in black ink appears in that form in the target string. Punctuation marks (they are always printed in black) appear in the target string. Any word printed in blue ink represents a variable that must be replaced by another string or another syntax production in the target string. Words may contain letters and hyphens. If a blue word is italicized or underlined, the actual replacement string must be italicized or underlined. In code examples, comments are printed in blue ink to the right of the code text. Subscripts and overbars are used as syntax operators (please refer to book for further information). Literal strings. In running text, language keywords, names of model elements, and sample strings from models are shown in a sans serif font. Diagrams. In diagrams, blue text and arrows are annotations, that is, explanations of the diagram notation that do not appear in an actual diagram. Any text and symbols in black ink are actual diagram notation. 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 thumbnails, and extensive hot links in the body of the articles. Simply click on one of the links to jump to the encyclopedia article for the word or phrase. The CD also contains the full text of the OMG UML specifications, included by the permission of the Object Management Group. We feel that this CD will be a useful on-line reference to UML for advanced users. For More Information Additional source files and up-to-date information on further work on UML and related topics can be found on the World Wide Web sites www.rational.com and www.omg.org. Acknowledgments We want to thank many people who made the UML possible. First, we must thank Rational Software Corporation, especially Mike Devlin and Paul Levy, who had the vision to bring us together, start the unification work, and stay the course during the four years that were required to bring the work to successful completion. We also thank the Object Management Group for providing the framework that brought together many diverse viewpoints and merged them together into a broad consensus that was much greater than any one contribution. We particularly want to thank Cris Kobryn, who led the technical team that prepared the UML standard and who managed to achieve a consensus among an extremely strong-willed group of persons (and the three of us were not the least of his problems). His diplomatic skills and technical balance kept the UML effort from foundering amid many differences of opinion. Cris also reviewed the book and provided countless useful suggestions. We would like to thank Gunnar Övergaard for reviewing the book thoroughly, as well as for his perseverance in completing many sections of the UML documents that were not fun to write but were necessary to its formal correctness. We want to thank Karin Palmkvist for an exceedingly thorough review that uncovered many bugs in technical content, as well as many flaws in grammar, phrasing, and presentation. We would also like to thank Mike Blaha, Conrad Bock, Perry Cole, Bruce Douglass, Martin Fowler, Eran Gery, Pete McBreen, Guus Ramackers, Tom Schultz, Ed Seidewitz, and Bran Selic for their helpful reviews. Most of all, we want to thank the scores or even 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 are well known, but many good ideas came from those who did not have the good fortune to be widely recognized. On a more personal note, I wish to thank Professor Jack Dennis, who inspired my work in modeling and the work of many other students, more than twenty-five years ago. The ideas from his Computations Structures Group at MIT have borne much fruit, and they are not the least of the sources of UML. I must also thank Mary Loomis and Ashwin Shah, with whom I developed the original ideas of OMT, and my former colleagues at GE R&D Center, Mike Blaha, Bill Premerlani, Fred Eddy, and Bill Lorensen, with whom I wrote the OMT book. Finally, without the patience of my wife, Madeline, and my sons, Nick and Alex, there would have been no UML and no book about it. James Rumbaugh Cupertino, California November 1998
020130998XP04062001
Unified Modeling Language Reference Manual (UML) ANNOTATION
Designed for developers, architects, project managers and systems engineers, this guide and definitive reference aids in the design and construction of large-scale software projects. From the original designers of the Unified Modeling Language, this text reviews UML and discusses the nature and purpose of software models. It certainly a recommended reference. To derive the most benefit from this publication, you should be familiar with UML notation, object-oriented concepts, project modeling or Use Case concepts.
FROM THE PUBLISHER
The Unified Modeling Language (UML) has rapidly become the standard notation for modeling software-intensive systems. This book provides the definitive description of UML from its original developers - James Rumbaugh, Ivar Jacobson, and Grady Booch. Whether you are capturing requirements, developing a software architecture, designing the implementation, or trying to understand an existing system, this is the book for you.
FROM THE CRITICS
Booknews
Written by the original designers of the Unified Modeling Language (UML), this reference provides additional detail about issues that may not be clear from the standards documents, and a rationale for many decisions that went into the UML. Opens with a history of UML, then surveys the views UML supports and shows how the various constructs work together. The majority of the book is an alphabetical encyclopedia of all of the concepts and constructs in UML. A complimentary CD-ROM with the complete UML standards documents can be requested by mail. Annotation c. by Book News, Inc., Portland, Or.
Eduardo Fernandez
More UML Books
Until now, object-oriented projects in the computer industry have
emphasized languages over models; many people believe that
object-oriented programming means using C++ or Java. This is clearly
a misunderstanding. Object-oriented programming is a method of
problem solving, not a language issue; one can write object-oriented
programs in Assembly language and write nonobject-oriented programs
in C++. The key to object-oriented programming is modeling.
Hopefully, the emergence of UML (Unified Modeling Language), as the
OMG (Object Management Group) standard, will help change that
situation. The standardization of modeling notations ends the
confusion produced by a myriad of competing notations, which although
they all had similar semantics, made claims to be unique or better
than the others. While UML may not be perfect, its use as a standard
will make modeling more uniform and better understood.
UML: The Unified Modeling Language User Guide, and The
UML Reference Manual, both by Grady Booch, Jim Rumbaugh, and Ivor
Jacobson, are long-awaited books from the main designers of UML. They
will not disappoint those who waited. These books are excellent
descriptions of what users need to know in order to use UML for
practical applications.
The User Guide is divided into six main sections: "Getting
Started" (three chapters), "Basic Structural Modeling" (five
chapters), "Advanced Structural Modeling" (six chapters ), "Basic
Behavioral Modeling" (five chapters), "Advanced Behavioral Modeling"
(five chapters), and "Architectural Modeling" (seven chapters). The
chapters include every aspect of UML, with examples and detailed
discussions. The material is well organized and each chapter includes
a general description of the concepts and some practical advice on
their use. The examples are carefully chosen and I could not find any
errors. Each chapter also includes a section on reverse engineering,
which should be very valuable for practitioners. Thirty-three pages
of appendices summarize UML and the Rational process (the authors all
work for Rational, Inc.). It also includes a superfluous glossary (it
even has a definition of UML in case you still didn't understand what
it is).
The Reference Manual complements the User Guide by
alphabetically describing in detail each language concept. For each
concept, its notation and semantics are described; in many cases
there is also a discussion section and an example. The coverage is
quite complete (the reference section covers about 400 pages), in
clear and precise language. The book also includes 12 chapters (90
pages) with general aspects of UML. Three appendices describe the UML
metamodel, a notation summary, and process extensions. I'd have liked
to see the explanation of concepts in terms of the metamodel; the
examples are good for understanding, but not very precise.
Overall, these books fulfill their mission very well--they are
authoritative sources of notation, definitions, usage, style, and
general insight into UML. However, don't get any ideas about learning
object-oriented concepts from them because this is not their purpose,
and the books assume you already know this. For some ideas of where
to look for basic concepts see my "Programmer's Bookshelf,"
DDJ, December 1998. The style of both books is clear, although
at times perhaps too simple in an attempt to reach a wide audience,
and at times verbose. There are also repetitions because of the
organization of each chapter or section.
For a method that is the result of many suggestions and somewhat
controversial as a standard, it is surprising that no references are
given in the User Guide and only a few (mostly books) in the
Reference Manual. A more complete set of references would have
helped the reader to see how some of their ideas originated, what
alternatives exist, what is missing, and in general, to provide a
deeper understanding of the language.
I have used books by Rumbaugh and Booch in my classes, and the
high level of their writing shines through these books. Jacobson is
the originator of the concept of Use Cases and his style also shows
here. The authors have incorporated ideas and suggestions from many
sources, but they have been able to keep the core philosophy of their
early work.
The Object Constraint Language: Precise Modeling With UML,
by J. Warner and A. Kloppe, describes the OCL (Object Constraint
Language), a language intended to complement UML and similar
languages with a notation to express constraints precisely. A
constraint is a restriction in some of the values of the model. OCL
originated in IBM and one of the authors works for that company.
In contrast to similar approaches (such as Syntropy, see "Let's
Get Formal," by S. Cook and J. Daniels, Journal of Object-Oriented
Programming, July-August 1994), that use Z or a known formal
language to make UML constraints more precise, OCL is a language
expressly designed for this purpose, attempting to be both formal and
simple. Its supposed simplicity comes from making the notation more
verbose and less symbolic. I have my doubts that this really provides
simplicity: If I know the meaning of "element x belongs to set A"
written symbolically as in Z , seeing it written as "x belongs to A"
doesn't make it simpler; if I don't know its meaning, the words don't
help.
The book illustrates most of the concepts with a small, clear
example. I'd have liked to see a more complex example, similar to the
ones described by Cook and Daniels, to appreciate whether it is
really simpler than Z. This is a slim book, 86 pages of material, and
the rest includes two appendices, a concise reference manual for OCL,
and a description of its formal grammar. A short but well chosen set
of references ends this book. In spite of my doubts, I like the
attempt to make software more rigorous. We need that for the complex
software systems of the future.
In summary, UML: The Unified Modeling Language User Guide
and The UML Reference Manual are must-have books for any
development group and each developer should at least have the User
Guide. The Object Constraint Language: Precise Modeling With UML
is highly recommended. I'd like to see programmers increasing the
precision of their analysis models.
UML is a notation to produce models, and its variety of diagrams
is not easy to handle in a complex project. A process book by the
three authors of the User Guide is due to appear shortly and
will describe how to use these models along the development
lifecycle.--Dr. Dobb's Electronic Review of Computer Books
AUTHOR DESCRIPTION
Dr. James Rumbaugh is one of the leading object-oriented methodologists. He is the chief developer of the Object Modeling Technique (OMT) and the lead author of the best-selling book Object-Oriented Modeling and Design. Before joining Rational Software Corporation in October 1994, he worked for more than 25 years at General Electric Research and Development Center in Schenectady, New York.
He has been working on object-oriented methodology and tools for many years. He developed the DSM object-oriented programming language, the state tree model of control, the OMT object modeling notation, and the Object Modeling Tool graphic editor. The foundations for the OMT notation were developed more than 10 years ago with Mary Loomis and Ashwin Shah of Calma Corporation. The OMT methodology was developed at GE R&D Center with coauthors Mike Blaha, Bill Premerlani, Fred Eddy, and Bill Lorensen.
Dr. Ivar Jacobson, Vice President of Business Engineering, is the inventor of the OOSE method, and he is also the founder of Objectory AB in Sweden, which recently merged with Rational Software Corporation. Dr. Jacobson is the principal author of two influential and best-selling books Object-Oriented Software Engineering--A Use Case Driven Approach (Computer Language Productivity award winner in 1992) and The Object Advantage--Business Process Reengineering with Object Technology. He has also authoredseveral widely referenced papers on object technology. One of the most famous papers is his first OOPSLA '87 paper entitled "Object-Oriented Development in an Industrial Environment," which presented the first truly object-oriented method ever published.
Ivar Jacobson's use-case driven approach has had a very strong impact on the entire OOAD industry, and he himself has become one of its "icons." Consequently, he is a frequently invited keynote speaker and panelist, debating OOAD topics with colleagues and methodologists such as Grady Booch, Jim Rumbaugh, Steven Mellor, and Rebecca Wirfs-Brock at major OO conferences around the world.
Grady Booch, is the Chief Scientist at Rational Software Corporation and developer of the Booch Method of object-oriented analysis and design. He is also co-developer of the Unified Modeling Language (UML). Widely recognized for these and many contributions in the field, he is a popular speaker at technology conferences around the world. Booch has twice received Software Development magazine's coveted Jolt-Cola Product Excellence Award for his seminal text, Object-Oriented Analysis and Design with Applications.
ACCREDITATION
Dr. James Rumbaugh is one of the leading object-oriented methodologists. He is the chief developer of the Object Modeling Technique (OMT) and the lead author of the best-selling book Object-Oriented Modeling and Design. Before joining Rational Software Corporation in October 1994, he worked for more than 25 years at General Electric Research and Development Center in Schenectady, New York.
He has been working on object-oriented methodology and tools for many years. He developed the DSM object-oriented programming language, the state tree model of control, the OMT object modeling notation, and the Object Modeling Tool graphic editor. The foundations for the OMT notation were developed more than 10 years ago with Mary Loomis and Ashwin Shah of Calma Corporation. The OMT methodology was developed at GE R&D Center with coauthors Mike Blaha, Bill Premerlani, Fred Eddy, and Bill Lorensen.
Dr. Rumbaugh received his Ph.D. in computer science from MIT. During his Ph.D. research under Professor Jack Dennis, Dr. Rumbaugh was one of the inventors of data flow computer architecture. His career has dealt with semantics of computation, tools for programming productivity, and applications using complex algorithms and data structures. Dr. Rumbaugh has published journal articles on his work and has spoken at leading object-oriented conferences. He writes a regular column for the Journal of Object-Oriented Programming.
Dr. Rumbaugh is the lead author of the recent best-selling book Object-Oriented Modeling and Design, published by Prentice Hall. His latest book, OMT Insights: Perspectives on Modeling from the Journalof Object-Oriented Programming, was released in October 1996. He and his colleagues developed the OMT methodology described in the book based on real-world applications at GE, and they have worked to extend the original methodology. He has taught courses based on the methodology to different audiences around the world, ranging from one-hour seminars to intensive several-day training courses.
He has a B.S. in physics from MIT, an M.S. in astronomy from Caltech, and a Ph.D. in computer science from MIT.
During his career at GE, he worked on a variety of problems, including the design of one of the first time-sharing operating systems, early work in interactive graphics, algorithms for computed tomography, use of parallel machines for fast image generation, VLSI chip design, and finally, object-oriented technology.
Jim developed OMTool, an interactive graphical editor for manipulation of object model diagrams. The editor is commercially available. In addition, he led a five-year programming effort producing production-quality software.
In addition, Jim was the manager of the Software Engineering Program at GE, where he led a team of eight to ten Ph.D. and M.S. scientists performing research in software engineering in the areas of algorithm development, programming languages, program proving, and VLSI computer-aided design. In addition, he performed personal research.
Jim developed Chipwright, an interactive graphical CAD system for VLSI layout with incremental design rule checking. He also led a team of four programmers in implementation.
Jim developed and implemented the object-oriented language DSM, combining object-oriented concepts with database concepts and distributed it within GE for use on production applications. The language was heavily used at Calma Corporation and was extensively extended based on user feedback with a preliminary version.
Jim also developed Vista, a hierarchical interactive standard graphics system (similar to the PHIGS system) written in the object-oriented DSM language. He implemented user-interface applications based on this system, including a configuration-management tool and a user-interface generation tool.
Jim developed the concept of state trees, a structured extension of finite state machines incorporating a new model of object-oriented control. He applied it to the design of user interfaces, and the technique was used as a main aspect of the CHIDE user-interface system developed by colleagues at GE-CRD. Later, it was used in the OMTool object editor.
Jim also developed the Flow Graph System, a generic interactive graphic system for controlling a network of design engineering jobs, including management of multiple versions of data and coordination of information flow among applications. He received a patent on the underlying concepts.
In addition, Jim developed algorithms for the reconstruction of images for computerized tomography using fewer input points and with reduced noise in the reconstructed images. He also developed algorithms for display of three-dimensional images in real time using array processors, and he developed Parallax, a language for programming pipelined array processors.
Jim has served on various committees, including the OOPSLA Program Committee and the TOOLS Program Committee.
Dr. Ivar Jacobson,Vice President of Business Engineering, is the inventor of the OOSE method, and he is also the founder of Objectory AB in Sweden, which recently merged with Rational Software Corporation. Dr. Jacobson is the principal author of two influential and best-selling books Object-Oriented Software EngineeringA Use Case Driven Approach (Computer Language Productivity award winner in 1992) and The Object AdvantageBusiness Process Reengineering with Object Technology. He has also authored several widely referenced papers on object technology. One of the most famous papers is his first OOPSLA '87 paper entitled "Object-Oriented Development in an Industrial Environment," which presented the first truly object-oriented method ever published. Ivar Jacobson's use-case driven approachhas had a very strong impact on the entireOOAD industry, and he himself has become one of its "icons." Consequently, he isa frequently invited keynote speaker and panelist, debating OOAD topics withcolleagues and methodologists such as Grady Booch, Jim Rumbaugh, StevenMellor, and Rebecca Wirfs-Brock at major OO conferences around the world.
He is well known for his pioneering work and more than 20 years of experience inusing object methods for the design of large real-time systems. His earlyobject-based design technique has evolved into the international standardITU(formerly CCITT)/SDL.
Dr. Jacobson also regularly serves on the OOPSLA, ECOOP, and TOOLSprogram committees, and he is a member of the advisory board of the Journal ofObject-Oriented Programming.
In 1994, Ivar Jacobson received the first Swedish Computer Association (SCA)award (the Kjell Hultman prize) for "extraordinary achievement in promotingefficiency and productivity in the development and use of informationtechnology."
Grady Booch, is the Chief Scientist at Rational Software Corporation and developer of the Booch Method of object-oriented analysis and design. He is also co-developer of the Unified Modeling Language (UML). Widely recognized for these and many contributions in the field, he is a popular speaker at technology conferences around the world. Booch has twice received Software Development magazine's coveted Jolt-Cola Product Excellence Award for his seminal text, Object-Oriented Analysis and Design with Applications.