%!METHOD: What is it like to be <AN ELEVATOR>?
% METHOD: What is it like to be AN ELEVATOR*?

% NOTE: (*) Where this method refers to AN ELEVATOR, the name of any comparable software system may be substituted.

% REMEMBER:
% WHAT: Understanding software systems by becoming them.
% HOW: Creating a flowchart to incarnate a software system you use everyday.
% WHEN:
% WHO:
% URGENCY:
% NOTE:

% WARNING: Uninformed members of the public may panic when confronted with a software performance in a closed space.

% EXAMPLE: What is it like to be an elevator?
% -------------------------------------------
    
what  
is  
it  
like   
to  be  
an  
elevator?

"from 25th floor to 1st floor"

light on button light of 25th floor
check current floor
if current floor is 25th floor
no
if current floor is ... 
go one floor up
... smaller than 25th floor
go one floor down
... bigger than 25th floor
stop elevator
turn button light off of 25th floor
turn door light on
open door of elevator
play sound opening sequence  
yes
start
user pressed button of 25th floor
close door of elevator 
if door is closed
user pressed 1st floor button
start timer for door closing  
if timer is running more than three seconds
yes
yes
light on button
go one floor down 
no
if current floor is 1st floor
update floor indicator 
check current floor 
stop elevator 
no
yes
light off button
turn door light on
open door of elevator
play sound opening sequence  
end
update floor indicator

% SRCCODE: quaverbatim

% TODO: flowchart
% http://observatory.constantvzw.org/documents/joseph/flowchart.pdf

% SHOW: tgsoimages.svg doingelevator

% RELATESTO:
% SOURCE: _What is it like to be <AN ELEVATOR>?_ was developed by Joseph Knierzinger, Michaela Lakova + other members of the SSOGY group.