Learning UML

Front Cover
"O'Reilly Media, Inc.", 2003 - Computers - 234 pages
2 Reviews

Since the dawn of computing, software designers and developers have searched for ways to describe the systems they worked so hard to create. Flowcharts enabled the concise documentation of program-flow and algorithms. Entity-relationship diagrams enabled database designers to convey the structure underlying the collection of tables and columns that made up a schema. From the beginning, technologists recognized the descriptive power inherent in visual representations of a system, yet it wasn't until 1997 that the first attempt to create a visual language that could be used across all aspects of a system development project came to fruition. Unified Modeling Language (UML) was born.

UML has taken the software development industry by storm. Widely supported by development and documentation tools, UML can be used on the one hand by programmers to record such things as the detailed design of classes in an object-oriented system and on the other hand by business analysts to give the broad-brush picture of how a system interacts with users and other systems. UML has become the lingua franca of software development, and no one in the software industry can afford to be without knowledge of this powerfully expressive visual language.

Learning UML introduces UML and places it in perspective, then leads you through an orderly progress towards mastery of the language. You'll begin by learning how UML is used to model the structure of a system. Many key UML concepts, especially that of the general (classes) versus the specific (objects), are illustrated in the chapter on class and object diagrams. Next, you'll learn how to use use-case diagrams to model the functionality of a system. Finally, you'll see how component and deployment diagrams are used to model the way in which a system is deployed in a physical environment.

Structural modeling answers the "who" and "what" questions of systems development. Behavioral modeling addresses the questions of "when," "how," and "why." You'll learn how to use sequence and collaboration, to model the interaction over time between system components, how to use state diagrams to describe the life cycle of system components, and how to use activity diagrams to document control-flow and responsibility.

Throughout this book, author Sinan Si Alhir maintains a clear focus on UML the language and avoids getting caught up in the cobwebs of methodology. His presentation is direct and to-the-point. Each chapter ends with a set of exercises that you can use to test your growing knowledge of UML and its concepts. As you work your way through the book, you'll find yourself warming up to the simple yet expressive language that is UML, and using it to communicate effectively and professionally about all aspects of system design.

  

What people are saying - Write a review

User Review - Flag as inappropriate

It's good to see another nuts-and-bolts UML book in the O'Reilly series. The content is presented in an orderly way and the style will appeal to newcomers to UML. However, I wasn't wholly convinced about the authority with which UML 2.x was understood or put forward. UML 2.x is very different from UML 1.x, in particular the way in which object semantics have changed in some diagrams (c.f. the difference between formal and actual arguments). I noticed one common misunderstanding in the introduction to object-orientation: defining polymorphism as the ability of different classes to provide their own methods, selected at runtime. This isn't polymorphism, but dynamic binding. Polymorphism is the admission of flexible typing into a language's type system. 

Selected pages

Contents

What Is the UML?
4
The UML and Process
8
Learning the UML
13
ObjectOriented Modeling
15
Alphabets Words and Sentences
16
The ObjectOriented Paradigm
19
Paragraphs
26
Sections
39
Sequence and Collaboration Diagrams
121
Roles
122
Messages and Stimuli
128
Sequence Diagrams
129
Collaboration Diagrams
138
Exercises
143
State Diagrams
147
Transitions
149

Documents
40
Structural Modeling
41
Class and Object Diagrams
43
Classes and Objects
44
Associations and Links
55
Types Implementation Classes and Interfaces
69
Generalizations Realizations and Dependencies
72
Packages and Subsystems
79
Exercises
86
UseCase Diagrams
91
Actors
92
Use Cases
94
Communicate Associations
96
Dependencies
98
Generalizations
102
Exercises
106
Component and Deployment Diagrams
108
Nodes
110
Dependencies
112
Communication Associations
116
Exercises
117
Behavioral Modeling
119
Advanced State Diagrams
152
Exercises
154
Activity Diagrams
156
Flow Transitions
157
Swimlanes
160
Decisions
161
Concurrency
162
Beyond the Unified Modeling Language
165
Extension Mechanisms
167
Stereotypes
169
Properties
171
Profiles
173
Exercises
175
The Object Constraint Language
177
Simple Constraints
180
Complex Constraints
184
Exercises
187
Appendixes
189
References
191
Exercise Solutions
193
Index
225
Copyright

Common terms and phrases

References to this book

About the author (2003)

Alhir is a practitioner (consultant, conference/public speaker, and published author) as well as an IT Project Management Certified Professional and e-Business Certified Professional.

Bibliographic information