The Personal Self-Assessment Environment

Project 6 Packaging and Postmortem

Last modified: Sun Sep 26 07:29:18 HST 1999

Overview

For each project, you will need to perform both a postmortem and some packaging to complete your development activities. The postmortem activity provides an opportunity for you to reflect upon the experience of developing the software and consider ways to improve your next effort. The packaging activity involves collecting together your work products in a manner that facilitates their distribution and evaluation.

Postmortem

For this project, postmortem consists of:

  1. Run LOCC and diff your project 6 files against your project 5 files to determine the amount of new code added. Import this data into Leap.

  2. Next, invoke Hee on your psae-6 project, and condense your raw data.

    The result should allow you to compare your estimated size and time against your actual size and time. Use this data to answer the following questions:

    1. Did you overestimate or underestimate the size of this project? By how much?

    2. Did you overestimate or underestimate the time required for this project? By how much?

    3. What does the difference in planned vs. actual size tell you about your design of the system? What problems were there in your design? How would you fix them?

    4. What does the difference between planned vs. actual size tell you about the method you used to derive the planned LOC for the system from your design (i.e. your proxy)? How will you modify this method on the next project?

    5. What does the difference between planned vs. actual time tell you about the method you used to estimate time from size? What would you do differently next time?

    6. Will you allocate total time between phases differently next time? Why?

    7. What defect types occurred most frequently?

    8. What defect types were most expensive?

    9. Which phase injected the defects which led to the most rework?

    10. What can you do to reduce the occurrence of those defects in your future projects?

    Packaging

    Correct packaging of your technical work products is an extremely important part of software engineering. In this course, you must be very careful to package your software according to the following directions. Note that these packaging instructions are essentially the same as the last project.

    1. All of your work products for this assignment must be submitted to me on a single floppy disk in Windows-readable format. During your personal interview, I will take your floppy and download its contents onto my hard disk. I will do some evaluation of your submission during the personal interview, and potentially more evaluation later.

    2. All of the work products for this assignment must reside within a single directory or folder. This project folder must be named with the following format: uhunixID-Pprojectnumber. In other words, for this project (Project 6), my folder would be named "johnson-P6". Note that the 'johnson' is all lowercase, the 'P' is upper case, and the number is the project number. Typically, if you have not named your folder correctly, I will simply give your floppy back to you during the interview and ask you to fix this error and request that you check carefully for any other packaging errors before returning for an interview. Although it would not take me much time to fix this and other sloppiness in your submissions, it takes away time I could be spending with other students discussing important content issues, so I won't do it.

    3. Your project folder should contain the following:

      • A jar file called uhunixID-Pprojectnumber.jar. In other words, my jar file for project 6 would be called 'johnson-P6.jar'. In the case of my jar file, it must be structured to enable me to invoke the P6 system in the following way:
        % java -jar johnson-P6.jar -qa test.qa -guiTwo
        
        For instructions on how to use the jar facility to create invocable jar files, see: http://java.sun.com/docs/books/tutorial/jar/basics/run.html.

        Note that I will be running your program on several test files. You should test your software extensively beforehand on both legal and illegal inputs.

      • A leap file called uhunixID-Pprojectnumber.leap. In other words, my Leap file for project 6 would be called 'johnson-P6.leap' This leap file should contain a complete and accurate record of all of the data requested for this project. This file should be a copy of your 613-data.leap file in which is located the project definition, phaseset definition, and document type definition I supplied to you, plus your time data.

      • A file called uhunixID-Pprojectnumber-postmortem.html. In other words, my postmortem file for project 6 would be called 'johnson-P6-postmortem.html'. This file should contain the postmortem discussion, as noted above.

      • A directory called "src". This directory should contain a copy of all your .java files and the .class equivalents.

      • A directory called "src-old". This directory should contain a copy of all your .java files as they were at the start of this project. In other words, running LOCC in diff mode on the contents of the src-old directory and the contents of the src directory will yield the total new size of work product created in this project.

      • A directory called "tests". This directory should contain all of the files you used as test cases for this project. This directory should also contain a file called "index.html", which lists a very short description of each test case you used to test your system. Note that a single test data file can be used to run multiple test cases.

      • A directory called "javadoc". This directory should contain the javadoc files for your system.

    Philip Johnson