UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

54
UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams

Transcript of UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

Page 1: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML Notations in CommonKADS

Activity diagrams

State diagrams

Class diagrams

Use-case diagrams

Page 2: 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

Page 3: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 4: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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)

Page 5: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 6: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 6

Basic notation for activity diagram

data entry

processinggenerateoutput

Page 7: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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]

Page 8: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 8

Introducing concurrency

buy foodand drinks

cook dinneropen wine

bottle

have dinner

Page 9: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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)

Page 10: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 10

Notation for swim lanes

write tender

get customerinformation

SALESDEPARTMENT

calculatecost

DESIGNDEPARTMENT

designelevator

Page 11: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 12: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 12

Signals

receiverequest

archive(request)

archive(request)

processrequest

archive

Page 13: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 13

Business process “Housing”primaryprocess

secondaryprocess

data entryof applications

magazineproduction

applicationassessment

residenceassignment

statisticalanalysis

policyinformation

:residenceassignments

Page 14: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 15: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 16: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 16

State

watching football match

duration

entry/switch on TVdo/watchexit/turn off TV

state name

state variables

state actions& activities

Page 17: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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)

Page 18: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 19: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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]

Page 20: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 20

State concurrency

enteringtransaction

dataprocessing

take outcash

take outcard

idle

cash cardentered

cash taken card taken

Page 21: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 22: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 23: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 24: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 25: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 25

Objects and classes

Fokker 100:airplane

airplane

#seats: integer

Fokker 70:airplane

#seats = 80

:airplane

Page 26: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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.

Page 27: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 28: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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.

Page 29: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 30: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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.

Page 31: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 32: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 33: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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.

Page 34: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 35: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 35

Multiplicity examples

student course

person

major

address<< has address

married-to

major subject >>

enrolled in >>

0+

0-1

1+

Page 36: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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.

Page 37: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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.

Page 38: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 38

Notation association class

man woman0-1 0-1

wifehusband

marriage

date: Date

cityregistered in >>

Page 39: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 40: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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").

Page 41: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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).

Page 42: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 42

Notation for generalization

agent

humancomputerprogram

man woman

taskexecutor-of >>

1+ 0+

Page 43: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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, ...

Page 44: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 45: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 45

Composition

Sub-type of aggregation Existence of part depends on aggregate

document

nametype

openprint

paragraph

style0+

Page 46: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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)

Page 47: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 47

Combined aggregation and generalization

audiosystem

tape deck

CD player

tuner

amplifier

speakerheadphones

recordplayer

0-1 2,4input

system

1+

Page 48: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 49: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 49

Use cases for a library

library system

lend book

make bookreservation

search librarycatalog

add bookto catalog

remove bookfrom cataloglender librarian

Page 50: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 51: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

UML notations 51

Use cases

student

tutor

updatestudent data

inspectcourse info

updatecourse info

enrollin course

enterexam results

browseenrollments

browseexam results

browseindividual

results

browsecourseresults

administrativestaff

Page 52: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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

Page 53: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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]

Page 54: UML Notations in CommonKADS Activity diagrams State diagrams Class diagrams Use-case diagrams.

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