UML: Unified Modeling Language
1
Modeling
• Describing a system at a high level of
abstraction
– A model of the system
– Used for requirements and specification
• Many notations over time
– State machines
– Entity-relationship diagrams
– Dataflow diagrams
2
Recent History: 1980’s
• The rise of object-oriented programming
• New class of OO modeling languages
• By early ’90’s, over fifty OO modeling
languages
3
Recent History: 1990’s
• Three leading OO notations decide to combine
– Grady Booch (BOOCH)
– Jim Rumbaugh (OMT: Object Modeling Technique)
– Ivar Jacobsen (OOSE: OO Soft. Eng)
• Why?
– Natural evolution towards each other
– Effort to set an industry standard
4
UML
• UML stands for
Unified Modeling Language
• Design by committee
– Many interest groups participating
– Everyone wants their favorite approach to be “in”
5
UML
• UML stands for
Unified Modeling Language
• Design by committee
– Many interest groups participating
– Everyone wants their favorite approach to be “in”
6
UML (Cont.)
• Resulting design is huge
– Many features
– Many loosely unrelated styles under one roof
• Could also be called
Union of all Modeling Languages
7
Objectives of UML
• UML is a general purpose notation that is used
to
• visualize
• specify
• construct and
• document
the artifacts of a software system
8
This and Next Lectures
• We discuss
– Use Case Diagrams for functional models
– Class Diagrams for structural models
– Object Diagrams
– Sequence Diagrams
– Activity Diagrams for dynamic models
– State Diagrams
• This is a subset of UML
9
– But probably the most used subset
Development Process
• Requirements elicitation – High level capture of user/
system requirements
– Use Case Diagram
• Identify major objects and relationships
– Object and class diagrams
• Create scenarios of usage
– Class, Sequence and Collaboration diagrams
• Generalize scenarios to describe behavior
– Class, State and Activity Diagrams
• Refine and add implementation details
– Component and Deployment Diagrams 53
Structural Diagrams
• Class Diagram – set of classes and their relationships.
Describes interface to the class (set of operations
describing services)
• Object Diagram – set of objects (class instances) and
their relationships
• Component Diagram – logical groupings of elements
and their relationships
• Deployment Diagram - set of computational
resources (nodes) that host each component
10
Behavioral Diagram
• Use Case Diagram – high-level behaviors of the
system, user goals, external entities: actors
• Sequence Diagram – focus on time ordering of
messages
• Collaboration Diagram – focus on structural
organization of objects and messages
• State (Machine) Diagram – event driven state
changes of system
• Activity Diagram – flow of control between activities
11
Use Case Diagram
• Elements
– Actors
Use
– Use cases
case
– Relations
actor
• Use case diagram
shows relationship Use
case
between actors and
use cases
actor
12
Use Case Diagram Example
<<extends>>
Ride Business
Class Ride
passenger
Diagnose <<extends>>
<<uses>>
Economy
Class Ride
Repair
technician
13
Example:
Project and Resource Management System
• A resource manager manages resources
• A project manager manages projects
• A system administrator is responsible for
administrative functions of the system
• A backup system houses backup data for the
system
14
15
Do these Use Cases Pass the Tests?
• Boss test?
• EBP test?
• Size test?
16
Manage Project Use Case
• A project manager can add, remove, and
update a project
• Remove and update project requires to find
project
• A project update may involve
– Add, remove, or update activity
– Add, remove, or update task
– Assign resource to a task or unassign resource
from a task
17
18
Class Diagrams
Train
• Describe classes
lastStop
– In the OO sense
nextStop
• Class diagrams are
static -- they display velocity
what interacts but not doorsOpen?
what happens when they
do interact addStop(stop);
• Each box is a class startTrain(velocity);
– List fields stopTrain();
– List methods openDoors();
19
closeDoors();
Class Diagrams: Relationships
• Many different kinds of
edges to show different
relationships between
classes
• Any examples?
20
Relationships in UML
21
Association
• Association between two
classes Customer
– if an instance of one class 1
must know about the
other in order to perform
its work.
• Label endpoints of edge *
with cardinalities Order
– Use * for arbitrary
• Can be directional (use
arrows in that case)
22
Association
23
Examples of Association
24
Link Attributes
• Associations may have properties in the same manner
as objects/classes
• Salary and job title can be represented as
25
Association
26
Types of Association
Aggregation Composition
27
Aggregation Composition
• An association in which • An association in which
one class belongs to a one class belongs to a
collection collection
– Shared: An object can – No Sharing: An object
exist in more than one cannot exist in more than
collections one collections
– No ownership implied – Strong “has a”
relationship
• Denoted by hollow
– Ownership
diamond on the
“contains” side • Denoted by filled
diamond on the
“contains” side 28
Car Project
1 1
4 1..*
Wheels Consultant
29
Composition Aggregation
Car Project
1 1
4 1..*
Wheels Consultant
30
CS435 McGlothlin
1 1
* 1..*
Student classroom
31
Aggregation Composition
CS435 Millington
1 1
* 1..*
Student Classroom
32
Generalization
• Inheritance between
classes Button
• Denoted by open
triangle
RequestButton EmergencyButton
33
Generalization
34
Generalization
35
Generalization
• (Think subclassing)
Doctor
Hospital Doctor General
Practitioner
Cardiologist
36
Generalization
37
Generalization
•An is-a relationship
•Abstract class
38
Realization
39
Dependency
We use term dependencies for other relationships that
do not fit sharper categories
40
41
42
Example class diagram?
43
Which Relation is Right?
• Aggregation – aka is-part-of, is-made-of, contains
• Use association when specific (persistent) objects have
multiple relationships (e.g., there was only one Bill Gates
at MS and Steve Jobs at Apple)
• Use dependency when working with static objects, or if
there is only one instance
• Do not confuse part-of with is-a
44
Relationships in UML
45
46
47
48
Object Diagram
• Object diagram is an instantiation of a class
diagram
• Represents a static structure of a system at a
particular time
49
50
Sequence Diagrams
• Sequence diagrams
– Refine use cases
– Gives view of dynamic behavior of classes
• Class diagrams give the static class structure
• Not orthogonal to other diagrams
– Overlapping functionality
– True of all UML diagrams
52
Development Process
• Requirements elicitation – High level capture of user/
system requirements
– Use Case Diagram
• Identify major objects and relationships
– Object and class diagrams
• Create scenarios of usage
– Class, Sequence and Collaboration diagrams
• Generalize scenarios to describe behavior
– Class, State and Activity Diagrams
• Refine and add implementation details
– Component and Deployment Diagrams 53
UML Driven Process
54
UML Driven
Process Model
55
Work Products
• Functional Model – Use Case diagrams
• Analysis Object Model – simple object/class diagram
• Dynamic Model – State and Sequence diagrams
• Object Design Model – Class diagrams
• Implementation Model – Deployment, and Activity
diagrams
56
Acknowledgements
• Many slides courtesy of Rupak Majumdar
57