2UML notations
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.
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
4UML notations
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)
5UML notations
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.
6UML notations
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
8UML notations
Decision
• State transition is deterministic• If transition depends on outcome of the work,
then introduces a decision
data entry
dump in waste basket
furtherprocessing
[data correct]
[data incorrect]
10UML notations
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)
11UML notations
Notation for swim lanes
write tender
get customerinformation
SALESDEPARTMENT
calculatecost
DESIGNDEPARTMENT
designelevator
12UML notations
Object flow
standarddesign
write tender
get customerinformation
SALESDEPARTMENT
decide about design type
customdesign
costcalculation
elevatordesign
DESIGNDEPARTMENT
non-standard standard
CUSTOMER
tender
customerinformation
13UML notations
Business process “Housing”primaryprocess
secondaryprocess
data entryof applications
magazineproduction
applicationassessment
residenceassignment
statisticalanalysis
policyinformation
:residenceassignments
14UML notations
State diagrams
• Synonyms: “state chart”, “state-transition diagram”
• Purpose: model of dynamic behavior• Use if control is heavily influenced by
“external” events
15UML notations
State
watching football match
duration
entry/switch on TVdo/watchexit/turn off TV
state name
state variables
state actions& activities
16UML notations
State transition
• Event: comes from outside the object modeled• Message: generates event for another object• Guard: outcome of internal object computation
ready fortake off
check: boolean
entry/final check
airborne
do/fly
permission-from-control-tower[check -= OK] / take-off control-tower.confirm-takeoff(flightID)
17UML notations
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
18UML notations
State diagram of ticket machine
idle inserting money
timerbalance
insert(coin)/add to balance
processing selection
do/compute change
dispensingchange
do/dispense change
dispensingticket
do/dispense ticket
cancelling
do/return balanceselect(ticket)
cancel buttonpressed
time out
[balance < ticket price]
insert(coin)/new balance
[balance = ticket price]
[balance > ticket price]
19UML notations
State concurrencyentering
transactiondata
processing
take outcash
take outcard
idle
cash cardentered
cash taken card taken
20UML notations
State diagram “Housing”
applicationassessment
waiting for case data
application received/order assessment
data needed/ask
data received / reply
assessment finished/report decision
21UML notations
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
22UML notations
Objects and classes
Fokker 100:airplane
airplane
#seats: integer
Fokker 70:airplane
#seats = 80
:airplane
23UML notations
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.
24UML notations
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
25UML notations
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
26UML notations
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.
27UML notations
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
28UML notations
Class notationclass name
attribute-1: value-setattribute-2: value-set
operation-1(Par1:Type, Par2:Type): ReturnType
library book
catalog#: stringtitle: stringauthor: stringcategory: Categorycover-type: {hard-cover, paperback}
available(): Boolean
librarybook
29UML notations
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.
30UML notations
Association notation
man woman0-1 0-1
wifehusband
man womanhusband wife
married-to
General notation for association
Notation for a binary association
married-to 0-10-1
31UML notations
Multiplicity examples
student course
person
major
address<< has address
married-to
major subject >>
enrolled in >>
0+
0-1
1+
32UML notations
Multiplicity
• Also called: "cardinality".• Always connected to one of the classes
involved.• Typical types of multiplicity:– 0-1 Zero or one (optional).– 1 Precisely one.– 0+ Zero or more,– 1+ One or more.
33UML notations
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.
34UML notations
Notation association class
man woman0-1 0-1
wifehusband
marriage
date: Date
cityregistered in >>
35UML notations
Use of an association classcompany
name
person
namesocial security #addresssalaryjob title
person
namesocial security #address
company
name
<< works for
employer employee
1+1
employer employee
1+ 1+
works for
salary:job title
if you want to model thata person can work for
more than one company,then change to
36UML notations
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").
37UML notations
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 sub-classes have in common.
• Each sub-class inherits the attributes and operations defined on its super-class(es).
38UML notations
Notation for generalizationagent
humancomputerprogram
man woman
taskexecutor-of >>
1+ 0+
39UML notations
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, ...
40UML notations
Notation for aggregationaudiosystem
tape deck
CD player
tuner
amplifier
speakerheadphones
recordplayer
0-1
0-1
0-1
0-1 0-1 2,4
41UML notations
Composition
• Sub-type of aggregation• Existence of part depends on aggregate
document
nametype
openprint
paragraph
style0+
42UML notations
Aggregation and generalization
• Similarities:– Tree-like structure
• Differences:– AND-tree (aggregation) vs. OR-tree
(generalization)– instance tree (aggregation) vs. class tree
(generalization)
43UML notations
Combined aggregation and generalization
audiosystem
tape deck
CD player
tuner
amplifier
speakerheadphones
recordplayer
0-1 2,4input
system
1+
44UML notations
Use-case diagram
• shows services that can be expected from a system
• provides outsider view (customer)• terminology
use case service provided by systemactor agent using a system service
• used in early phases of system analysis
45UML notations
Use cases for a librarylibrary system
lend book
make bookreservation
search librarycatalog
add bookto catalog
remove bookfrom cataloglender librarian
46UML notations
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
47UML notations
Use cases
student
tutor
updatestudent data
inspectcourse info
updatecourse info
enrollin course
enterexam results
browseenrollments
browseexam results
browseindividual
results
browsecourseresults
administrativestaff
48UML notations
Class diagram
student
student-card#: stringname: stringaddress: stringdate-of-birth: datamajor: Major.........
course
course-code: stringyear: integertrimester: 1-3study-points: integerlearning-goals: stringdescription: textliterature: textmaximum-#students: integer
exam
date: dateresult: [0..10]
enrollment
date: date
universitystaff member
title: stringposition: stringdepartment: stringtelephone: stringroom: stringe-mail: string
0+ 0+
course-exam1
0+
tutor
0+
1+
0+
requires
49UML notations
Activity diagram for course enrollment procedure
submitenrollment
request
checkstudent limit
checkpreconditions
inform aboutprerequisites
inform aboutstudent limit
registerenrollment
inform aboutenrollment
[preconditionsOK]
[preconditionsnot OK] [above limit]
[limit notyet reached]
50UML notations
State diagram:“update student data”
waiting fornotification
timer
received(new student data) send message to
central university database
localprocessing
do/update local databasedo/display results
OK message received from central database
[timer = time-out or not OK]/notify failure
Tools to draw UML
• Powerpoint• MS Visio: http://www.youtube.com/watch?
v=FPB0Tw9jFE8• Online: – http://creately.com/Draw-UML-and-Class-Diagram
s-Online– http://www.gliffy.com/uses/uml-software/