Team 2 Assignment 2: Implementation
Your team must do the following:
- Implement the requirements for
your team's
project following your
design document.
- The following methods in the source code must have
explicit contracts:
- Mutators
- Nontrivial inspectors
- Constructors
- Each class should have explicit invariants if necessary
- The contracts should be verified as follows:
- Two non-trivial mutator methods from the code of each team
member must be inspected
- Each of these inspections should be accompanied by a report in which
the final values of each changed element must be included for each
execution path. The full trace tables need not be included.
- If any inspected method is subsequently changed, it must be
re-inspected.
- Methods presented in class for inspection do not count
towards the required two.
- Any contracted methods that are not inspected must have
automated test cases to test the contracts.
- Any updates to the source code should be reflected by updates to:
- The design document, if the design changes
- The black box, if interaction with the user changes
- The requirements document, in consultation with the instructor only
Making Trade-offs
As you approach the deadline, you will no doubt be encountering trade-offs.
Here is some advice about making the right trade-offs:
It is better to have a program that meets fewer requirements but with:
- Proper contracts for every nontrivial method
- Adequate inspections and/or unit tests
- Methods that are easy to read
than to have a program that meets more requirements but lacks any or all of these three items.
In other words, I will award higher grades to software that is properly engineered but lacking in some functionality, than to software that is poorly engineered but has more functionality.
Deadlines
For Thursday, March 18, Tuesday, March 23, Thursday, March 25, and Tuesday, March 31:
- Each team member must have one non-trivial method ready for inspection
during class. This method will not count towards the two required
inspections for each team member. However, successfully inspected methods
from class are not required to have unit tests.
For Thursday, April 2:
- No further modifications to the code may be made after 1:15 pm.
- A JAR file containing all code needed to independently execute the
program should be submitted to Sauron.
It need not be an executable JAR, but that is encouraged. A README file
detailing everything necessary to run the program should be included in the
JAR file.
- Each team will demonstrate their project during class in the lab.
For Tuesday, April 7:
- Clean up all discrepencies between the code and the requirements document,
design document, and black box.
- Submit a status document containing the following:
- Updated risks
- Successfully implemented requirements
- Known bugs
- Suggestions for the next team for code improvement
- Records of inspections (should be at least 6-8 total)
- Submit all documents using Sauron.