Summary
From the creators of the UML, a long-awaited revision of the best-seller and definitive manual to optimizing use of the UML.
Author Biography
Grady Booch, James Rumbaugh, and Ivar Jacobson are the original designers of the Unified Modeling Language and three of the most widely known names in the field of software engineering. Accomplished authors, they are recognized worldwide for many significant contributions to the development of object technology, including the Booch Method, the Object Modeling Technique (OMT), and the Objectory (OOSE) Process. Booch and Rumbaugh work at IBM, and Jacobson is an independent consultant.
Table of Contents
| Preface |
|
xiii | |
| Part 1 Getting Started |
|
1 | (44) |
|
|
|
3 | (10) |
|
The Importance of Modeling |
|
|
4 | (4) |
|
|
|
8 | (2) |
|
|
|
10 | (3) |
|
Chapter 2 Introducing the UML |
|
|
13 | (24) |
|
|
|
14 | (3) |
|
A Conceptual Model of the UML |
|
|
17 | (15) |
|
|
|
32 | (2) |
|
Software Development Life Cycle |
|
|
34 | (3) |
|
|
|
37 | (8) |
|
|
|
38 | (3) |
|
|
|
41 | (2) |
|
|
|
43 | (2) |
| Part 2 Basic Structural Modeling |
|
45 | (70) |
|
|
|
47 | (14) |
|
|
|
47 | (2) |
|
|
|
49 | (5) |
|
Common Modeling Techniques |
|
|
54 | (5) |
|
|
|
59 | (2) |
|
|
|
61 | (14) |
|
|
|
62 | (1) |
|
|
|
63 | (6) |
|
Common Modeling Techniques |
|
|
69 | (5) |
|
|
|
74 | (1) |
|
Chapter 6 Common Mechanisms |
|
|
75 | (14) |
|
|
|
76 | (1) |
|
|
|
77 | (7) |
|
Common Modeling Techniques |
|
|
84 | (4) |
|
|
|
88 | (1) |
|
|
|
89 | (14) |
|
|
|
90 | (1) |
|
|
|
91 | (5) |
|
Common Modeling Techniques |
|
|
96 | (5) |
|
|
|
101 | (2) |
|
|
|
103 | (12) |
|
|
|
103 | (2) |
|
|
|
105 | (1) |
|
Common Modeling Techniques |
|
|
106 | (7) |
|
|
|
113 | (2) |
| Part 3 Advanced Structural Modeling |
|
115 | (92) |
|
Chapter 9 Advanced Classes |
|
|
117 | (16) |
|
|
|
117 | (1) |
|
|
|
118 | (12) |
|
Common Modeling Techniques |
|
|
130 | (1) |
|
|
|
131 | (2) |
|
Chapter 10 Advanced Relationships |
|
|
133 | (18) |
|
|
|
134 | (1) |
|
|
|
135 | (13) |
|
Common Modeling Techniques |
|
|
148 | (1) |
|
|
|
149 | (2) |
|
Chapter 11 Interfaces, Types, and Roles |
|
|
151 | (12) |
|
|
|
151 | (2) |
|
|
|
153 | (4) |
|
Common Modeling Techniques |
|
|
157 | (4) |
|
|
|
161 | (2) |
|
|
|
163 | (12) |
|
|
|
164 | (1) |
|
|
|
165 | (5) |
|
Common Modeling Techniques |
|
|
170 | (4) |
|
|
|
174 | (1) |
|
|
|
175 | (10) |
|
|
|
175 | (1) |
|
|
|
176 | (6) |
|
Common Modeling Techniques |
|
|
182 | (1) |
|
|
|
183 | (2) |
|
Chapter 14 Object Diagrams |
|
|
185 | (8) |
|
|
|
185 | (2) |
|
|
|
187 | (1) |
|
Common Modeling Techniques |
|
|
188 | (3) |
|
|
|
191 | (2) |
|
|
|
193 | (14) |
|
|
|
193 | (1) |
|
|
|
194 | (9) |
|
Common Modeling Techniques |
|
|
203 | (3) |
|
|
|
206 | (1) |
| Part 4 Basic Behavioral Modeling |
|
207 | (78) |
|
|
|
209 | (16) |
|
|
|
210 | (1) |
|
|
|
211 | (10) |
|
Common Modeling Techniques |
|
|
221 | (1) |
|
|
|
222 | (3) |
|
|
|
225 | (14) |
|
|
|
225 | (3) |
|
|
|
228 | (8) |
|
Common Modeling Techniques |
|
|
236 | (1) |
|
|
|
237 | (2) |
|
Chapter 18 Use Case Diagrams |
|
|
239 | (10) |
|
|
|
239 | (2) |
|
|
|
241 | (1) |
|
Common Modeling Techniques |
|
|
242 | (6) |
|
|
|
248 | (1) |
|
Chapter 19 Interaction Diagrams |
|
|
249 | (18) |
|
|
|
250 | (1) |
|
|
|
251 | (10) |
|
Common Modeling Techniques |
|
|
261 | (4) |
|
|
|
265 | (2) |
|
Chapter 20 Activity Diagrams |
|
|
267 | (18) |
|
|
|
268 | (1) |
|
|
|
269 | (11) |
|
Common Modeling Techniques |
|
|
280 | (4) |
|
|
|
284 | (1) |
| Part 5 Advanced Behavioral Modeling |
|
285 | (64) |
|
Chapter 21 Events and Signals |
|
|
287 | (10) |
|
|
|
287 | (1) |
|
|
|
288 | (5) |
|
Common Modeling Techniques |
|
|
293 | (3) |
|
|
|
296 | (1) |
|
Chapter 22 State Machines |
|
|
297 | (22) |
|
|
|
298 | (2) |
|
|
|
300 | (15) |
|
Common Modeling Techniques |
|
|
315 | (3) |
|
|
|
318 | (1) |
|
Chapter 23 Processes and Threads |
|
|
319 | (12) |
|
|
|
320 | (1) |
|
|
|
321 | (5) |
|
Common Modeling Techniques |
|
|
326 | (4) |
|
|
|
330 | (1) |
|
Chapter 24 Time and Space |
|
|
331 | (8) |
|
|
|
331 | (1) |
|
|
|
332 | (3) |
|
Common Modeling Techniques |
|
|
335 | (3) |
|
|
|
338 | (1) |
|
Chapter 25 State Diagrams |
|
|
339 | (10) |
|
|
|
340 | (1) |
|
|
|
341 | (2) |
|
Common Modeling Techniques |
|
|
343 | (4) |
|
|
|
347 | (2) |
| Part 6 Architectural Modeling |
|
349 | (82) |
|
|
|
351 | (10) |
|
|
|
351 | (1) |
|
|
|
352 | (3) |
|
Common Modeling Techniques |
|
|
355 | (5) |
|
|
|
360 | (1) |
|
|
|
361 | (8) |
|
|
|
361 | (1) |
|
|
|
362 | (4) |
|
Common Modeling Techniques |
|
|
366 | (2) |
|
|
|
368 | (1) |
|
Chapter 28 Collaborations |
|
|
369 | (14) |
|
|
|
369 | (2) |
|
|
|
371 | (5) |
|
Common Modeling Techniques |
|
|
376 | (6) |
|
|
|
382 | (1) |
|
Chapter 29 Patterns and Frameworks |
|
|
383 | (12) |
|
|
|
383 | (2) |
|
|
|
385 | (4) |
|
Common Modeling Techniques |
|
|
389 | (5) |
|
|
|
394 | (1) |
|
Chapter 30 Artifact Diagrams |
|
|
395 | (14) |
|
|
|
395 | (1) |
|
|
|
396 | (2) |
|
Common Modeling Techniques |
|
|
398 | (9) |
|
|
|
407 | (2) |
|
Chapter 31 Deployment Diagrams |
|
|
409 | (12) |
|
|
|
409 | (2) |
|
|
|
411 | (2) |
|
Common Modeling Techniques |
|
|
413 | (6) |
|
|
|
419 | (2) |
|
Chapter 32 Systems and Models |
|
|
421 | (10) |
|
|
|
421 | (2) |
|
|
|
423 | (3) |
|
Common Modeling Techniques |
|
|
426 | (2) |
|
|
|
428 | (3) |
| Part 7 Wrapping Up |
|
431 | (6) |
|
Chapter 33 Applying the UML |
|
|
433 | (4) |
|
|
|
433 | (2) |
|
|
|
435 | (2) |
| Appendix A UML Notation |
|
437 | (6) |
| Appendix B Rational Unified Process |
|
443 | (8) |
| Glossary |
|
451 | (12) |
| Index |
|
463 | |
Excerpts
The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. The UML gives you a standard way to write a system's blueprints, covering conceptual things such as business processes and system functions, as well as concrete things such as classes written in a specific programming language, database schemas, and reusable software components. This book teaches you how to use the UML effectively. This book covers UML version 2.0. 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, Second Edition(Rumbaugh, Jacobson, Booch, Addison-Wesley, 2005).The user guide describes a development process for use with the UML. However, it is not intended to provide a complete reference to that process; that is the focus of yet another book,The Unified Software Development Process(Jacobson, Booch, Rumbaugh, Addison-Wesley, 1999). Finally, this book provides hints and tips for using the UML to solve a number of common modeling problems, but it does not teach you how to model. This is similar to a user guide for a programming language that teaches you how to use the language but does not teach you how to program. 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 forming a linear progression.For the experienced developer seeking answers to common modeling problems using the UML, this book can be read in any order. You should pay particular attention to the common modeling problems presented in each chapter. Organization and Special Features The user guide is organized into seven parts: Part 1Getting Started Part 2Basic Structural Modeling Part 3Advanced Structural Modeling Part 4Basic Behavioral Modeling Part 5Advanced Behavioral Modeling Part 6Architectural Modeling Part 7Wrapping Up The user guide contains two appendices: a summary of t