|
There is a newer edition of this item:
|
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
The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. The UML gives you a standard way to write a system's blueprints, covering conceptual things, such as business processes and system functions, as well as concrete things, such as classes written in a specific programming language, database schemas, and reusable software components.
This book teaches you how to use the UML effectively. Goals
In this book, you will
Learn what the UML is, what it is not, and why the UML is relevant to the process of developing software-intensive systems Master the vocabulary, rules, and idioms of the UML and, in general, learn how to "speak" the language effectively Understand how to apply the UML to solve a number of common modeling problems
The user guide provides a reference to the use of specific UML features. However, it is not intended to be a comprehensive reference manual for the UML; that is the focus of another book, The Unified Modeling Language Reference Manual (Rumbaugh, Jacobson, Booch, Addison-Wesley, 1999).
The user guide describes a development process for use with the UML. However, it is not intended to provide a complete reference to that process; that is the focus of yet another book, The Unified Software Development Process (Jacobson, Booch, Rumbaugh, Addison-Wesley, 1999).
Finally, this book provides hints and tips for using the UML to solve a number of common modeling problems, but it does not teach you how to model. This is similar to a user guide for a programming language that teaches you how to use the language but does not teach you how to program. Audience
The UML is applicable to anyone involved in the production, deployment, and maintenance of software. The user guide is primarily directed to members of the development team who create UML models. However, it is also suitable to those who read them, working together to understand, build, test, and release a software-intensive system. Although this encompasses almost every role in a software development organization, the user guide is especially relevant to analysts and end users (who specify the required structure and behavior of a system), architects (who design systems that satisfy those requirements), developers (who turn those architectures into executable code), quality assurance personnel (who verify and validate the system's structure and behavior), librarians (who create and catalogue components), and project and program managers (who generally wrestle with chaos, provide leadership and direction, and orchestrate the resources necessary to deliver a successful system).
The user guide assumes a basic knowledge of object-oriented concepts. Experience in an object-oriented programming language or method is helpful but not required. How to Use This Book
For the developer approaching the UML for the first time, the user guide is best read linearly. You should pay particular attention to Chapter 2, which presents a conceptual model of the UML. All chapters are structured so that each builds upon the content of the previous one, thus lending itself to a linear progression.
For the experienced developer seeking answers to common modeling problems using the UML, this book can be read in any order. You should pay particular attention to the common modeling problems presented in each chapter. Organization and Special Features
The user guide is organized into seven major sections:
Section 1 Getting Started Section 2 Basic Structural Modeling Section 3 Advanced Structural Modeling Section 4 Basic Behavioral Modeling Section 5 Advanced Behavioral Modeling Section 6 Architectural Modeling Section 7 Wrapping Up
The user guide contains three appendices: a summary of the UML notation, a list of standard UML elements, and a summary of the Rational Unified Process. A glossary of common terms is also provided.
Each chapter addresses the use of a specific UML feature, and most are organized into the following four sections:
Getting Started Terms and Concepts Common Modeling Techniques Hints and Tips
The third section introduces and then solves a set of common modeling problems. To make it easy for you to browse the guide in search of these use cases for the UML, each problem is identified by a distinct heading.
Each chapter begins with a summary of the features it covers, as in the following example.
In this chapter
Active objects, processes, and threads Modeling multiple flows of control Modeling interprocess communication Building thread-safe abstractions
Similarly, parenthetical comments and general guidance are set apart as notes, as in the following example. Note: You can specify more complex multiplicities by using a list, such as 0..1, 3..4, 6..*, which would mean "any number of objects other than 2 or 5."
The UML is semantically rich. Therefore, a presentation about one feature may naturally involve another. In such cases, cross references are provided in the left margin. Blue highlights are used in figures to distinguish text that explains a model from text that is part of the model itself. Code is distinguished by displaying it in a monospace font, as in this example. A Brief History of the UML
Object-oriented modeling languages appeared sometime between the mid 1970s and the late 1980s as methodologists, faced with a new genre of object-oriented programming languages and increasingly complex applications, began to experiment with alternative approaches to analysis and design. The number of object-oriented methods increased from fewer than 10 to more than 50 during the period between 1989 and 1994. Many users of these methods had trouble finding a modeling language that met their needs completely, thus fueling the so-called method wars. Learning from experience, new generations of these methods began to appear, with a few clearly prominent methods emerging, most notably Booch, Jacobson's OOSE (Object-Oriented Software Engineering), and Rumbaugh's OMT (Object Modeling Technique). Other important methods included Fusion, Shlaer-Mellor, and Coad-Yourdon. Each of these was a complete method, although each was recognized as having strengths and weaknesses. In simple terms, the Booch method was particularly expressive during the design and construction phases of projects, OOSE provided excellent support for use cases as a way to drive requirements capture, analysis, and high-level design, and OMT-2 was most useful for analysis and data-intensive information systems.
A critical mass of ideas started to form by the mid 1990s, when Grady Booch (Rational Software Corporation), Ivar Jacobson (Objectory), and James Rumbaugh (General Electric) began to adopt ideas from each other's methods, which collectively were becoming recognized as the leading object-oriented methods worldwide. As the primary authors of the Booch, OOSE, and OMT methods, we were motivated to create a unified modeling language for three reasons. First, our methods were already evolving toward each other independently. It made sense to continue that evolution together rather than apart, eliminating the potential for any unnecessary and gratuitous differences that would further confuse users. Second, by unifying our methods, we could bring some stability to the object-oriented marketplace, allowing projects to settle on one mature modeling language and letting tool builders focus on delivering more useful features. Third, we expected that our collaboration would yield improvements for all three earlier methods, helping us to capture lessons learned and to address problems that none of our methods previously handled well.
As we began our unification, we established three goals for our work:
To model systems, from concept to executable artifact, using object- oriented techniques To address the issues of scale inherent in complex, mission-critical systems To create a modeling language usable by both humans and machines
Devising a language for use in object-oriented analysis and design is not unlike designing a programming language. First, we had to constrain the problem: Should the language encompass requirements specification? Should the language be sufficient to permit visual programming? Second, we had to strike a balance between expressiveness and simplicity. Too simple a language would limit the breadth of problems that could be solved; too complex a language would overwhelm the mortal developer. In the case of unifying existing methods, we also had to be sensitive to the installed base. Make too many changes, and we would confuse existing users; resist advancing the language, and we would miss the opportunity of engaging a much broader set of users and of making the language simpler. The UML definition strives to make the best trade-offs in each of these areas.
The UML effort started officially in October 1994, when Rumbaugh joined Booch at Rational. Our project's initial focus was the unification of the Booch and OMT methods. The version 0.8 draft of the Uni
Product Details
Would you like to update product info or give feedback on images?
|
|
Share your thoughts with other customers:
|
||||||||||||||||||||||
|
Most Helpful Customer Reviews
31 of 32 people found the following review helpful:
4.0 out of 5 stars
Ideal for the interested novice,
This review is from: The Unified Modeling Language User Guide (Addison-Wesley Object Technology Series) (Hardcover)
"The Unified Modeling Language User Guide" really starts from the beginning. Apparently the reader is assumed to be totally unfamiliar with object oriented design. The book starts with the very basics, and explains a reasonably complete set of UML. The really advanced and esoteric features are not explained. Each chapter is written like a good lecture. It starts from the very beginning assuming no previous knowledge of OO. Then one aspect of UML is carefully explained. Every chapter ends with some concluding remarks and "hints and tips". This organization is mostly good, but it adds a lot of repetition to the book. The language is smooth and easy to read. It might still be a struggle to get read the book simply because of the amount of text (and repetition). I would recommend this book to the interested novice. However, if you are reasonably familiar with UML, or if you have a solid foundation in object oriented programming, then I would recommend you the combination of "UML Distilled" by Martin Fowler and "The Unified Modeling Language Reference Manual" by James Rumbaugh et.al.
35 of 37 people found the following review helpful:
3.0 out of 5 stars
Not good enough; poor organization, no good examples,
By Dave O'Hearn (Boston, MA United States) - See all my reviews
This review is from: The Unified Modeling Language User Guide (Addison-Wesley Object Technology Series) (Hardcover)
If this were the only UML book in existence, it would deserve 5 stars. It contains a lot of information and a nearly comprehensive list of language features without the dry tone of a reference. But there are better books on the market and this is not the one to spend your $45 on. If you want a comprehensive reference, get the UML reference. If you want an introduction, get UML Distilled.I purchased this text because the introduction to UML Distilled said that this book would be better if you wanted a really in depth understanding of the UML. Unfortunately, it does not fulfill this role. While it succeeds in catelogging nearly all the features of UML, it has no unified examples. Indeed, all the examples are next to trivial. The book is not worthless. I read it and worked through some examples from my own experience, and I'm pretty comfortable with UML now. But good examples are something a text like this should provide. To really see the UML in action, I'm going to have to buy another book. I'll keep this one as a reference, but that isn't the purpose it was designed for.
18 of 18 people found the following review helpful:
5.0 out of 5 stars
For Serious Software Developers Only,
By Jason Dinger (Colorado Springs, CO) - See all my reviews
This review is from: The Unified Modeling Language User Guide (Addison-Wesley Object Technology Series) (Hardcover)
This book is by far one of the best textbooks I have ever read. It has a clear, consistent organization of each chapter throughout the book. I really enjoyed the books iterative format in which concepts and terminology were briefly introduced, and then brought up time and again to build on earlier lessons. It is a great way to learn because the overall picture is given from the beginning and then expanded upon throughout the book.Another plus to this book is the many mini-tutorials on how to apply the UML to real world problems. I would definitely recommend this book to anyone who is serious about becoming a better software developer.
Share your thoughts with other customers: Create your own review
|
|
Tags Customers Associate with This Product(What's this?)Click on a tag to find related items, discussions, and people.
|
|
This product's forum
Active discussions in related forums
Search Customer Discussions
|
Related forums
|