Additional Requirements

Tools

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.

IDE (Eclipse or NetBeans)

Subversion

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.

Trac

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).

Wiki

Set up a wiki for your team. The following web site contains patterns for wikis:

http://www.wikipatterns.com/display/wikipatterns/Wikipatterns

Tickets

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).

JUnit

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.

Reports

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