The CS160 syllabus requires students to become familiar with using software development tools. Toward this goal I am requiring all teams to use Subversion, Trac, JUnit, and an IDE.
I think everyone has started using Subversion (run by cvsdude). However, I notice that not all students are committing changes to the team repository. Individual activity using tools as reported by trac/timeline will affect your grade.
Along with our subscription to cvsdude, we get a subscription to trac, which is a service that provides a wiki, blog, repository browser, forum, and bug tracker (tickets).
Set up a wiki for your team. The following web site contains patterns for wikis:
http://www.wikipatterns.com/display/wikipatterns/Wikipatterns
A ticket is a request to fix a bug, add a feature, or perform some other task (the ticket type). A ticket is assigned to a team member (the ticket owner). A ticket has a priority: blocker, critical, major, minor, trivial. A ticket can be associated with a milestone, component, and a version. A ticket also has a time when it was created.
A ticket can be reassigned or resolved (fixed, won't fix, invalid, duplicate, works for me).
Use JUnit to set up a test suite for each component model. A test suite should consist of numerous test cases for each model method.
Each team will submit a Component Developer's Manual at the end of the semester. This manual will explain to future component developers the steps necessary to create a component that can be plugged into the MVCWorkbench. The manual may contain an example, UML diagrams, and a brief description of the workbench architecture as needed. The manual should also have appendices, one for each component and written by the component developer. Each appendix should contain a description of how to use the component as well as a description of how the component was developed.
Here's a sample outline:
MVCWorkbench Component Developer's Manual
Overview of the MVCWorkbench and its
design
The interfaces and classes important
to the component developer
How the workbench uses these
interfaces and components
etc.
How to develop a component
Step 1: The component model
Step 2: The component views
Step 3: The component controllers
Step 4: The component
Step 5: Packaging and compressing
the component
Step 6: Deploying the component
Appendices
A Spreadsheet component
How to use the spread sheet
Includes a demo with lots of
screen shots
The design and implementation of the spread sheet
component
The spread sheet model
The
spread sheet table view
The spread sheet controller
The spread sheet component
A Tic-tac-toe component
A circuit simulator component
A project manager component