CSC 307 Introduction to Software Engineering Project Milestones

Requirements

Due: 1/13/11

Each team is to prepare a formal requirements document. A pdf version of the document should be submitted to the Digital Dropbox by one team member by the due date. The system features were described at a high-level in class. You are expected to clarify, expand, and improve the requirements in collaboration with the project customer (Dr. Janzen). Your requirements document should include functional requirements, non-functional requirements, and user interface prototypes (electronic, but not functional). The functional requirements should include use cases, scenarios, and text describing all requirements in detail. The requirements document should follow the template provided at SRS Outline. Acceptance tests should be provided for all functional requirements.

You should identify key tasks to be completed and task owners from your team. You should track your tasks using a software tool (e.g. Trac tickets, Rally).


Architecture

Due: 1/27/11

Each team is to create a high-level system architecture. A pdf version of the document should be submitted to the Digital Dropbox by one team member by the due date. The architecture will be documented in the following ways:

  1. architecture document capturing key decisions in terms of technologies, architectural style, logical separations, key interfaces and classes
  2. architectural views; at a minimum including deployment view, structural view, and sample sequences corresponding to key user scenarios
  3. functioning vertical prototype
The architecture document should follow the template provided at Architecture Template.


Iteration 1

Due: 2/10/11

Each team should implement and deploy the first set of features (edit lab, display xml). Your system should be deployed to Google App Engine. One member of each team should send an email to Dr. Janzen with the URL of your deployed system. Your system should be polished and adequately tested to ensure that there are no major defects. Defects should be tracked with some defect/ticket tracking system (e.g. Trac). You should check in all your code in the svn repository on a regular basis. Automated tests should exist for all non-GUI components.

Each team will do a short (5 minute) demo of their system at the beginning of class on the due date. After this, each team will meet with Dr. Janzen to review the iteration (product, process, people), and to set priorities for the next iteration. Teams will present and meet in the following order:


Iteration 2

Due: 2/24/11

Do the same as in Iteration 1, but add features. Most likely your features include CRUD all lab elements (e.g. name, description, steps, text, segments, evaluators, formatting, labtable). As a stretch goal, start work on the ability to save and read xml lab files to the user's computer or in a Google App Engine datastore.

Teams will again do a short presentation of functionality and a brief discussion with Dr. Janzen during lab on March 1. The order will be:


Iteration 3

Due: at final exam

Complete a polished, functional, and high quality final version of your application. Deploy it to Google App Engine. Create a zip file that contains all artifacts necessary to maintain your application (e.g. source code, configuration files, images). Upload your project zip file to the Blackboard Digital Dropbox.

Presentation

Due: at final exam - start promptly at 1pm

Prepare a formal presentation of your team project. Your presentation should address the following four areas:

Everyone on the team should participate in the presentation.

The presentation should last 12 to 15 minutes.

The presentation should be well rehearsed and polished. Know who is going to say what. Be sure things flow well and transitions are smooth.

Presentation Order: