UML Notations
Activity diagrams
State diagrams
Class diagrams
Use-case diagrams
Background UML
• Unified Modeling Language (UML) is a standard
language for specifying, visualizing , and
constructing, and documenting the artifacts of
software systems.
– http://www.uml.org/
• UML represents the collection of best
engineering practices, mainly used for object
oriented software development
• UML uses graphical notations to express the
design of software projects.
UML notations
2
Goals of UML
• Provide users with a ready-to-use visual modeling
language to exchange meaningful models
• Provide extensibility and specialization
mechanisms to extend the core concepts
• Be independent of particular programming
languages and development processes.
• The development of UML began in 1994 by Grady
Booch and Jim Rumbaugh from Rational Software
Corporation
UML Diagrams
• Activity diagram
– combined function/control view
• State diagram
– highly interactive control
• Class diagram
– static information structure (“data”)
• Use-case diagram
– high level view of system services (functional)
UML notations
4
Activity diagram
• Model control and information flow of a
procedure or process
• It describes the state of activities by showing
the sequence of activities performed.
UML notations
5
Action state
• State in which some work is being done
– activity, task
• State terminates when the work is finished
– difference with state diagrams
• After termination the action state can lead to
another action state
– “state transition”
• Special symbols for being and end of a
procedure or process
UML notations
6
Basic notation for activity diagram
data entry
processing
UML notations
generate
output
7
Decision
• State transition is deterministic
• If transition depends on outcome of the work,
then introduces a decision
[data correct]
data entry
[data incorrect]
UML notations
further
processing
dump in
waste basket
8
Introducing concurrency
buy food
and drinks
cook dinner
open wine
bottle
have dinner
UML notations
9
Swim lanes
• Process can sometimes be distributed over
several agents or organizational units
• Notation: use compartments
• Use to model a business process (e.g. in
organization model)
UML notations
10
Notation for swim lanes
SALES
DEPARTMENT
DESIGN
DEPARTMENT
get customer
information
design
elevator
calculate
cost
write
tender
UML notations
11
Object flow
CUSTOMER
SALES
DEPARTMENT
DESIGN
DEPARTMENT
customer
information
get customer
information
decide about
design type
non-standard
tender
write
tender
cost
calculation
UML notations
standard
standard
design
custom
design
elevator
design
12
Business process “Housing”
primary
process
secondary
process
data entry
of applications
magazine
production
application
assessment
:residence
assignments
residence
assignment
UML notations
statistical
analysis
policy
information
13
State diagrams
• Synonyms: “state chart”, “state-transition
diagram”
• Purpose: model of dynamic behavior
• Use if control is heavily influenced by
“external” events
UML notations
14
State
state name
state variables
state actions
& activities
UML notations
watching
football match
duration
entry/switch on TV
do/watch
exit/turn off TV
15
State transition
ready for
take off
check: boolean
permission-from-control-tower
[check -= OK]
/ take-off
^control-tower.confirm-takeoff(flightID)
airborne
do/fly
entry/final check
• Event: comes from outside the object modeled
• Message: generates event for another object
• Guard: outcome of internal object computation
UML notations
16
Actions and activities
• Action: instantaneous, not interruptible
– on transition
– on state entry = action on all incoming transitions
– on state exit = action on all outgoing transitions
– on event
• Activity: takes time, interruptible
UML notations
17
State diagram of
ticket machine
idle
insert(coin)/new balance
cancel button
pressed
inserting money
timer
balance
insert(coin)/add to balance
cancelling
[balance <
ticket price]
time out
select(ticket)
do/return balance
processing selection
[balance = ticket price]
dispensing
ticket
dispensing
change
do/dispense ticket
do/dispense change
UML notations
do/compute change
[balance > ticket price]
18
State concurrency
entering
transaction
data
cash card
entered
processing
take out
cash
cash taken
take out
card
card taken
idle
UML notations
19
State diagram “Housing”
assessment finished/
report decision
application received/
order assessment
application
assessment
data needed/ask
data received / reply
UML notations
waiting for
case data
20
Class diagram
• Describe the types of objects in a system and
their relationships
• Model class structure and contents
• Class has three things: a name, attribute, and
operations
UML notations
21
Objects and classes
airplane
#seats: integer
Fokker 70
:airplane
Fokker 100
:airplane
:airplane
#seats = 80
UML notations
22
Object class
• Describes a group of objects with similar
properties
– Abbreviation: "class"
• Rationale for introducing classes:
– it provides a means for abstraction
• Terminology: “object” is often used in an
ambiguous way, pointing to both objects (in
the strict sense) and object classes.
UML notations
23
Attributes
• An attribute describes a value held by objects
belonging to the class.
• Attribute specification consists of:
– Class it is defined on (student)
– Attribute name (name)
– Admissible values (string)
– Optional: default value
UML notations
24
Values and Value Sets
• Values are the primitive things with no
internal structure from the viewpoint of the
application
• Admissible values are defined through a value
set
• Typical predefined value-sets:
– string, number, integer, real, range, boolean, ….
• User-defined:
– set or list of strings
UML notations
25
Object Identifiers
• In O-O modeling you assume that every object
has an identity.
• Consequence: introduce only attributes that
act as identifiers, iff the identifier is
something that exists in the real world.
• Examples: student card number, social
security number.
UML notations
26
Operations
• Definition:
– operation is "a function or a transformation that
can be applied to objects of a class".
• Objects in a class share the same operations.
• Method: implementation of an operation
UML notations
27
Class notation
class name
attribute-1: value-set
attribute-2: value-set
operation-1(Par1:Type, Par2:Type): ReturnType
library book
library
book
catalog#: string
title: string
author: string
category: Category
cover-type: {hard-cover, paperback}
available(): Boolean
UML notations
28
Associations
• Associations are used to link objects to other
objects
• Majority of associations:
– binary (between two objects)
– directional (should be read in a particular
direction
• Ternary associations come up occasionally.
• Associations between more than three objects
are rare.
UML notations
29
Association notation
General notation for association
w if e
husband
man
woman
0-1
married-to
0-1
Notation for a binary association
husband
w if e
man
woman
0-1
0-1
married-to
UML notations
30
Multiplicity examples
person
0-1
married-to
0+
1+
student
address
<< has address
enrolled in >>
course
major subject
>>
major
UML notations
31
Multiplicity
• Also called: "cardinality".
• Always connected to one of the classes
involved.
• Typical types of multiplicity:
– 0-1
–1
– 0+
– 1+
UML notations
Zero or one (optional).
Precisely one.
Zero or more,
One or more.
32
Association class
• Modeling an association as a class if the
association has an internal information
structure
• Advantage: associations become first-class
objects.
• Attributes and methods can be defined for the
association class.
UML notations
33
Notation association class
husband
w ife
woman
man
0-1
0-1
marriage
date: Date
city
registered in >>
UML notations
34
Use of an association class
person
company
name
employee
employer
1
<< works for
1+
name
social security #
address
salary
job title
if you want to model that
a person can work for
more than one company,
then change to
company
employee
employer
name
1+
1+
person
name
social security #
address
w orks for
salary:
job title
UML notations
35
Associations with specific semantics
• Associations provide a general, "neutral", way
of connecting object classes.
• Semantics of the association are defined
through argument typing, multiplicity and
(implicitly) the name of the association.
• Class diagrams provide specific types of
associations, with predefined semantics:
– generalization ("is a").
– aggregation ("part of").
UML notations
36
Generalization
• Purpose: sharing similarities while preserving
differences
• Is an association between a class that acts as
super-class and one or more classes called the
sub-classes.
• Super-classes show the features that the subclasses have in common.
• Each sub-class inherits the attributes and
operations defined on its super-class(es).
UML notations
37
Notation for generalization
executor-of >>
agent
task
1+
computer
program
human
man
UML notations
0+
woman
38
Aggregation
• Aggregation denotes a binary association in
which one side is an "assembly" and the other
side a "part".
• "Assembly" and "part" act as predefined roles
involved in the aggregation association.
• Cardinality of a part can be defined
– precisely one; optional (0-1); many, ...
UML notations
39
Notation for aggregation
0-1
audio
system
CD player
record
player
0-1
0-1
tuner
0-1
tape deck
UML notations
0-1
head
phones
2,4
amplifier
speaker
40
Composition
• Sub-type of aggregation
• Existence of part depends on aggregate
document
paragraph
name
type
0+
style
open
print
UML notations
41
Aggregation and generalization
• Similarities:
– Tree-like structure
• Differences:
– AND-tree (aggregation) vs. OR-tree
(generalization)
– instance tree (aggregation) vs. class tree
(generalization)
UML notations
42
Combined aggregation and
generalization
audio
system
1+
0-1
input
system
UML notations
amplifier
speaker
record
player
CD player
tuner
head
phones
2,4
tape deck
43
Use-case diagram
• shows services that can be expected from a
system
• provides outsider view (customer)
• terminology
use case service provided by system
actor
agent using a system service
• used in early phases of system analysis
UML notations
44
Use cases for a library
library system
lend book
add book
to catalog
make book
reservation
lender
remove book
from catalog
librarian
search library
catalog
UML notations
45
A small case study
• Course administration system (CAS)
• Context: university department
• Required services:
STUDENT: update personal data, inspect exam results,
inspect course info, enroll in course
TUTOR: inspect exam results, update course info, inspect
enrollments
ADMIN STAFF: enter exam results, inspect exam results,
update personal data students, inspect enrollments
UML notations
46
Use cases
browse
individual
results
browse
course
results
browse
exam results
enter
exam results
enroll
in course
browse
enrollments
inspect
course info
update
course info
tutor
student
update
student data
UML notations
administrative
staff
47
Class diagram
exam
date: date
result: [0..10]
requires
0+
course-exam
1
enrollment
student
0+
date: date
student-card#: string
name: string
0+
address: string
date-of-birth: data
major: Major
.........
course
0+
course-code: string
year: integer
trimester: 1-3
study-points: integer
learning-goals: string
description: text
literature: text
maximum-#students: integer
0+
university
staff member
title: string
position: string 1+
department: string
telephone: string
room: string
e-mail: string
UML notations
tutor
48
Activity diagram for course enrollment
procedure
submit
enrollment
request
check
preconditions
inform about
prerequisites
check
student limit
[preconditions
not OK]
[above limit]
[preconditions
OK]
[limit not
yet reached]
register
enrollment
UML notations
inform about
student limit
inform about
enrollment
49
State diagram:
“update student data”
received(new student data)
^ send message to
central university database
waiting for
notification
[timer = time-out or not OK]
/notify failure
timer
OK message received from central database
local
processing
do/update local database
do/display results
UML notations
50
Tools to draw UML
• Powerpoint
• MS Visio:
http://www.youtube.com/watch?v=FPB0Tw9j
FE8
• Online:
– http://creately.com/Draw-UML-and-ClassDiagrams-Online
– http://www.gliffy.com/uses/uml-software/
Download

UML Notations in CommonKADS