In this report, you are to keep track of the time you spend on each project. Please also keep track of interruptions in your work (e.g., someone came over to talk to you, telephone call, stopped to read email, etc.). For each project, please fill out a table like the following:
Date Who Start Stop Inter Time OnTask Comments 3/23 MW,IS 1:02 1:47 10+5 30 Analysis of part 1, writing test cases, Design of solution 1:47 2:19 10 22 Learning inter-type declarations 2:33 2:48 15 Got boundary condition wrong. Hmm, misunderstood what part 1 wanted 2:48 3:11 5 23 Find bug in my AspectJ code 3/24 MW,LF 10:03 10:10 7 10:10 10:22 12 regression testing (oops, new version didn't quite work on previous test cases) MW,IS,LF 10:20 11:00 10+5+5 20 **part 1 finished** //etc.// Total Time On Task 129 Total Lines of Code 27 Total Lines of Tests 67 Total Pages of Design 20
Notice in the in the example above that Time on Task is equal to (Stop-Start)-Interruptions.
At the end of the summary, please total up the time spent on the assignment, and also give me an estimate of the total number of new/changed lines of code you wrote. Keep track separately of the number of lines of code and number of lines of tests. You can use the Unix tools diff and wc to help you make these line counts.
The design document may be any text with pictures that you produce as an abstraction of your code. We use programming languages that facilitate making our programs look like designs and therefore we have less of a need for elaboarte design documents. Our programs are already fairly abstract.
You need keep track of time only to the nearest 10 or 15 minutes.
Put in as many comments as you find useful. The goal is that you should be able to look at these notes a week or two later, and say "oh, I remember what went wrong on that problem." (So hopefully you'll solve the same problem more quickly if it comes up again.) I'm particularly interested in finding out what portions of the problems you found difficult, what are typical bugs and errors, etc., and anything you can do to help me out will be appreciated.
Here I've separated out regression testing as a separate activity. Do that if it's significant. (Regression testing is *always* a good idea).
The Development Diary will be graded. If they are missing or unsatisfactory, you will be penalized approximately 10% of the value of the assignment. You will be penalized if you do not include total Time on Task, Lines of Code, and Lines of Tests.
Adapted from notes of Mitchell Wand for the PPL course.
Karl Lieberherr