CS 2704 : Project #2


Assigned: October 23
Intermediate Demonstration: November 1
Final Demonstration: November 11
Points: 75



Objectives

The objectives of the project are to:

These objectives will be achieved by the development of a simple drawing tool.

Description

In this project a simple drawing tool will be built. The tool provides a canvas on which a set of basic shapes can be drawn. Basic shapes can be combined to form a composite shape that is itself treated as a single entity. A composite shape can be combined with other basic or composite shapes to form another composite shape. A shape, whether basic or composite, can be drawn, moved (right, left, up , down), and resized (expanded or contracted). The simple drawing tool is suggestive of those found in such systems as McDraw, McPaint, xfig or FrameMaker.

The specification deliberately leaves to each team many detailed decisions about the exact "look and feel" of the drawing tool. Any reasonable decisions made on these issues are acceptable.

The easy manipulation of a wide range of shapes requires the use of inheritance, dynamic binding and polymorphism. The basic class hierarchy that needs to be created has the following structure:


Your team may choose to implement more basic shapes than those shown in this figure. At least all of the basic shapes shown in the figure must be implemented.

Programming Teams

The simple drawing tool will be developed by a team of two people. Each of the team members is expected to contribute equally to the development of the system. Each team member will receive the same grade for the project. A student should inform the instructor at the earliest possible time of a situation where the student's partner is not contributing equally to the project's development. It is considered a violation of the Honor Code to allow a team member to contribute less than an equal amount or to benefit unfairly from the work of another student.

Project Plan

A project plan lists the sequence of steps that the team has taken or anticipates taking to reach the project goal. Each step shold have the following properties:

For the current project, a project plan of 10-20 steps is reasonable.

The project plan is not static; it is an evolving record of the team's accomplishments and objectives. The project plan is created at the beginning of the project and is subject to, possibly many, revisions as the work on the project progresses. The initial project plan is a team's best judgement of how the work on the project will procede. In the middle phase, the project plan is a record of the steps already completed and the team's best judgement about how the remaining work will be accomplished. When the project is completed, the project plan is an accurate record of the project's history. For the current project, it is reasonable to expect that the project plan will be updated betwen 5 and 10 times.

Each team must have a set of project plans: The original project plan and all subsequent revisions. The original plan and each revision should be dated to shown when the plan was created or revised. A project plan can be kept in an editable text file for convenient sharing between the team members and easy updating throughtout the project. The current set of project plans must be turned in at the intermediate demonstration and at the final demonstration.

Evaluation

A live demonstration conducted in the McBryde 116 lab must be given by each team on the dates of the intermiediate and final demonstrations. A sign-up sheet will be distributed in class prior to the date of each demonstration. Each team must sign up for one of the demonstration time slots.

A team's project will be evaluated by how well the team:

In addition to the live demonstration, each team must submit a printed listing of their code and a current set of project plans at each demonstration, The printed listing and the plans must give the name of the two team members. The evaluators reserve the right to deduct points for egregious violations of reasonable user interface standards or coding practices. The evaluators also reserve the right to award bonus points to teams that develop projects of clearly superior quality.

Available Resources

A demonstration program illustrating the basic use of pulldown menus, popup menus, mouse control and drawing will be distributed and discussed in class. The complete reference manual of the the wxWindows system is available on the lab machines in /usr/local/wx/docs/referenc.ps. This file can be view via ghostview. The reference manual is too long to be printed in its entirety. A small number of paper copies of the complete reference manual will be available in the lab. These copies may not be taken from the lab area.