UML: Unified Modeling
Language
Story:
What UML is for
Some of the main diagrams are and what you
use them for
Class diagrams and class forms Use Case Diagrams
Sequence (Event) Diagram State Diagrams
UML: Unified Modeling
Language
Developed by the “Three Amigos”: Grady
Booch, Jim Rumbaugh, Ivar Jacobson
Each had their own development methodology More or less emphasis on notation and process
UML is a notation and a process
Diagrams and notation from UML 1.3 Definition
Diagrams
Class diagrams: Represents static structure Use case diagrams: Sequence of actions a
system performs to yield an observable result to an actor
Sequence diagrams:Shows how groups of
objects interact in some behavior
State diagrams: Describes behavior of
Class Diagrams
Better name: “Static structure diagram”
Doesn’t describe temporal aspects
Doesn’t describe individual objects: Only the overall
structure of the system
There are “object diagrams” where the boxes represent instances
But rarely used—other diagrams serve the role of
describing object interaction better
When used, object diagrams describe static
Notation in Class Boxes
Abstract classes (and operations) in italics + is public, - is private, # is protected
Can also specify stereotypes or
compartments
“constructors” or “query”
Other variations in Class
specifications
Use of
templates,
interfaces, and types
Can even
Components of Class
Diagrams
Multiplicities
How many of
each?
Labels to
indicate how reference is viewed
Role and
Navigability and
Aggregations
Navigability
Who owns/contains/has who? Arrows not strictly required
Aggregation: Open diamond
“Part-of” relationship, but disagreement
Composition:
closed diamond
Part can only
Qualifiers
Serves to describe an instance variable
Use Case Diagrams
Means of capturing requirements
Document interactions between user(s)
and the system
User (actor) is not part of the system itself But an actor can be another system
An individual use case represents a task to
Simple Use Case Diagram
Reserve book
Reserve book
Borrow book
Borrow book
Return book
Use Cases
Are actually defined as text, including
descriptions of all of the normal and exception behavior expected
Do not reveal the structure of the system Collectively define the boundaries of the
system to be implemented
Provide the basis for defining
Sequence (Event) Diagrams
Shows individual objects and how they
interact
Describes
Lifelines of objects
Who sends what messages when
Can also describe sending messages to self
("self-delegation")
State Diagrams
Describe all the possible states a
particular object can get into, and the events that lead to those changes
Other Kinds of UML Diagrams
Collaboration Diagrams
An alternative to sequence diagrams for
Other kinds of UML Diagrams
Activity Diagrams
Alternative to
Other kinds of UML Diagrams
Implementation
Diagrams
Down at the detail
level
What piece of code
goes where?
How are they
UML in Real Practice
You don't typically use all the diagrams
You'll choose between them based on preference and
particular situation
You typically use many diagrams
A single use case may not capture all scenarios
If you are going to use statecharts, there are probably
lots of objects with states
Each sequence/collaboration diagram only shows one
Example: Student Registration
System
Not going to do all the diagrams
Not all types, not even all that completely
specify the system
But this is an application you know, so the
Student Registration Class Diagram
*
removeStudent ** 1
*
* sectionssections
Partial Use Case Diagram
Withdraw from a Course
Apply for Admission
Student
Enroll in the University
Enroll in a Course
States of a Student
EnrollInClass ( Add a Transcript )
Enrolled
Apply [ Must be accepted first ]
Graduate [ All courses must be completed ] AddCourse
Registered
Sequence Diagram: Registering
for Course
theRegistrar aSection theTranscript
aStudent
state of prereq have prereq
enrolled
enrollInSection:
return sections
getSectionsFor:
addStudent:
enrolled
takenCourse: prerequisite
Process to Representations
OOA
CRC Cards (but they’re not officially UML)
Use Cases
OOD
Just about all of the rest
But variations—some detail is later
OOP
UML v1.3 Copyright Notice
Copyright © 1997, 1998, 1999 Object Management Group, Inc. Copyright © 1997, 1998, 1999 Hewlett-Packard Company Copyright © 1997, 1998, 1999 IBM Corporation
Copyright © 1997, 1998, 1999 ICON Computing Copyright © 1997, 1998, 1999 i-Logix
Copyright © 1997, 1998, 1999 IntelliCorp
Copyright © 1997, 1998, 1999 Electronic Data Services Corporation Copyright © 1997, 1998, 1999 Microsoft Corporation
Copyright © 1997, 1998, 1999 ObjecTime Limited Copyright © 1997, 1998, 1999 Oracle Corporation
Copyright © 1997, 1998, 1999 Platinum Technology, Inc. Copyright © 1997, 1998, 1999 Ptech Inc.
Copyright © 1997, 1998, 1999 Rational Software Corporation Copyright © 1997, 1998, 1999 Reich Technologies
Copyright © 1997, 1998, 1999 Softeam
Copyright © 1997, 1998, 1999 Sterling Software Copyright © 1997, 1998, 1999 Taskon A/S