Voodoo InC

Viewing Object Oriented Designs On-screen On-paper and In Code

Final Project, CPS 108, Fall 1996

Due: December 12, Demo/Deliverables by December 19 Demo/Deliverable Deadline is HARD


You have approximately two weeks for this project. You will not be able to deliver a working, full bells-and-whistles program in that amount of time. You should/will be able to deliver a prototype, a well-thought out design and plan for delivery of system and sub-systems, and a report of key issues that you see as essential to the success of the projct.

Final groups

Division of Labor

The success of the group project will depend on how well the group can divide tasks and expertise. By Friday, December 6 (see milestones) each group should have designated key roles for the overall project and key roles for people in charge of each important subsystem/class/module of the project. This means that each group member is expected to be an "expert" as far as some part of the project's design/implementation.

Specifications/Requirements

You must develop an appliation for laying out class diagrams. Using familiar drawing/paint concepts (move, copy, cut, paste, etc.) the user should be able to draw class diagrams, show inheritance, show inclusion (by reference and otherwise), show abstract base classes, and show other relationships you deem useful.

A class diagram should be save-able, read-able, and print-able. Printing can be done by third-party programs, but ideally will be handled by Voodoo InC. Groups will decide on how to read and save, see material from Xfig for one idea.

The application should support copious help features (balloon help?). It should be possible to add new graphic images, or change the shape of images (e.g., from rectangle to old-style Booch cloud) easily. The flexibility of the design is much more important tha the functionality.

The program should be able to generate either C++ or Java source (and, stub implementations) from a diagram.

The program should support reverse-engineering: construction of class diagrams from header/source files (you won't need to implement this, but must address the issues needed to support this feature).

Evaluation

Each group must deliver a plan for implementation of a full program, including a time-table of test,design, and final deliverable.

Each group must deliver a written explanation of anticipated trouble spots: parts of the program that may be hard to develop. This should include a rationale.

Each group must deliver a working GUI prototype. Evaluation will be based on simplicity and ease of use, and the coherent design, rather than on functionality (although functionality will be of great importance as well.)

More details to follow.

Milestones

Xfig

*