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
An example
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 ([Link]
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
system by describing states of an object
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
structure, like a data structure
Different Levels of
Specifying Classes
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”
“controller”
Other variations in Class
specifications
Use of
templates,
interfaces, and
types
Can even
specify body of
methods
Components of Class
Diagrams
Multiplicities
How many of
each?
Labels to
indicate how
reference is
viewed
Role and
Association
classes
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
belong to whole
Qualifiers
Serves to describe an instance variable
that partitions the relationship.
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 be done with support from the system
(thus it is a ‘coherent unit of functionality’)
Simple Use Case Diagram
Reserve book
Borrow book
Return book
Use Case Diagram with
Multiple Actors
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
development iterations
Example Use Case Diagram
(Advanced Features)
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")
Can describe guards, notes, etc.
Example Sequence
Diagram
State Diagrams
Describe all the possible states a
particular object can get into, and the
events that lead to those changes
Also called a "statechart"
Example State Diagram
Other Kinds of UML
Diagrams
Collaboration Diagrams
An alternative to sequence diagrams for
describing the flow of messages between
objects
Other kinds of UML
Diagrams
Activity Diagrams
Alternative to
statecharts
Other kinds of UML
Diagrams
Implementation
Diagrams
Down at the detail
level
What piece of code
goes where?
How are they
connected?
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
interaction
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
examples may help make sense
Student Registration Class
Diagram
Student Transcript
1 1
transcript courseGrades
* 1
major
Registrar gradeForCourse:
schedule
Section takenCourse:
registrar courses
1 1
course * sections
enrollInClass:
gradeInCourse: daysAndTime getSectionsFor:
takenCourse: roster enrollInSection:
* addStudent dropFromSection:
removeStudent * 1
*
CourseGrade
1
1 course
1* *
1 * grade
Department Course termEnrolled
1..3 * *
courses
name
requiredCourses
number
department 0..3
creditHours prereqs
prerequisites
Partial Use Case Diagram
Apply for
Admission
Enroll in
the University Admissions
Student Enroll in
a Course
Withdraw
from a Course
States of a Student
Apply [ Must be accepted first ]
Enrolled
EnrollInClass ( Add a Transcript )
Withdraw Registered AddCourse
Graduate [ All courses must be completed ]
Sequence Diagram:
Registering for Course
aStudent theRegistrar aSection theTranscript
getSectionsFor:
return sections
enrollInSection:
takenCourse: prerequisite
takenCourse: prerequisite
state of prereq
have prereq
addStudent:
enrolled enrolled
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
Can actually go UML->code with some tools!
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
Copyright © 1997, 1998, 1999 Unisys Corporation