Process Architecture Study: Documentation
The OBJECT-ORIENTED Designer


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.