lecture 6 - behaviour 6.pdf · use case diagrams (already considered) sequence diagrams...

42
ADVANCED SOFTWARE DESIGN LECTURE 6 MODELLING BEHAVIOUR Dave Clarke

Upload: others

Post on 04-Apr-2020

30 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

ADVANCED SOFTWARE DESIGN LECTURE 6

MODELLING BEHAVIOURDave Clarke

Page 2: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

OVERVIEW

Page 3: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

BEHAVIOURAL MODELLING

What is it?

Why is it important?

Which behaviour is modelled?

Which is omitted?

Page 4: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

WHAT IS BEHAVIOUR?

BEHAVIOUR IS INTERACTION BETWEEN OBJECTS.

Page 5: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

UML DIAGRAMS

Page 6: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

INTERACTION DIAGRAMS

Visualise the interactive behaviour of the system.

Describe the message flow in the system.

Describe structural organisation of the objects.

Describe interaction among objects.

Different types of models capture different aspects of the interaction.

Page 7: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

KINDS OF DIAGRAMS

Use Case Diagrams (already considered)

Sequence Diagrams

Communication Diagrams

State Machine Diagrams

Activity Diagrams

Interaction Overview Diagrams

Timing Diagrams (not considered)

Page 8: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

SEQUENCE DIAGRAMS

Page 9: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

SEQUENCE DIAGRAM

Defines sequence of events, in particular, order in which messages occur

A natural refinement of Use Case diagrams

Page 10: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

KEY INGREDIENTS

lifeline

messagefound message

(sender not specified)

named object

execution specification

:A aB :B

doOne

doOne()

doTwo()

Page 11: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

FRAMES: OPTIONS

essentially an if statement

:A :B

calculateopt [ x < 10 ]

Page 12: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

FRAMES: ALTERNATIVES

if-then-else

:A :B

calculate

calculate

alt [ x < 10 ]

:C

[ else ]

Page 13: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

FRAMES: LOOPS

also par (parallel) and region (critical sections)

:A :B

makeNewSale

enterItem(itemID, quantity)

description, total

endSale

loop [ more items ]

frames can be nested

return

loop guard

Page 14: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

SOME OTHER FEATURES

asynchronous

self call

creation

:ClockStarter

startClock

:Clock

selfCall

create

run

active object

Page 15: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

GUIDELINES

Page 16: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

GUIDELINES

Novice modellers do not pay enough attention to interaction diagrams

Do dynamic object modelling with interaction diagrams, not just static modelling with class diagrams.

Without modelling behaviour, you cannot really understand the system.

Interaction Diagrams can express use cases in concrete form that relates to classes

Page 17: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

GUIDELINES

Walkthrough dynamic models against use cases.

Adjust static models whenever dynamic models expose weaknesses.

Ensure reuse among different dynamic models touching the same class – e.g., reusing a method for different scenarios

Page 18: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

ACTIVITY

Page 19: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

ACTIVITYMODEL THE FOLLOWING

A. player finding an opponent

B. initialising a game

C. pushing play after placing word

D. finishing a game (when final move is made)

E. selecting and continuing an ongoing game

Page 20: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

OTHER BEHAVIOURAL MODELS

Page 21: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

COMMUNICATION DIAGRAMS

Page 22: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

COMMUNICATION DIAGRAM

illustrate object interactions in a graph or network format

objects are placed anywhere in the diagram

captures essence of wall sketch

Page 23: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

EXAMPLE

:Register

:Payment

:SalemakePayment(cashTendered) 1:makePayment(cashTendered)

1.1:create(cashTendered)

direction of flowsequencenumber

nesting –subcall of 1

conditionals also possible

Page 24: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

LARGER EXAMPLE

Page 25: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

COMPARISON

Page 26: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

SEQUENCE VS COMMUNICATION DIAGRAMS

Sequence diagrams:

easier to see flow, just follow arrows (vs numbers)

large number of notation options

rigid structure – consumes horizontal space

Communication diagrams:

easier to sketch free form, more space efficient, and easier to modify on the fly

difficult to see sequence of messages

fewer notation options

Page 27: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

STATE MACHINE DIAGRAMS

Page 28: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

STATE MACHINE DIAGRAM

illustrates the behaviour of an object in reaction to an event

based on interesting events and states of an object

show the lifecycle of an object

use only for state-dependent objects

limited use in business information systems

common in process control, device control, protocol handlers, and telecommunications

Page 29: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

EXAMPLE

start

Activeoff hookIdle

on hook

initial pseudo-state

state

transition

Page 30: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

GUARDS AND ACTIONS

Activeoff hook / play dial toneIdle

on hook

[valid subscriber]

action (fires when transition is taken)

guard(inhibits transition)

Page 31: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

NESTED STATES

off hook / play dial tone

Idle

on hook

[valid subscriber]

TalkingPlayingDialTone

digit

Dialing Connectingdigit complete

connected

Active

Page 32: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

EXAMPLE

EnteringItemsmakeNewSaleWaitingForSale

WaitingForPayment

AuthorisingPayment

endSale

makeCreditPayment

makeChequePayment

enterItem

makeCashPayment

authorised

Page 33: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

INTERACTION OVERVIEW DIAGRAMS

Page 34: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

INTERACTION OVERVIEW DIAGRAM

Provide a big-picture overview of how a set of interaction diagrams are related in terms of logic and process flow.

Page 35: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

FRAMES

Encloses some kind of interaction diagram.Name describe relevant component.

Page 36: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

INDIRECTION

An interaction defined elsewherecan be referred to inside an

Interaction Overview diagram.

Page 37: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

EXAMPLE 1

Page 38: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

EXAMPLE 2

Page 39: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

ACTIVITY DIAGRAMS

Page 40: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

ACTIVITY DIAGRAM

rich notation to show a sequence of activities, including parallel activities.

popular for business workflows and processes, and use cases.

partitioned into different actors

expresses control flow, but not actual message contents.

can incorporate external systems (e.g., databases)

Page 41: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

Receive Video Order

Fill Order Send Invoice

Close Order

Receive PaymentDeliver Order

InvoiceOrder

FinanceFullfilment Customer Service

object node. object produced

or used by actions

action

fork

join

partitions.different parties

involved

EXAMPLE

Page 42: Lecture 6 - Behaviour 6.pdf · Use Case Diagrams (already considered) Sequence Diagrams Communication Diagrams State Machine Diagrams Activity Diagrams Interaction Overview Diagrams

ANOTHER EXAMPLEShop and Fill

Cart

Enter Cart Items

Hand Over Items

Receipt

NextGen POSCustomer Cashier Authorisation Service

Cart

Submit Authorisation

Request

Authorise Payment

Create Receipt

[ cash payment ]

[ else ]

Calculate Taxes and Discounts