flow and modularity
inf113
faculty of information
university of toronto
dan ryan
Image from "Healers of the Wild: People Who Care for Injured and Orphaned Wildlife" by Shannon K. Jacobs, by way of the Wild Bird Fund.
Wake Up
Shower
Eat
Read
M,W,F
Shake
Egg
Make Breakfast
Wake Up
Shower
Eat
Read
M,W,F
Shake
Egg
Make Breakfast
Wake Up
Shower
Eat
Read
M,W,F
Shake
Egg
Make Breakfast
Wake Up
Shower
Eat
Read
Make Breakfast
M,W,F
Shake
Egg
Wake Up
Shower
Eat
Read
Make Breakfast
M,W,F
Shake
Egg
Wake Up
Shower
Eat
Read
M,W,F
Shake
Egg
Make Breakfast
arrow
flow
"go to..."
circle
terminal/connector
"and then..."
diamond
decision/branch
"if this is true..."
rectangle
module/action
"do this"
Control flows INTO THE TOP and OUT OF THE BOTTOM of rectangles.
Control flows INTO THE TOP and OUT THE SIDES of diamonds.
Control can flow INTO THE TOP, IN FROM THE LEFT or RIGHT and OUT THE BOTTOM of a connector circle.
Entry Circle
Exit Circle
Zero or
more
MODULES
module
action
module
condition
module
condition
module
condition
module
module
action
action
action
action
module
action
action
action
action
module
module
condition
module
condition
module
module
condition
module
condition
module
condition
module
module
condition
module
module
module
condition
module
module
condition
module
condition
module
module
condition
module
condition
module
condition
This can be a single action or any combination of sequence and contingency.
MODULE: any chunk of activity that can be popped into or out of a flowchart because of its single entry single exit property.
MODULE
condition
A
do action
B
do action
C
if condition A
do action B
else
do action C
the diamond splits the
flow into branches
the circle rejoins the
branches into a single exit
condition
A
do action
B
do action
C
if condition A
do action B
else
do action C
condition
A
do action
B
do action
C
if condition A
do action B
else
do action C
While it is raining, keep your umbrella up.
Keep your umbrella up until it stops raining.
While it is raining, use an umbrella.
If it is raining, use an umbrella, if not, put the umbrella away. Check every few minutes to see if it is still raining.
Is it raining?
Yes? Use an umbrella
Check again
Put the umbrella away
raining?
use umbrella
put umbrella away
Use an umbrella. Check every few minutes to see if it is still raining. When it stops, put the umbrella away.
Use an umbrella
Check for rain
If no rain, proceed.
Put the umbrella away
use umbrella
put umbrella away
Keep your umbrella up until it stops raining.
stopped raining?
WHILE A DO B
A?
B
YES
NO
SINGLE EXIT POINT
SINGLE ENTRY POINT
REPEAT B UNTIL A
A?
B
SINGLE EXIT POINT
SINGLE ENTRY POINT
NO
YES
In a WHILE loop, the "action" may be executed ZERO OR MORE TIMES
In an UNTIL loop, the "action" is always executed AT LEAST ONCE (i.e., "one or more times")
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
wildlife rehab
How to find wildlife rehab
wildlife rehab
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
wildlife rehab
If today is Tuesday, we must be in Belgium
Tuesday?
Belgium
YES
DO A. IF B, DO C, otherwise DO D. DO E. DO F.
B
A
E
F
C
D
YES
NO
IF B
DO C
OTHERWISE D
IF B,
DO C,
otherwise DO D.
DO A. IF B, DO C, otherwise DO D. DO E. DO F.
B
A
E
F
C
D
YES
NO
IF B
DO C
OTHERWISE D
IF B,
DO C,
otherwise DO D.
CRITIQUE
FIX
if raining
then if umbrella down, raise umbrella
otherwise
if umbrella is up lower umbrella
I scored an amazing summer practicum washing pots in a restaurant. My boss is a computational thinker and wants me to post a flowchart describing the pot-washing process on the wall behind the pot-washing sinks. Here are her instructions: Scrub until clean. Rinse until clear. Inspect. If not OK, start over.
Proceed Stepwise: (1) Pseudocode; (2) Outside; (3) Inside
scrub
until clean
rinse
until clear
inspect
if OK, done
else, start over
repeat
repeat
scrub
until clean
repeat
rinse
until clear
inspect
until OK
I scored an amazing summer practicum washing pots in a restaurant. My boss is a computational thinker and wants me to post a flowchart describing the pot-washing process on the wall behind the pot-washing sinks. Here are her instructions: Scrub until clean. Rinse until clear. Inspect. If not OK, start over.
scrub
until clean
rinse
until clear
inspect
if OK, done
else, start over
repeat
repeat
scrub
until clean
repeat
rinse
until clear
inspect
until OK
I scored an amazing summer practicum washing pots in a restaurant. My boss is a computational thinker and wants me to post a flowchart describing the pot-washing process on the wall behind the pot-washing sinks. Here are her instructions: Scrub until clean. Rinse until clear. Inspect. If not OK, start over.
I scored an amazing summer practicum washing pots in a restaurant. My boss is a computational thinker and wants me to post a flowchart describing the pot-washing process on the wall behind the pot-washing sinks. Here are her instructions:
Scrub until clean. Rinse until clear. Inspect. If not OK, start over.
scrub
until clean
rinse
until clear
inspect
if OK, done
else, start over
repeat
repeat
scrub
until clean
repeat
rinse
until clear
inspect
until OK
Sketch flow chart that captures logic of the following process.
Organization consists of intake personnel, counselors, followup social workers, and clerical staff.
When a new client contacts the organization intake personnel determine which of four types of case it is by asking two questions.
If a client is returning having already been "typed" she is sent to the appropriate waiting room.
Types 1 and 3 are referred to counselor A, type 2 to counselor B, type 4 to counselor C.
Client goes to waiting room until counselor is free.
Sessions take 1 hour so the wait can be long. If more than one person waiting client is advised to go away and come back later.
In session, if the client is over 18 they get treatment protocol 1 otherwise they get treatment protocol 2.
Sketch flow chart that captures logic of the following process.
Organization consists of intake personnel, counselors, followup social workers, and clerical staff.
When a new client contacts the organization intake personnel determine which of four types of case it is by asking two questions.
If a client is returning having already been "typed" she is sent to the appropriate waiting room.
Types 1 and 3 are referred to counselor A, type 2 to counselor B, type 4 to counselor C.
Client goes to waiting room until counselor is free.
Sessions take 1 hour so the wait can be long. If more than one person waiting client is advised to go away and come back later.
In session, if the client is over 18 they get treatment protocol 1 otherwise they get treatment protocol 2.
1007
1007
set counterA = 3
is counterA = 0 YES - take left branch
set counterB = 0
is counterB < 3 YES - take left branch
blue
increment counterB to 1
is counterB < 3 YES - take left branch
blue
increment counterB to 2
is counterB < 3 YES - take left branch
blue
increment counterB to 3
is counterB < 3 NO - take right branch
red
new line
increment counterA to 1
is counterA < 3 YES - take left branch
set counterB to 0
is counterB < 3 YES - take left branch
blue
increment counterB to 1
is counterB < 3 YES - take left branch
blue
increment counterB to 2
is counterB < 3 YES - take left branch
blue
increment counterB to 3
is counterB < 3 NO - take right branch
red
new line
increment counterA to 1
While B
D
Do A
Do something
E
Repeat
Until C
While B
D
Do A
Do something
E
Repeat
Until C
While B
D
Do A
Do something
E
Repeat
Until C
While B
D
Do A
Do something
E
Repeat
Until C
While B
D
Do A
Do something
E
Repeat
Until C
If A and if B then do C, otherwise do D.
A is true
B is true
A is true
B is false
A is false
B is true
A is false
B is false
If A and if B then do C, otherwise do D.
A is true
B is true
A is true
B is false
A is false
B is true
A is false
B is false
1005
Backwards Diamond Branchings
Diamonds not closed
Confusing reunions of branching flows
If I have anything that is due tomorrow then if I am acing the class already and if I have some money I’ll go out drinking by myself (since all my friends will be busy), but if I don’t have any money I’ll stay home and watch reruns on cable. If, on the other hand, I’m not getting an A in this class, I’ll stay home and study. If I don’t have anything due tomorrow, then if I have some money I’ll see if some friends are around and if so I’ll party with them, otherwise, I’ll drink alone, but if I don’t have any money I’ll just stay home and watch reruns on cable.
If I have anything that is due tomorrow
if I am acing the class already
if I have some money
I’ll go out drinking by myself (since all my friends will be busy)
but if I don’t have any money I’ll stay home and watch reruns on cable.
If, on the other hand, I’m not getting an A in this class, I’ll stay home and study.
if I don’t have any money I’ll just stay home and watch reruns on cable.
If I don’t have anything due tomorrow, then if I have some money
I’ll see if some friends are around
if so I’ll party with them
I’ll drink alone
If I have anything that is due tomorrow then if I am acing the class already and if I have some money I’ll go out drinking by myself (since all my friends will be busy), but if I don’t have any money I’ll stay home and watch reruns on cable. If, on the other hand, I’m not getting an A in this class, I’ll stay home and study. If I don’t have anything due tomorrow, then if I have some money I’ll see if some friends are around and if so I’ll party with them, otherwise, I’ll drink alone, but if I don’t have any money I’ll just stay home and watch reruns on cable.
If I have anything that is due tomorrow
if I am acing the class already
if I have some money
I’ll go out drinking by myself (since all my friends will be busy)
but if I don’t have any money I’ll stay home and watch reruns on cable.
If, on the other hand, I’m not getting an A in this class, I’ll stay home and study.
if I don’t have any money I’ll just stay home and watch reruns on cable.
If I don’t have anything due tomorrow, then if I have some money
I’ll see if some friends are around
if so I’ll party with them
I’ll drink alone
If I have anything that is due tomorrow then if I am acing the class already and if I have some money I’ll go out drinking by myself (since all my friends will be busy), but if I don’t have any money I’ll stay home and watch reruns on cable. If, on the other hand, I’m not getting an A in this class, I’ll stay home and study. If I don’t have anything due tomorrow, then if I have some money I’ll see if some friends are around and if so I’ll party with them, otherwise, I’ll drink alone, but if I don’t have any money I’ll just stay home and watch reruns on cable.
anything due tomorrow?
acing the class?
have some money?
drinking by myself
stay home and watch reruns
stay home and study.
stay home and watch reruns
have some money?
friends are around?
party with them
drink alone
If I have anything that is due tomorrow then if I am acing the class already and if I have some money I’ll go out drinking by myself (since all my friends will be busy), but if I don’t have any money I’ll stay home and watch reruns on cable. If, on the other hand, I’m not getting an A in this class, I’ll stay home and study. If I don’t have anything due tomorrow, then if I have some money I’ll see if some friends are around and if so I’ll party with them, otherwise, I’ll drink alone, but if I don’t have any money I’ll just stay home and watch reruns on cable.
anything due tomorrow?
acing the class?
have some money?
drinking by myself
stay home and watch reruns
stay home and study.
stay home and watch reruns
have some money?
friends are around?
party with them
drink alone
anything due
tomorrow?
acing the class?
have some money?
drinking by myself
stay home and watch reruns
stay home and study.
stay home and watch reruns
have some money?
friends are
around?
party with them
drink alone
modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use.[1] The concept of modularity is used primarily to reduce complexity by breaking a system into varying degrees of interdependence and independence across and "hide the complexity of each part behind an abstraction and interface" WIKIPEDIA
infancy |
career |
university college military apprenticeship
salad
soup
shellfish
nuts
ice cream
pie
tiramisu
cake
beans
potatoes
peas
carrots
fish
beef
chicken
pasta
We
She
John
They
You
Someone
caught
found
brought
took
painted
insulted
car
dog
wall
house
dice
nun
Clark, C. and Tindale, Adam. "Flocking: A Framework for Declarative Music-Making on the Web"
Draw anything inside the square as long as it terminates on the edges with a dark line at the gateways.
Reese: get a number, pass to Chyna
Chyna: receive number, divide by 2; pass quotient to Marcin, remainder to Lucky
Marcin: if quotient is not zero, pass it to Reese; otherwise, tell Cindy to read what Lucky has written.
Lucky: write the remainder down, right to left
data[1] | data[2] | data[3] | data[4] | data[5] |
---|---|---|---|---|
7 | 2 | 9 | 5 | 4 |
condition A
condition C
condition C
condition C
condition C
S
T
U
V
W
X
Y
Z
condition B
condition B
Start with decimal number, "D"
Divide by 2.
Note the result.
Write down the remainder.
Repeat process with the result.
Continue until nothing left.
D=6
divide by 2
result = 3, remainder = 0
divide by 2
result = 1, remainder = 1
divide by 2
result = 0, remainder = 1
610 = 1102
Start with decimal number, "D"
Divide by 2.
Note the result.
Write down the remainder.
Repeat process with the result.
Continue until nothing left.
call decimal number D
divide D by 2
write remainder R to L
replace D with result
result=0?
read remainders
123 /2 = 61 R1
61 /2 = 30 R1
30 /2 = 15 R0
15 /2 = 7 R1
7 /2 = 3 R1
3 /2 = 1 R1
1 /2 = 0 R1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
2
0
32
64
16
8
action A
action B
action C
green hair/fur/feathers?
2 legs?
action A
action A
action B
action B
action C
action C
action C
Flowcharts describe DETERMINISTIC processes
At any decision point the condition can be evaluated and one branch or another can be chosen.
Our convention of requiring decisions to be based on YES-NO or TRUE FALSE conditions ensures that branches are mutually exclusive.
How to proceed at an intersection: right or left
Secret codes: if the text contains the word "bread," launch the app; if the text contains the phrase "bread and roses," don't launch the app; if the text contains the word "roses," shut the system down.
Compute X. If X is greater than 0 and less than 12, start program A; if X is greater than 10, launch program B. If X = 11, launch program C.
What to order? If you are hungry and thirsty, order a hot dog and a beer; if you are hungry but not thirsty, order a pretzel; if you are thirsty, order a cola.
If you are over 40 you can sign up for a vaccine in May. If you are under 30 you can sign up for a vaccine in June. If you are in an at-risk category you can sign up now.
Ordinary Deck of Cards. Choose one card at random. Which statement are exhaustive, which are muutlly exclusive?
"you chose a red card" and "you chose a black card"
"you chose a 'face' card" and "you chose an ordinary card"
"you chose a heart," "you chose a club," and "you chose a diamond"
"your card is a number card," "your card is red", "your card is clubs,"
"your card is spades"
"you chose a red card" and "you chose a seven"
EX
ME
EX
ME
EX
ME
EX
ME
EX
ME