View this PageEdit this Page (locked)Attachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Spring2004 M2 - Add some error checking and a UI for editing persons and families

Forming Teams

For this milestone you will need to form a group of 3-4 students from within the class. You might find it helpful to read about Team Issues, particularly the Tips for working in groups. This group will be responsible together for milestones 2 through 6. Your first task for M2 is to form your group (use the Spring 2004 Team Formation Page to find members), and create a team entry on the Swiki in the Spring 2004 Team Declaration Page. You must declare a team no later than January 29. YOU MAY NOT DO THIS PROJECT ALONE (or in a 2 person group)!!

Look at the page on Code Management for suggestions on how to transfer files between team members.

You may reuse any code that you wrote for M1 if you feel it is useful. The only restriction is that the M1 code reused must have been written by one of the members of your group.


It is now time to begin designing and implementing user interfaces. In addition, you will also implement some checks to make sure that the information stored in your genealogy database makes sense.

The specific requirements are:
  1. You will now be combining and altering your individual designs for Milestone 1 into one team design for Milestone 2. In performing your object oriented analysis (OOA), you will create scenarios that cover all of the major functionality of the assignment (see About Scenarios) and CRC Cards to define your classes and the relationships between them. You will also perform object oriented design (OOD) by creating a UML class diagram to reflect your analysis.
  2. You will now produce a user interface to provide interactive access to the genealogy objects in Milestone 1. Your interface must provide a user with a way to select a Person or Family defined within a Genealogy. The information associated with the selected Person or Family will then be displayed and available for editing. Editing may include changing existing information or adding new information. The categories of information to be displayed and edited are those that could be set by the methods required in Milestone 1. The interface must also support addition of a new Person or Family.

    Note that your interface is defined on a Genealogy. It provides access to the Persons and Families defined in a particular Genealogy. Since Persons and Families are linked via the roles that Persons play in Families, your editing functions must include a way to create such links.

  3. You will also implement some checks on data entered into your genealogy records. The following consistency checks are required:

    • The death date of a Person must be after his/her birth date.
    • The birth date of a child must be after the birth date of the parents and before their death dates. (This specification deliberately ignored certain details, like a father dying between conception and birth.)
    • A Person cannot be a parent and a child in the same Family.
    • A marriage date must be between the birth and death dates of the spouses.
    • The husband and wife of a Family must be of appropriate gender for their roles.

    As you implement these checks, be sure that you do so in as general a way as possible. You get to decide just when to apply them within this Milestone, but future Milestones may require that you invoke them in a particular way.

  4. Extend your SUnit tests for everything added in this Milstone. For instance, they should now include tests of your checking functions, as well as any other non-UI classes you may create. In addition, create a scenario-based test plan to test your user interface. (This approach to testing will be described in class.)


All projects should be turned in on the cs2340turnin coweb: Instructions are there for turning in files as .st fileOuts, as change sets, or as project files. Design documents (CRC cards, UML, scenarios) may be submitted on paper in class, or electronically - see the turnin coweb for details. Files should be submitted to the coweb before class (noon) on February 10, 2004.


Links to this Page