Post on 28-Dec-2015
UML Notations in CommonKADS
Activity diagrams
State diagrams
Class diagrams
Use-case diagrams
UML notations 2
Background UML
Nineties: number of popular object-oriented methods Unified Modeling Language: proposal for set of
standard notations wide attention
see www.rational.com
mainly meant for analysis phase
UML notations 3
UML notations used
Class diagram static information structure (“data”)
Activity diagram combined function/control view
Use-case diagram high level view of system services (functional)
State diagram highly interactive control
UML notations 4
Activity diagram
Model control and information flow of a procedure or process
Useful if control is mainly synchronous otherwise: use state diagram
Use in CommonKADS: modeling the organizational process worksheet OM-2 of the organization model
Can also be used to model control flow within a task method (knowledge model)
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
processinggenerateoutput
UML notations 7
Decision
Sate transition is deterministic If transition depends on outcome of the work, then
introduce a decision
data entry
dump in waste basket
furtherprocessing
[data correct]
[data incorrect]
UML notations 8
Introducing concurrency
buy foodand drinks
cook dinneropen wine
bottle
have dinner
UML notations 9
Swim lanes
Process can sometimes be distributed over several agents or organizational units
Notation: use compartments In particular useful when modeling a business
process (e.g. in organization model)
UML notations 10
Notation for swim lanes
write tender
get customerinformation
SALESDEPARTMENT
calculatecost
DESIGNDEPARTMENT
designelevator
UML notations 11
Object flow
standarddesign
write tender
get customerinformation
SALESDEPARTMENT
decide about design type
customdesign
costcalculation
elevatordesign
DESIGNDEPARTMENT
non-standard standard
CUSTOMER
tender
customerinformation
UML notations 12
Signals
receiverequest
archive(request)
archive(request)
processrequest
archive
UML notations 13
Business process “Housing”primaryprocess
secondaryprocess
data entryof applications
magazineproduction
applicationassessment
residenceassignment
statisticalanalysis
policyinformation
:residenceassignments
UML notations 14
Activity diagram of method control
cover
predict
obtain compare
[no more solutionsof cover]
[new solutionof cover]
[result = equal]
[result = not equal]
solution found
no solution found
startdiagnosisthrough
generate-and-test
UML notations 15
State diagrams
Synonyms: “state chart”, “state-transition diagram” Purpose: model of dynamic behavior Use if control is heavily influenced by “external”
events Draw a state diagram for object classes with
interesting behavior Activity diagram is alternative
internal control object flow
UML notations 16
State
watching football match
duration
entry/switch on TVdo/watchexit/turn off TV
state name
state variables
state actions& activities
UML notations 17
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)
UML notations 18
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 19
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]
UML notations 20
State concurrency
enteringtransaction
dataprocessing
take outcash
take outcard
idle
cash cardentered
cash taken card taken
UML notations 21
State generalization
If Object A is in super-state S, then the object us in precisely one of the sub-states
Cf. concurrency: “and”-states
whiteto move
blackto move
playing chess
UML notations 22
State diagrams in CommonKADS
Communication modeling (Ch. 8) Asynchronous reasoning control
real-time applications
Control specification for the business process Overlap with activity diagrams
state with no outgoing events = action state
UML notations 23
State diagram “Housing”
applicationassessment
waiting for case data
application received/order assessment
data needed/ask
data received / reply
assessment finished/report decision
UML notations 24
Class diagram
Captures static information structure In O-O: also functions
Generalization, inheritance & reuse are important issues
Imported into CommonKADS domain- schema notation no use made of operation box
Can also be used in Task Model to sketch task information structure
UML notations 25
Objects and classes
Fokker 100:airplane
airplane
#seats: integer
Fokker 70:airplane
#seats = 80
:airplane
UML notations 26
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 27
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 28
Object and Value
Most O-O approaches distinguish between objects and values.
Difference: a value does not have an identity it "lives” only in connection to a certain object.
RULE 1: an object is not allowed as a possible value of an attribute!
RULE 2: attribute names need only to be unique within a class.
UML notations 29
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 30
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 31
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 = functional view
UML notations 32
Class notation
class 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
UML notations 33
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 34
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
UML notations 35
Multiplicity examples
student course
person
major
address<< has address
married-to
major subject >>
enrolled in >>
0+
0-1
1+
UML notations 36
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.
UML notations 37
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 38
Notation association class
man woman0-1 0-1
wifehusband
marriage
date: Date
cityregistered in >>
UML notations 39
Use of an association class
company
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
UML notations 40
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 41
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).
UML notations 42
Notation for generalization
agent
humancomputerprogram
man woman
taskexecutor-of >>
1+ 0+
UML notations 43
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 44
Notation for aggregation
audiosystem
tape deck
CD player
tuner
amplifier
speakerheadphones
recordplayer
0-1
0-1
0-1
0-1 0-1 2,4
UML notations 45
Composition
Sub-type of aggregation Existence of part depends on aggregate
document
nametype
openprint
paragraph
style0+
UML notations 46
Aggregation and generalization
Similarities: Tree-like structure Transitive properties
Differences: AND-tree (aggregation) vs. OR-tree (generalization) instance tree (aggregation) vs. class tree (generalization)
UML notations 47
Combined aggregation and generalization
audiosystem
tape deck
CD player
tuner
amplifier
speakerheadphones
recordplayer
0-1 2,4input
system
1+
UML notations 48
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 use in CommonKADS: way to present possible
solutions to customer
UML notations 49
Use cases for a library
library system
lend book
make bookreservation
search librarycatalog
add bookto catalog
remove bookfrom cataloglender librarian
UML notations 50
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 51
Use cases
student
tutor
updatestudent data
inspectcourse info
updatecourse info
enrollin course
enterexam results
browseenrollments
browseexam results
browseindividual
results
browsecourseresults
administrativestaff
UML notations 52
Class diagram
student
student-card#: stringname: stringaddress: stringdate-of-birth: datamajor: Major.........
course
course-code: stringyear: integertrimester: 1-3
study-points: integerlearning-goals: stringdescription: textliterature: text
maximum-#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
UML notations 53
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]
UML notations 54
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