CS 329: Project #3

Due Friday, September 25, 2015

The following project is to be done in groups of 2-3 people.

Project: Catering Planner

Your job is to build an application that will manage the menu planning and shopping list for a multi-day catered event. The specifics of the interface and user interactions are up to you, but the system should support the following features:

Data Abstractions and Specification

For every class you implement, include an appropriate representation invariant check. This method should be called at the entry to and exit from every public method call.

In a similar vein, if a public method makes assumptions about its arguments (beyond the concerns of type information), include an assertion of a precondition at the beginning of the method. Post-conditions are sometimes harder to implement in this way, but put them in where you can and where it's useful to do so.

Bonus features

I've left off a lot of considerations from the specification above. For pride of place and skills development of your final semester project, you might add in some, all, (or none, I suppose), of the following features:



On Friday, you will demo your software, reveal the secrets you've gleaned about other teams' implementations, and we'll critique the components as a group.

John H. E. Lasseter