Post on 18-Jan-2018
description
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005
Procedural Activity
Patrick BaileyKeith Vander LindenCalvin College
2
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Procedural Activity● Systems display procedural activity:
– Business work-flow– Data flow– Task behavior– Concurrent processes
● Potential modeling solutions:– Flow charts– State diagrams– Activity diagrams
3
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Activity Diagrams● Activity diagrams
model activities as:– Actions– TransitionsWith additional features
for decisions, forks, joins, etc.
● They use many of the same elements provided for state diagrams.
Example adapted from Fowler, 2004
Fill Order
Regular Delivery
[else][priorityOrder]
Send Confirmation
Receive Payment
Receive Order
Send Invoice
Close Or der
4
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Outline● History● Activity Diagrams● Examples● Using Activity Diagrams
5
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
● 1962● Extended state
machines with token flow to represent concurrency
● UML 2.0 activity diagrams use token flow and a similar structure.
Carl Adam Petri (1926- )Petri-Nets
Images from www.informatik.uni-hamburg.de, August, 2005
Petri Net for 4 dining philosophers.
6
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Actions● Actions represent an
encapsulated unit of activity.● They must have at least one
incoming and one outgoing transition.
● Actions can be implemented as:– Class methods– Code fragments– Sub-activities
7
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Action Decomposition Actions can be
decomposed.
Finance
Receive Pay ment
CustomerServ ice
Receive Order
Close Order
Send Inv oice
Finance
Receive Pay ment
CustomerServ ice
Receive Order
Close Order
Send Inv oice
Finance
Receive Pay ment
CustomerServ ice
Receive Order
Close Order
Send Inv oice
Finance
Receive Pay ment
CustomerServ ice
Receive Order
Close Order
Send Inv oice
8
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Signals Actions can
respond to and produce external signals:– Time signals– Other signals
Receiv e Pay ment
Signal Pay ment Conf irmat ion
Close Order
Receiv eOrder
Wait t il 4:00
Send Inv oice
Receiv e Pay ment
Signal Pay ment Conf irmat ion
Close Order
Receiv eOrder
Wait t il 4:00
Send Inv oice
Receiv e Pay ment
Signal Pay ment Conf irmat ion
Close Order
Receiv eOrder
Wait t il 4:00
Send Inv oice
Receiv e Pay ment
Signal Pay ment Conf irmat ion
Close Order
Receiv eOrder
Wait t il 4:00
Send Inv oice
9
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Transitions● Transitions (aka. flows, edges)
are like state diagram transitions except that they are not event-driven by default.
● Behavior:– They transition in when all
incoming transitions join.– They transition out when their
action is complete.● Use connecters as a shorthand.
10
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Data Flow● Transitions can
carry parameter objects.
● You can use pins to specify them.
Finance
Inv oiceReport
Receive Pay ment
CustomerServ ice
Receive Order
Close Order
Send Inv oice
Finance
Inv oiceReport
Receive Pay ment
CustomerServ ice
Receive Order
Close Order
Send Inv oice
Finance
Inv oiceReport
Receive Pay ment
CustomerServ ice
Receive Order
Close Order
Send Inv oice
Finance
Inv oiceReport
Receive Pay ment
CustomerServ ice
Receive Order
Close Order
Send Inv oice
11
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Connectors Connectors come in
various forms:– Decision connectors
– Junction connectorsRegular Delivery
[else][priorityOrder]
Example adapted from Fowler, 2004
12
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Synchronization Bars● Concurrency is modeled with
token flow in activity diagrams.● Tokens are:
– Created at initial nodes– Passed from action to action
during activities– Spawned at fork nodes– Joined a join nodes– Consumed at final nodes
● The token flow must be “balanced”.
Example adapted from Fowler, 2004
Fill Order
Regular Delivery
[else][priori tyOrder]
Send Confirmation
Receive Payment
Receive Order
Send Invoice
Close Or der
13
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Termination States Termination states represent either
local or global termination, depending upon context.− Activity Final
− Flow Final
14
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Partitions● Activity
diagrams don’t naturally specify agency.
● Use partitions (aka. swim lanes) to do this.
Example adapted from Fowler, 2004
Fil l Order
Overnight Delivery
Regular Delivery
[else][priori tyOrder]
Send Confirmation
[else][priori tyOrder]
Receive Payment
Receive Order
Send Invoice
Close Order
[else][priori tyOrder]
Fil l Order
Overnight Delivery
Regular Delivery
[else][priori tyOrder]
Send Confirmation
[else][priori tyOrder]
Receive Payment
Receive Order
Send Invoice
Close Order
[else][priori tyOrder]
Fil l Order
Overnight Delivery
Regular Delivery
[else][priori tyOrder]
Send Confirmation
[else][priori tyOrder]
Receive Payment
Receive Order
Send Invoice
Close Order
[else][priori tyOrder]
Fil l Order
Overnight Delivery
Regular Delivery
[else][priori tyOrder]
Send Confirmation
[else][priori tyOrder]
Receive Payment
Receive Order
Send Invoice
Close Order
[else][priori tyOrder]
15
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Example: Parallel Algorithm
Example from Douglass, Real Time UML, 2004
16
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Example: HCI
17
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2006
Using Activity Diagrams● Activity diagrams can represent:
– Concurrency– Inter-object procedural sequences
● They can be used to specify process for:– State activities (entry, exit, transition, do)– Use cases– Classes
● Real-time modeling uses them primarily for concurrent algorithm specification.