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.