CS 371 Homework #4: Design, phase 2

Content Due: Monday March 6, in class Talk Due: Friday March 10, beginning of class

In this assignment you continue your design of the semester project, including its user interface. Get as close to "code" as you can in a document form: think of this as a "write the pseudocode" assignment.

  1. Turn in this assignment electronically, by doing cvs add's to the doc/ directory in our project's CVS repository
  2. Correct and add details your homework #3 design content. For example, every statechart should describe the class and attribute(s) to which it refers.
  3. Merge/integrate your homework #3 content with the other teams'. Define the public interfaces between teams. For example, in the doc/ directory when you are finished, there should be one set of class diagrams, and one "details" .html file per class that contains the union of all teams' needed attributes and methods for that class.
  4. Prepare a presentation (you will have 20 minutes) on your team design. Powerpoint is more or less expected; have it available on the web and bring it on CDR and on your own laptop if possible. I will expect to hear from all team members during that 20 minutes.
  5. Prototype and demonstrate the use of the class libraries

An "A" grade on this assignment will give examples, in click-by-click detail, of how the user interface should work. It will use sketches, hand-drawn and scanned-in, or machine-generated, that illustrate what the software implementor should build. It will tie together the disparate diagrams and prose (use cases, class diagrams, statecharts) and add details to them as needed. For operations (methods) that you identify, you should add pseudocode to describe the algorithm and data structures.

User interface design is not the primary topic of this course; there is a separate course on user interface design. Certainly you should design an interface that is actually implementable using Ivib and a modest amount of work using the language's graphics facilities. Nevertheless, all else being equal your grade will be higher if your detail work produces user interfaces that are as simple as possible for the end user to manipulate. Fewer clicks and keystrokes is better; fewer dialogs is better when multiple tasks can be performed on the same interface in a clear way.