March 200491.3913 R McFadyen1 Activity Diagrams Used to present the procedural steps of an algorithm...
-
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]
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