Team Project Information: SUMMER 2007

COURSE NAME: Information System Design (CMPT 370)

Instructor: Dr. Abhijit Sen Information System Design (CMPT 370)

Your final project for this course will be the planning and implementation of a Tutorial system using Agile Development (XP) methodology. You will work primarily in group of 2 students (1 pair). You have to find another student to form a pair with whom you will work throughout the semester. You should propose a very small Tutorial system on some Advanced Computing Topic (Details will be discussed in the class). The requirements will consist of:  Class Common User Requirements – These generic requirements will be implemented by every team (See Appendix A)  Team Proposed User requirements – These requirements will be proposed by each team and implemented for their specific tutorial topics All main system facilities must be coded in some programming language (e.g., Java, C++, C#...), and run on either Windows and/or UNIX operating system.

Proposal Your proposal is due on the date specified on the course outline. The proposal should be not more than twelve pages in length. It should describe your plans for the project, what will be implemented, and the technologies that will be used in the

CMPT 370 Summer - 2007 2 implementation (but you are certainly free to change technologies later). Your proposal can (and perhaps should) be more ambitious than your final implementation. The report format is described below:

1. Cover page (maximum 1 page): Indicate the name of your team (choose a name), and list all team members with their full names and email addresses. 2. Basic concept (maximum 2 pages): Briefly describe the system your team proposes to build. Focus on what the users will do with the system, not how it will be implemented. 3. Requirements (maximum 2 pages): Decide on a set of user stories or use cases that you plan to demonstrate during checkpoint implementation demo. Write of user stories or use cases for the tutorial. Assign priorities to the user stories or use cases you will design and implement in order. 4. Work Breakdown (maximum 6 pages):  Now, create simple smaller tasks from your user stories, or use cases. These tasks will be assigned to programming pairs (not to each team member). Describe specifically what the assigned pair will code in order to complete that task. You may discover that you need additional tasks that do not match one-to-one with your user stories/use cases.  Estimate the time in hours required to implement each story. Create a day to day schedule for the weeks up to checkpoint implementation demo  Estimate the time in hours to write test cases for each task. (Be sure that your code for a story passes its test before you move to the next story.)

CMPT 370 Summer - 2007 3  Keep in mind that you should have a demonstrable system at the end of this iteration. You will also need to submit a 1- page Progress Report (Time Records) during your checkpoint demonstration. 5. Controversies (maximum 1 page): If everyone in your team agrees 100% with your proposed system as elaborated thus far, state so (in which case that would be all you'd need to write in this section). Otherwise, briefly explain any disagreements, ongoing arguments, or other controversies. It is not necessary to indicate which team members hold which positions.

CMPT 370 Summer - 2007 4 Checkpoint Implementation To make sure you're on the right track and will be ready for your demonstration, you will be required to submit implementation (demo will be on the dates specified on the course outline.) By this time, enough of your project should be working that you could do a small demonstration of your project and give us an idea of what will be done. You should also submit a Progress Report (Time Records). Final Implementation The final implementation of the project is due on the last day of classes (see course outline). Because of the diverse possibilities for the project content, it is difficult to specify “how much” should be implemented. Roughly speaking, it should be enough to justify the corresponding marks in a 300-level course for 2 people. Final Report The report format is described below: 1. Cover page (maximum 1 page): Indicate the name of your team (choose a name), and list all team members with their full names and email addresses. Indicate Name of the Project 2. Complete User Stories ( For both releases) 3. Technical Infrastructure Used 4. Progress Report (Time Records For both releases) 5. All Test Cases 6. Project Experience: Turn in a document that enumerates honestly what worked and didn't work well with your team project. This document is a group consensus (only one

CMPT 370 Summer - 2007 5 document per group), but can identify differences of opinion -- where some people like a practice and others didn't. Final Submission: Submit your Final report and all relevant source files and executables (.zip file) in a CD for both releases. Please provide a Readme.txt file detailing how to install and run the program.

CMPT 370 Summer - 2007 6 Appendix A:

Class Common User Requirements

 Everyone should develop the tutorial using a command line interface  The application must be Menu Driven  Display Table of contents listing Tutorial Topics  Provide users facility to practice lessons based on . User skill level . Topic of interest  Provide examples on tutorial topic  On completion of tutorial, give the user a test  Give Tests/quizzes with set of questions (randomize order of questions) based on . User skill level . Topic of interest  Provide feedback to the user as the tutorial progresses o Display user score (how many correct and incorrect answers)  Some explanation on correct and incorrect answers  Time based Quizzes (optional)  Save quiz scores for each user for future reference  Display performance data on user request  On start ask for username

CMPT 370 Summer - 2007 7 References

Unit Testing:  xUnit: http://www.xprogramming.com/software.htm  Junit: http://junit.org  NUnit: http://sourceforge.net/projects/nunit/  CSUnit: www.csunit.org/index.php

TDD http://c2.com/cgi/wiki?TestDrivenProgramming http://c2.com/cgi/wiki?TestFirstDesign http://www.testdriven.com/ http://www.xprogramming.com/xpmag/testFirstGuidelines. htm http://www.objectmentor.com/omSolutions/agile_xp_differ ences.html FIT:http://fit.c2.com/ Kent Beck: Test-Driven Development: By Example, Addison-Wesley, 2002.

Return to CMPT 370.

CMPT 370 Summer - 2007 8