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).
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.
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.
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.
Evaluation
Each group must deliver a plan for implementation of a full program,
including a time-table of test,design, and final deliverable.
Milestones
Xfig