home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / autopsp.zip / DOX / PG7.TXT < prev    next >
Text File  |  1994-01-24  |  4KB  |  75 lines

  1. Defect tracking is another of the primary tools of the PSP.  By keeping track of your errors you can learn 
  2. where your strengths and weaknesses are.  You can also determine how much time you spend "bug 
  3. hunting".  For example, if you logs show that you spend nearly all of your time fixing design flaws, you can 
  4. probably infer that you're not spending enough time in design. 
  5.  
  6. At first, it seems odd to predict how many errors you will have.  We'd all like to have zero for our total 
  7. expected defects, but that is not a reasonable expectation.  By planning on our errors and preparing for 
  8. them, we can minimize their impact.  It's also important to know what phase our errors are being created in 
  9. so that it's possible to pay more attention during that phase. 
  10.  
  11. Both the Defects Injected and the Defects Removed pages are very similar.  In future versions, I'd like to put 
  12. an image of an impaled bug on these pages to liven them up a little. 
  13.  
  14. While defects are the topic of conversation, you should try out the Defect Log.  This dialog simply lets you 
  15. keep track of your defects.  It is important that if you're going to track defects, you are thorough.  This 
  16. means ever defect, right down to the semicolon.  If you don't log all of the defects then your data will be 
  17. skewed and worthless.  Even though you can fix errors much faster if you are not logging them, the logging 
  18. data is useful later.  (The effort of entering the data about the error is also good negative reinforcement not 
  19. to make errors in the first place!) 
  20.  
  21. You can update your Actual data fields on your project pages with the log too.  Your defect log for the 
  22. project is automatically loaded and saved when you open or exit from the dialog. 
  23.  
  24. I use a different classification for errors than the one described in 
  25. _A_Discipline_For_Software_Engineering_.  Here is my classifications and their meanings: 
  26.  
  27. PNC    Puncuation. 
  28.     This includes all the simple typos that come from C++ 
  29.     Included are missing ;  incorrect {} () lack of :: and the     like.  This does not include < > = = 
  30. ! && || because these     are logical errors.  
  31.  
  32. SCP    Scope. 
  33.     Scope deals mostly with lack of include headers.  Any time 
  34.     you want to use something and find that it is not available     you have a scope error.  This 
  35. includes public: and private:     errors. 
  36.  
  37. ARG    Arguments. 
  38.      Argument refer to function matching.  From the header to the 
  39.     definition to the usage.  If the arguments are inconsistant     it's an ARG error.  Included in 
  40. arguments is forgetting to     tell the compiler that a method belongs to a particular 
  41.     class, since the class the the method is in is a kind of an     argument. Matching returns is also 
  42. of this type, but      forgetting to return somehting is a FFNC error. 
  43.  
  44. OO    Object Orientation.      
  45.     Refers to incorrectly using the OO features of C++ in a     conceptual mis-understanding.  
  46. Failing     to correctly derive     from multiple base classes is an example. 
  47.  
  48. FFNC    Forgot Functionality. 
  49.     Indicates that I have forgotten to code some bit of 
  50.     functionality.  This must be something that I clearly     understand, but have simply
  51.     forgotten to type in.  Often for     me this is forgetting to produce output. 
  52.  
  53. CFNC    Changed Functionality.     
  54.     Built it to do one thing, but decided I like it better     different.  Usually this notes a cosmetic 
  55. change.  Things     that do not change the underlying design but do change code     go here. 
  56.  
  57. MNMR    MisNoMeR. 
  58.     Gave something the wrong name.  Either typed the name wrong 
  59.     Misspelled it, gave it multiple names, anything involving my     inability to spell. 
  60.  
  61. LGL    Logical. 
  62.     These are the errors where I have incorrectly done some math. 
  63.     Not had the > facing the right wa.  Basically, this is when     I've wrtten code that looks ok, 
  64. compiles and still dosen't do     anything useful. 
  65.  
  66. TYPE    Type. 
  67.     I have decided that I want one or more variables to be of a 
  68.     different type.  For example, deciding to move all my vars     from float to double, or from int to 
  69. long. 
  70.  
  71. ENV    Environment. 
  72.     Compiler crashes, Source code not completely saved,        General Protection Fault, Sudden 
  73. Total Existance Failure.... 
  74.  
  75.