The product to be developed is to be a cross-country flight planner for a small airplane.
Object-oriented design will be used, with design stress to be laid upon the use of abstraction, encapsulation, dynamic binding, and loose coupling to provide clean structure and maintainability. Documentation at three levels will be provided. One level will be planning documents. A second level will be development/maintenance documentation in the form of code comments and man pages. The third level will be user documentation. (Students will maintain a fourth level: an accounting of their individual time and activities.)
The final product will include the legacy of code, testing structure, documentation, and archives. Each team will also deliver an honest time accounting for its development efforts, from which a final ``price'' for the product can be determined.
The development effort will follow several phases, consisting of:
In these phases there will be planning documents to be delivered, on which a team member must sign off, indicating that the quality assurance of the work was their personal responsibility. Class presentations of team material for review may be required, for which an assessment of personal responsibility will also be made. These factors will contribute to a person's individual grade.
The team as a whole will will also be assessed through the quality of the system material delivered. This will be judged in two ways. Firstly, by the ``customer's'' (instructor's) evaluation of its organization, style, documentation, testing, careful version control, and correct execution. Secondly, by the ``maintainer's'' (another team's) evaluation of its organization, style, documentation, testing, and ease of enhancement.
Additionally, before teams are chosen, individuals will be responsible for some short assignments to provide environment training and personal calibration.
A individual's final grade will be given as