CS 50: Programming Project |
UCSB Computer Science |
2007 Fall
|
Iteration 3
Devise acceptance tests for the functionality that had been agreed upon
between you and your client. In so far as is practical, the client should agree before the demonstration that these tests suffice to demonstrate the agreed upon functionality.
Deliverables
Mail the instructor
a jar file, named <teamname>.jar before the
demonstration. It should include the
following directories
and files (the names do not have to match exactly):
Files
- build.xml
- has the
targets needed
to build, test, and run your system. - Do the targets work?
Directories
- documents - has
an index.html
file that contains [links to] the following:
- Vision
statement - Is
it clearly written? Is the extant work researched?
- Project development principles - Is English crisp? Are
principles traceable to practices?
- Project development practices - Is English crisp? Are
practices traceable to principles?
- Javadoc - all public classes and public methods
within those classes should have Javadoc. For guidance on
this topic, please see Sun's page on
how to write javadoc comments. - Complete? Useful?
- UML
Class diagram of key classes. Represent: generalization, realization, aggregation, and composition. Do not represent methods or data members.
- Readme
- complete,
detailed instructions on how to: - Do instructions work
as stated?
- build your system
- test
your system
- run your system.
- Postmortem - Does
it provide
answers?
- What went right?
- What went wrong?
- Specify any changes to your principles and
practices for the next iteration.
- Peer reviews - each team member reviews every other
team member. Provide comments as needed. Do they exist?
- Researched and gathered information
- Unsatisfactory: Does not collect any
information that relates to the topic.
- Developing: Collects little
information. Some relates to the topic.
- Satisfactory: Collects basic information. Most
relates to the topic.
- Exemplary: Collects all relevant information.
- Fulfilled team role's duties as assigned
- Unsatisfactory: Does not perform any duties of
assigned team role.
- Developing: Performs few duties.
- Satisfactory: Performs nearly all
duties.
- Exemplary: Performs all duties well.
- Shared the work equally
- Unsatisfactory: Always relies on others to do
the work.
- Developing: Rarely volunteers to do the work.
- Satisfactory: Volunteers to do nearly an equal
share of the work.
- Exemplary: Always willing to do at least an
equal share of the work.
- Listened to other teammates' points of view
- Unsatisfactory: Never allows others to speak.
- Developing: Usually talking, interrupts others
a lot.
- Satisfactory: Makes an effort to listen. Rarely
interrupts.
- Exemplary: Listens carefully. Never interrupts.
Restates what was said to confirm to the speaker that the message was
correctly understood, whenever the message appears ambiguous.
- Other (specify)
- library
- has executables, typically jar files, that are not
written by your team, but are needed to
run your project.
- source -
your top-level package structure must be
teamname.projectname. - Good
OOD? Compatible with Practices (e.g., coding conventions)?
- test -
include your unit test source files. Each test class is in the
same package as the class it tests. You also may include these
files in the source directory. Are
they reasonably thorough?
- testlibrary
- has executables, typically jar files, that are not
written by your team, but are needed to test your project.
Overall
- Requirements Does the system function as
previously agreed?
- Substance How substantial is the system?
Demonstration
- Build your system using Ant
- Run your unit tests using Ant
- Show us your Javadoc & class diagram
- Demonstrate that your system has all the functionality that you agreed upon with your client.