March 200491.3913 R McFadyen1 Activity Diagrams Used to present the procedural steps of an algorithm...

27
March 2004 91.3913 R McFadyen 1 Activity Diagrams Used to present the procedural steps of an algorithm An algorithm comprises any of the following structures: •sequence •decision •Repetition An algorithm may also involve parallelism (are there some activities that can be done concurrently?)
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    215
  • download

    1

Transcript of March 200491.3913 R McFadyen1 Activity Diagrams Used to present the procedural steps of an algorithm...

March 2004 91.3913 R McFadyen 1

Activity Diagrams

Used to present the procedural steps of an algorithm

An algorithm comprises any of the following structures:

•sequence

•decision

•Repetition

An algorithm may also involve parallelism (are there some activities that can be done concurrently?)

March 2004 91.3913 R McFadyen 2

Activity Diagrams

start

end

branch

merge

fork

join

guard

transition

swimlanes

activity

Symbols

March 2004 91.3913 R McFadyen 3

Activity Diagrams - sequential

Activity 1 Activity 2 Activity 3

Activities 1, 2, 3 follow one another in sequence. Activity 3 cannot start until Activity 2 is done, etc.

March 2004 91.3913 R McFadyen 4

Example: instructions to make Zucchini Relish

Combine vegetables with pickling salt and leave overnight

Drain and rinse

Combine remainingIngredients withvegetables

Boil 20 minutes

Put in sterilized jars Process in Canner

March 2004 91.3913 R McFadyen 5

Activity Diagrams – conditional path / 2-way switch

Activity 1

Activity 2

[con

diti

on 1

][c

ondi

tion

2]

One of two paths is chosen

Same symbol for decision as for merge

March 2004 91.3913 R McFadyen 6

Example: instructions to make Zucchini Relish

Combine vegetables with pickling salt and leave overnight

Drain and rinseCombine remainingIngredients withvegetables

Boil 20 minutes

Go and purchase ingredients

[ Missing some ingredients ]

[ have all ingredients ]

Process in Canner Put in sterilized jars

March 2004 91.3913 R McFadyen 7

if ( count > 0 ) average = sum / count;System.out.println (average);

If example

[ co

unt >

0 ]

[ co

unt <

= 0

]

Average sum/count

Print average

March 2004 91.3913 R McFadyen 8

if ( count > 0 ) average = sum / count;else average = 0.0;System.out.println (average);

If-Else example

[ co

unt >

0 ]

[ co

unt <

= 0

]

Average sum/count

Average 0

Print average

March 2004 91.3913 R McFadyen 9

if ( x > 0 ) if (y > 0) { z = sqrt (x) + sqrt (y); System.out.println(“z = “ + z); } else System.out.println( “*** can’t compute z”);

Nested If-Else example

[ x > 0 ][ x <= 0 ]

[ y > 0 ][ y <= 0 ]

Z sqrt (x) + sqrt (y) Print Z

Print cannot compute Z

March 2004 91.3913 R McFadyen 10

If-ElseIf example

[ pH < 3 ]

[ pH < 7 ]

[ pH = 7 ]

[ pH < 12 ]

if (pH < 3) System.out.println( "Solution is very acidic.”);else if (pH < 7) System.out.println( "Solution is acidic.”);else if (pH == 7) System.out.println(”Solution is neutral.");else if (pH < 12) System.out.println( "Solution is alkaline.”);else System.out.println( "Solution is very alkaline.”);

[ pH >= 3 ]

[ pH >= 7 ]

[ pH <> 7 ]

[ pH >= 12 ]

Print “alkaline”

Print “neutral”

Print “acidic”

Print “very acidic”

Print “very alkaline”

March 2004 91.3913 R McFadyen 11

Activity Diagrams – multiway switch

Activity 1

Activity n

One of two paths is chosen

Same symbol for decision as for merge

Activity 2[condition2]

[condition1]

[condition n]

March 2004 91.3913 R McFadyen 12

Multiway switch example

switch (watts) {

case 40: price = 0.50;

break;

case 60: price = 0.69;

break;

case 75: price = 0.85;

break;

case 100:

case 150: price = 1;

break;

default: price = 0;

System.out.print (“No bulb ” +watts + “watts in stock”);

} // end switch

March 2004 91.3913 R McFadyen 13

Price 0.50[watts= 40]

Price 0.69

Price 0.85

Price 1.00

Price 0.00

[watts= 60]

[watts= 100 or 150]

[ watts < > 40, 60, 100, 150 ]

[watts= 75]

Print

No bulb message

Multiway switch example

March 2004 91.3913 R McFadyen 14

Activity Diagrams – iteration / looping

Processing before test

[ exit]

Processing after test

[ do not exit ]

March 2004 91.3913 R McFadyen 15

Activity Diagrams – iteration / looping

Processing before test

[ exit]

Processing after test

[ do not exit ]

Its not the way you draw it …

it’s the way control flows that’s important

March 2004 91.3913 R McFadyen 16

example

int next; // the next number

int sum = 0; // the sum so far

int count = 0; // initialize loop counter

while (count < MAX) { // test loop counter

readInt(next); // get next number

sum = sum + next; // add next number to sum

count = count + 1; // increment loop counter

} // end loop

March 2004 91.3913 R McFadyen 17

example

Increment count[ Count < Max ]

Read next integerAdd integer

to sum

Sum 0

Count 0

[ Count = Max ]

March 2004 91.3913 R McFadyen 18

example

count = count + 1;readInt(next); sum = sum + next;

Sum 0

Count 0

If we wish, we could put the exact code into the activities

[ Count < Max ]

[ Count = Max ]

March 2004 91.3913 R McFadyen 19

Activity Diagrams – parallelism/concurrency

Activity 1

Both paths are performed in parallel. Activity 1 and 2 begin when Activity 0 is finished.

Activity 0

Activity 4

Activity 4 begins when Activity 1 and 3 have both completed

Activity 2

Activity 3

March 2004 91.3913 R McFadyen 20

Example: instructions to make Zucchini Relish

Combine vegetables with pickling salt and leave overnight

Drain and rinseCombine remainingIngredients withvegetables

Boil 20 minutes

Chop onionsChop Zucchini Chop green peppers Chop red peppers

Process in Canner Put in sterilized jars

March 2004 91.3913 R McFadyen 21

Zucchini Relish

12 cups chopped Zucchini

4 large onions, chopped

2 red peppers, chopped

2 green peppers, chopped

1/3 cup pickling salt

3 cups white vinegar

4 cups white sugar

3 tbsp. Cornstarch

2 tsp. Celery seed

2 tsp. Mustard seed

2 tsp. Turmeric

March 2004 91.3913 R McFadyen 22

Updating a Star Schema

Churn Star Schema from The Official Guide to Informix/Red Brick Data Warehousing

Rate_planPeriod

Customer

Churn_reason

Carrier

Telephone

Churncredit_limitoutstanding_balancecurrent_bill

A Star Schema is a specialized ERD used in Data Warehousing.

To update the database, we:

(1) update each Dimension, and then

(2) update the Fact table

March 2004 91.3913 R McFadyen 23

Updating a Star Schema

UpdateCustomer

Update Churn

UpdateRate plan

UpdateChurn Reason

UpdateTelephone

UpdateCarrier

UpdatePeriod

March 2004 91.3913 R McFadyen 24

Updating a Star Schema

UpdateCustomer

Update Churn

UpdateRate plan

UpdateChurn Reason

UpdateTelephone

UpdateCarrier

UpdatePeriod

The dimensions can be updated independently of one another.

Those activities can be carried on concurrently

March 2004 91.3913 R McFadyen 25

Activity Diagrams

Activity 1 Activity 2

Activity 3

Swimlanes

When we assign activities to particular organizational units, then we can partition the flow into swimlanes, one swimlane per unit.

Activity 0

Activity 4

Org 1 Org 2 Org 3 Org 4

March 2004 91.3913 R McFadyen 26

Activity Diagrams

Workflow for an Order

Request product

Customer Sales Warehouse

A customer requests a product. The order is handled by Sales, and then the Warehouse picks the materials and ships the order. Then, the customer will receive the order and Sales will send out the bill. When the customer receives the bill, it is paid, and the order is closed by Sales.

ProcessOrder

Pick &Ship

ReceiveOrder

SendBill

Pay BillOrderClosed

ReceiveBill

March 2004 91.3913 R McFadyen 27

Exercise for 91.3913

1. Express the Process Sale use case as an activity diagram with sequential activities at a high level of abstraction without any iteration.

2. Express the Process Sale use case as an activity diagram where iteration is illustrated in detail (for enterItem)

3. Use Swimlanes for each of the above