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
From Book News, Inc.
A tutorial to the core aspects of the UML by the language's original developers. Begins with a conceptual model of the UML and then progressively applies the UML to a series of increasingly complex modeling problems across a variety of application domains. Covers structural modeling, behavioral modeling, and architectural modeling. Also includes a learning track focused on applying the UML to advanced modeling systems for more advanced developers. Appends information on UML notation, standard elements, and rational unified processes. Book News, Inc.®, Portland, OR
Book Info
Provides anyone involved in the production, deployment, & maintenance of software with a standard notation for expressing a system's blueprint. Provides a tutorial to the core aspects of the language in a 2-color format designed to facilitate learning. DLC: Computer software Development.
Card catalog description
In The Unified Modeling Language User Guide, the original developers of the UML - Grady Booch, James Rumbaugh, and Ivar Jacobson - provide a tutorial to the core aspects of the language in a two-color format designed to facilitate learning. Starting with a conceptual model of the UML, the book progressively applies the UML to a series of increasingly complex modeling problems across a variety of application domains. This example-driven approach helps readers quickly understand and apply the UML. For more advanced developers, the book includes a learning track focused on applying the UML to advanced modeling problems.
Unified Modeling Language User Guide ANNOTATION
From the developers of UML, this tutorial reviews the core aspects of the language used to specify construct, visualize and document software-intensive systems. The authors begin with a conceptual model and progressively apply UML to increasingly complex models for a variety of applications. To derive the most benefit from this publication, you should be familiar with software engineering concepts and object-oriented modeling. After all, the author's intent is to teach you how to use UML effectively, not to go through the entire development process, or provide a reference for UML. Other publications listed below address those important issues.
FROM THE PUBLISHER
Introduced in 1997, the Unified Modeling Language (UML) has rapidly been accepted throughout the software industry as the standard graphical language for specifying, constructing, visualizing, and documenting software-intensive systems. The UML provides anyone involved in the production, deployment, and maintenance of software with a standard notation for expressing a system's blueprint. The UML covers conceptual things, such as business processes and system functions, as well as concrete things, such as programming-language classes, database schemas, and reusable software components. In The Unified Modeling Language User Guide, the original developers of the UML-Grady Booch, James Rumbaugh, and Ivar Jacobson-provide a tutorial to the core aspects of the language in a two-color format designed to facilitate learning. Starting with a conceptual model of the UML, the book progressively applies the UML to a series of increasingly complex modeling problems across a variety of application domains. This example-driven approach helps readers quickly understand and apply the UML. For more advanced developers, the book includes a learning track focused on applying the UML to advanced modeling problems.
With The Unified Modeling Language User Guide, readers will:
understand what the UML is, what it is not, and why it is relevant to the development of software-intensive systems
master the vocabulary, rules, and idioms of the UML in order to "speak" the language effectively
learn how to apply the UML to a number of common modeling problems
see illustrations of the UML's use interspersed with use cases for specific UML features
gain insight into the UML from the original creators of the UML
SYNOPSIS
The Unitied Modeling Language User Guide, is the first of two UML works
written by the creators of UML. This book will introduce the core 80 percent of UML, approaching it in a layered fashion and providing numerous examples of it s application. The title is suitable for developers unfamiliar with UML or with modeling in general.
FROM THE CRITICS
Booknews
A tutorial to the core aspects of the UML by the language's original developers. Begins with a conceptual model of the UML and then progressively applies the UML to a series of increasingly complex modeling problems across a variety of application domains. Covers structural modeling, behavioral modeling, and architectural modeling. Also includes a learning track focused on applying the UML to advanced modeling systems for more advanced developers. Appends information on UML notation, standard elements, and rational unified processes. 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
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
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.
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. Hiscareer 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.
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 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."