Back to the Transcripts Overview
Time Paper Description Conceptual Focus Mode of
Sheet Operation
00:00 Gets the problem statement handed over.
00:03 #1 Draws a sketch of a building with a number of floors and Intuition Drawing
elevators in order to achieve a deeper understanding of
the problem. This sketch involves shallow reflections
upon impacts of bushbuttons, processors etc.
00:06 Verifies the rules in the problem statement in order to
agree with himself that the rules embody a reasonable
algorithm and that the making of a solution of this
algorithm is the core of the task.
00:07 Reflects upon whether he shall choose a centralized or a Centralization Explaining
decentralized solution. His intuition says that it would Decentralization
be silly to let the floors coordinate the various Coordination
requests from the elevators. He seems, however, uncertain Independence
whether the elevators should try to coordinate their
movements or whether they should move independently. He
gives expression to the fact that if the elevators should
coordiante, he will choose a centralized solution whereas
if he chooses to let the elevators move independently he
will choose a decentralized solution.
00:08 The decentralized solution attracts him at most due to Decentralization Explaining
the fact that systems like the elevator system are to Robustness
break down now and then. He further concludes that the
decentralized solutions are more robust. He also says
that requests taken by an elevator which later on breaks
down have to be handled by one of the other elevators
00:09 #2 Draws a snapshot of the problem at a given time during Drawing
its lifetime. He gives expression to the fact that he Explaining
wonders whether he can design a solution where the
elevators move more or less planlessly. He is uncertain
whether such a solution will be able to service the
requests satisfactory.
00:10 Simulates what will happen when elevators try to service Experimenting
requests initiated by persons in the elevators.
00:12 The decentralized solution is now made his favorite Decentralization
choose. Thereby he avoids that the elevators have to
inform a central unit each time they are unavailable.
00:13 He assumes that the elevators can enquire some units in Platform
the elevator shaft to see if the floor has a request for
a person that either wants to og up or down.
00:15 Starts to outline the involved processes in his solution. Proces Specifying
This involves a proces for each elevator, a proces for Coordination
each floor, and a central proces. He states that the
purpose of the central proces is not to serve a
coordinator but more as a informator.
00:16 Suddenly he starts to wonder what the algorithm really Concurrency
says. After approximately one minute of silent Efficiency
consideration he says that the algorithm has to ensure
that all requests eventually will be serviced. The
disadvantages with his current design solution, according
to him, is that it is not very efficient in the case
where a lot of people press various pushbuttons at the
same time on different floors. He has problems with the
concurrency involved where he cannot see if his current
solution will only use one elevator at all times.
00:19 Reflects upon whether one or all elevators should try to Synchronization Thinking
service a request. After a minute of consideration he
decides that this should not be a problem.
00:21 He realizes that the above outlined problem could be Commitment Specifying
solved by letting the elevators commit themselves to the Communication
floor requests. He then starts to specify the
communication between the processes. E.g. this involves
the communication between an elevator and the central
unit where an elevator commits itself to service a
request. He also tries to describe the various states of
the processes. This involves e.g. the actual floors that
a given elevator has to visit.
00:27 Realizes that the fact that elevators commit themselves Concurrency
to service requests can cause some troubles in the cases Communication
where an elevator breaks down. What should then happen to
the requests that it has commited itself to? This problem
causes that he has to change some of the states for an
elevator and some of the communication between the
elevator and the central unit.
00:28 Starts to simulate a minor experiment in order to verify Experimenting
his design solution. He sets up a scenario with a number
of requests from floors and elevators and tests this
scenario in the context of his proces diagram.
00:30 He says that the until now outlined solution is his Explaining
design at a higher level.
00:31 #3 Starts to specify the contents of the processes from Object Proces Specifying
paper sheet number 2. At this point he names the
processes as objects for the first time during the
experiment.
00:31 Observer asks him at this point whether his objects are
to be considered as processors or processes?
00:32 He answers that he always uses processes at this design Proces Processor Explaining
level. In fact, he has not even considered the fact that
it could be processors.
00:33 He assumes that basic mechanims such as starting the Platform
motor in the elevator are already made available to him
so that he does not have to concern about such features.
00:34 Starts to specify the contents of central unit object. Object Specifying
This specification is actually coding at a lower level
inspired by the language Smalltalk. The code written down
for the central unit is just a more formal representation
of his previous reflections of the role of the central
unit.
00:36 Starts to specify the contents of the floor object. Same Object Specifying
procedure as outlined above. In this detailed specifying
procedure he realizes that he has some problems since the
ground floor and the uppermost floor are different from
the intermediate floors. He decides that he will solve
this minor problem with the use of inheretance.
00:38 #4 Starts to specify the contents of the elevator object. Object Specifying
00:38 Suddenly he says that the reason that he starts to code Reflecting
the solution is that he is then able to see how the Explaining
various objects interact in his solution. He also says
that he is convinced that the overall design is in a
stable state.
00:39 In the specification of the elevator object he reflects Object Specifying
upon how to define the last visited floor for an elevator.
00:41 Starts to simulate a minor experiment in order to Concurrency Experimenting
determine whether an elevator will be able to service a Synchronization
request reflecting a desire for going in the opposite
direction. This is done with help from the proces diagram
at paper sheet number 2. He claims that he has some
difficulties with the ground floor and the uppermost
floor in the light of aspects of concurrency and
synchronization. However, after a couple of minutes of
consideration he decides that his solution will be able
to service a request of the opposite direction.
00:45 Starts to specify the elevator object again. This Object Specifying
specification includes e.g. operations for elevator. He
also tries to describe the lifecycle of the elevator.
00:48 He discovers that the doors of the elevator have to be Communication
closed when the elevator is waiting for requests. Thereby
he has to add a new state to his elevator object where
the elevator can be in the state of not moving. In the
context of this fact, he says that one should always
avoid busy-waiting for these kinds of operations.
Busy-waiting is considered to be a waste of valuable
processor time.
00:53 Describes the states of an elevator where the focus is on Specifying
what can happen during the lifetime of an elevator. At
this point he discovers that it is not possible to cancel
a request.
00:56 He assumes that the incoming of requests can happen at Communication Reflecting
all times. He assumes that this is taken care of by Platform
interrupts of the underlying hardware. He implies that he Processor
is not able to specify this aspect in greater detail
since the actual features of the underlying hardware is
not known to him. Actually, the division into more
processors as stated in the problem statement has no real
meaning to him and he is not able to use that information.
00:58 #5 Starts to specify in greater detail what happens when an Specifying
elevator reaches a floor. His intuition says him that
this problem should not cause any trouble. He also starts
to describe this in terms of states.
01:03 He discovers that the presence of the central unit is not Synchronization Reflecting
suitable because he is then not able to switch off the Centralization Explaining
light in the pushbuttons on the floors when a request has
been serviced. He argues that the easiest thing to do is
to make a optimized algorithm in a centralized solution,
but he does not consider the centralized approach the
right one. He wants the elevators to be autonome in order
to achieve sufficient robustness.
01:06 Again he starts to simulate with the help from the proces Experimenting
diagram at paper sheet number 2. His problem is the
commitment of the elevators to the requests since he can
not guarantee that all elevators will not try to service
the same request from a floor without the use of
commitment.
01:09 He realizes that he does not need the central unit and he Decentralization Reflecting
does not want to use it due to the problems as outlined Concurrency
above. He gives expression to the fact that you can have
some concurrency problems, but all he wants to ensure is
that at least one elevator stops at a given floor when it
has got a request.
01:11 Starts to specify what happens when an elevator has to Specifying
choose its next floor for stopping. Here he specifies
that a moving elevator should check the next coming floor
in its direction to see whether this floor has a request
for the same direction and if so, the elevator should
stop and service the request.
01:16 Once more he assumes that certain features of the Platform Explaining
underlying hardware are made available to him. In this
case he wants some mechanisms which enables him to
determine where the elevators are situated in each
elevator shaft.
01:18 Discussed some aspects of concurrency when two elevators Concurrency Reflecting
reach the same floor at the same time. He is not quite
able to perceive what happens when two elevators reach a
floor at the same time.
01:19 Starts to specify the wait for request for an elevator. Concurrency Specifying
He has some problems in the light of when certain
attributes should be set when an elevator is waiting for
requests.
01:21 Starts to simulate the problem with the states diagrams Experimenting
on paper sheet number 5.
01:23 He gives expression to the fact that he now has a Reflecting
solution even though it does not seem like that. He
states that his current solution has a number of
disadvantages/problems: - sometimes the elevators will
move in vain (according to him to is of minor importance)
- sometimes the elevators will stop too often (he assumes
that this can be handled)
01:26 He realizes that there might be hidden some potentiel Concurrency
problems in the cases where two elevators arrives at the
same floor at the same time. Such aspects of concurrency
will he not treat in this solution.
01:27 The elevators will only change their direction of
movement when no pushbuttun has been pushed in the
elevator.
01:28 Starts to simulate again. He states that due to the Synchronization Experimenting
involvement of synchronization there will be a lot of Communication
communication between the elevators and the central unit.
01:29 #4 Adds some information to his specification on aspects of Specifying
elevator movement to its next destination.
01:30 #5 The change on the previous paper sheet implies that a
minor change is needed on paper sheet number 5 where he
introduces an if-statement in the state diagram that
specifies what happens when elevator arrives at a floor.
01:31 He assumes that the hardware and the software will Timeaspect Reflecting
operate as fast as necessary in order to obtain
information on requests from the floors. This assumption
is based on the fact that the calculations of the
algorithm is rather simple.
01:32 #3 He removes the central unit from paper sheet number 3. Specifying
01:33 He claims that he now has a solution ready at least in Explaining
his mind. Normally he would now begin to make a fair copy
of the design solution and start to add some information.
01:34 Observer asks on aspects of synchronization and active
objects.
01:35 He says that he considers all objects in his solution as Active objects Explaining
active and that he has placed one proces in each Proces Processor
elevator. He also says that there might be introduced Synchronization
some more processes at each processor, but he will not
treat such aspects at this design level. This is also the
case because he has not got enough information on the
underlying platform. He once more outlines the problems
of synchronization in his solution where elevators may
move in vain.
01:37 He claims that a waiting elevator (an elevator without
any requests) should be able to ask all floors for
requests and he outlines two possible solutions for this:
- the elevators ask all floors through polling - the
floors inform the elevators when requests arrive
01:38 He says that there will be some communication between the Processor Explaining
involved processors. But he is not able to specify these Communication
aspects in greater detail due to lack of information on Platform
the features of the underlying platform.
01:39 Suddenly he assumes that in this problem all elevators Broadcast Polling Reflecting
will be able to visit all floors and that this implies Explaining
that the number of floors is around 30. According to him
this is differently so,ved in taller buildings. This
further implies that the elevators will be able to poll
the floors for requests. A more sophisticated solution
would to have one more proces on each elevator processor
that knew the states of each floor. The information on
requests from the floors could then be distributed to the
elevators and this would normally be wise since one could
suppose that there will be more floors than elevators.
And this furthermore implies that there will be
broadcasted less information. He concludes that he would
use polling in his solution and that the only active
objects would be the elevator objects. At least at the
conceptuel level. However, he also concludes that there
should be something which could register the requests
from the floors.
01:42 #2 Drops the central proces and sketches the new Communication Specifying
communication channels between the elevator object and
the floor object.
01:43 #6 Starts to outline the processors involved in his Processor Specifying
solution. This outlining involves the communication Communication
channels in which the elevators and the floors
interchange information.
01:44 #3 Starts to specify the floor object. In addition, he Specifying
specifies which objects are to call the other objects.
01:47 Observer asks on aspects of more processes on one
processor.
01:48 #7 Identifies the processes on the elevator processor. One Processor Proces Explaining
of these processes is the controlling of the motor. He Communication
assumed that this particular proces was made available to Rendez-vouz
him during the design and that he should not concern
about such aspects. Other identified processes are the
panel of pushbuttons and the elevator proces. He claims
that communication between these processes should take
place with the rendez-vouz mechanism since it is
well-suited for the object-oriented paradigm.
01:52 He says that this kind of task can be attacked at Communication Drawing
different levels and the level of discussing these Priority Proces
aspects of communication is rather low. He makes an
explicit priority between the processes on the elevator
processor where the motor control is the far most
important. The panel of pushbuttons is not important
since the people in the elevator can see when a request
has been registrated by the lightning in the pushbutton.
01:56 He is quite certain that his solution does not suffer Deadlock Reflecting
from aspects of deadlock and starvation. However, due to Starvation
the distribution of control some of the elevators may
move in vain.
01:59 The observer and the OO designer discusses time aspects
informally.