COM 3205 Assignment #3

The third assignment has the following deliverables:

  1. System Architecture. If you change the subsystem architecture, give the rationale for it.
  2. Control Flow.
    1. Choose a global control flow and justify it.
    2. Draw a statechart diagram for your Negotiation class.
  3. Class Diagram. Just show the names of the classes, the associations, the association names (and/or role names), multiplicities and generalization links. Include exception classes. You can draw this by hand or send me a GIF file.
  4. Classes. They must be properly annotated with Javadoc comments as discussed in class. Be sure to include the preconditions, postconditions and invariants for every method. Put each class in its own file. Do not use Java packages. Only send the Java (or C++) classes. I will run Javadoc on your classes.
  5. Components. Specify the requirements for each off-the-shelf component. It is not necessary to choose one, but if you do, then give the rationale.
  6. Rationale. Give a rationale for each design decision:
    1. Subsystem decomposition if you change it.
    2. Global Control Flow.
    3. Every Design Pattern you use.
    4. Any component you choose rather than just specify.

A rationale has the following form:

  1. Issue: What is being decided.
  2. Alternatives: The relevant choices.
  3. Criteria: Trace back to documents such as the Requirements, Use Cases, etc.
  4. Arguments: Explain the tradeoffs between the choices, and why you chose what you did.
  5. Decision: The choice that was made.