PSP Exercise

Completing the Time Recording Log Form

Objective

Instructions
  1. Review the Instructions for the Time Recording Log.
  2. Obtain blank copies of the form you need.
  3. Read the attached Scenario that describes the work of Rob, a student completing a class programming assignment.  As you read and interpret the scenario, record the data in the appropriate places in the Time Log. If you are uncertain how to fill in the forms, refer to the form instructions or consult the instructor.
Unit Development Scenario

Rob is assigned to write a simple Address Book application. Rob begins work [7:30] by gathering all the resources he needs to begin. He reviews the assignment directions to be sure he understand how the Address Book is supposed to operate. [7:40] Rob creates a conceptual class diagram of the main components in his solution. He notes next to each class what its responsibilities are.  On a different page he sketches a conceptual picture of the data structure he plans to use. Then he writes a couple of sentences describing what each method will do.  He mentally walks through each of the requirements to be sure it can be carried out with his planned design. [8:12] Rob thinks that inserting a new person will be the toughest task, so he writes some pseudocode for the logic of that operation. [8:33] Rob gets up to stretch and goes to grab a soda.  While he's in the kitchen he cleans up his dinner dishes.

Returning with a soda, [8:49] Rob opens a text editor and types "public class AddressBookApp".  He studies his design notes and starts creating Java statements for the solution and simultaneously typing them into the editor.  The first three methods go smoothly, but he gets confused when working on the delete method [9:14].  He realizes his design didn't take into account two people with the same name living at different addresses. So he adds some notes to his design papers to clarify that issue.  He then corrects something in a previous method and continues coding the delete method [9:20]. While  coding the remainder of the solution he is interrupted by a 3 minute phone call from Janet who wants to confirm they are meeting in the library the next morning.  He completes coding without incident, finishing at 9:43.  Rob takes a bathroom and stretch break.

At 10:01 Rob compiles his class and gets several error messages.  One by one, he looks at the error message, finds the line of code, identifies the mistake, changes the code and recompiles it. He fixes seven errors this way.  The program compiles without error at 10:23.  It's late, so Rob calls it a night.

The next morning Rob returns to work on his module [8:23].  The first time he tries to execute the program, nothing happens. Puzzled, he examines the source code for a minute before realizing his driver isn't calling the proper method, so it never runs.  The next time he runs it the prompts appears and he invents some input data and enters it.  The output isn't correct, so he has to track down the source of the defect.  He finds and fixes the mistake, then runs the program with some different input. He continues in this fashion for about a half an hour until the program is working pretty well. He reviews the assignment and then realizes he forgot to sort the output as required.  At 9:15 he writes additional code to call the Collections sort method and adds that to his module.  It compiles the first time, and he returns to testing after 3 minutes. He continues inventing test data and running it on his program until he has to leave for class at 9:40. 

While daydreaming in his Poli Sci class, Rob thinks of something he forgot in his program.  When he returns home at 2:20 that afternoon, he checks his code to see what's missing.  He adds the new code and compiles it.  It produces an error message. He quickly fixes it and at 2:30 he returns to testing. Unfortunately, the parts that were working yesterday are now failing.  He spends ten frustrating minutes before realizing he declared two variables with the same name in different scope. He's finally content that his solution is correct at 2:45. 

Now for the tedious task of adding comments.  Rob spends fifteen minutes adding comments to his program.  He then compiles the program once more to be sure he didn’t introduce a syntax error and the program compiles cleanly [3:01].



Document History
3/27/08  JD  Initial Release