CSSE 220: Team Project

The primary aim of the team project is to learn the use of key software engineering tools. A secondary aim is to learn teaming skills. As such, the grading scheme will focus on those two activities.

General Project Specifications

Design Documents

You must use the object-oriented design technique discussed in the book and in class to generate CRC Cards, user stories, screen layouts and a UML Class Diagram for your project. Name your class with the main() method Main.

Before brainstorming candidate classes, you will find it helpful to do two things. First, decide as a team which features sound most interesting to do and which you'll want to do first (cycle 1). Second, make some sketches of potential screen layouts for your project.

You must draw your UML Class Diagram using UMLet.

Short development cycles are a key feature of Extreme Programming. This is especially useful for projects where the development team—that’s you—is unfamiliar with the problem to be solved. At the start of each development cycle, the team negotiates with the customer on the work to be accomplished during that cycle.

The customer suggests user stories to be completed. These are short, often one sentence, descriptions of what the user would be able to do with the software. For example,

User launches program and sees a blank drawing area and some buttons representing actions that could be taken.

This story doesn’t say anything about the buttons actually working, so that is not part of this user story. A user story for a button working might be something like,

User clicks the Rectangle button and can then draw a rectangle in the drawing area by clicking and dragging the mouse.

User stories are powerful in two important ways. First, they make it very clear how to test whether the story has been completed. Second, they keep the development team focused on the importance of meeting the needs of the user.

After the customer has suggested some user stories for the cycle, the development team will decide whether it is reasonable to complete them all in the time available. If not, the customer will withdraw some of the proposed stories until an achievable set of stories is agreed upon.

For this assignment you’ll play both the customer role and that of the development team. As a customer, the number of features completed will help determine your grade (and how much fun you have with the project). As a development team, you’ll have to do the work to implement the user stories.

Each user story should have an estimate in ideal development time (likely between 30 mins and 4 hours). Calculate the total estimated time for this cycle and include it at the end of the list.

Teaming

Please keep meeting minutes for each team meeting you hold. In the minutes record who is present, which decisions were made and who is responsible for them and which issues were put in the issue bin. At the next team meeting, go through the minutes and ask each person to give an update on the items they were responsible for. Also, decide which issue bin items to resolve or leave in the issue bin.

Milestones