Project 2: Requirements and Design

The next step of the project is to produce a set of user stories for the software system that you described in your project proposal. Recall that user stories should be written from the perspective of the end-user.

Structure of Project

You will have three 2-week iterations to complete this project. The project is due by Thursday, April 29th for in-class students; April 29th is the last day of class for classes that meet on Tuesdays and Thursdays this semester. This is the 9th week of class and it will be used to develop a set of user stories and an iteration plan that will guide your activities over the three iterations of the project. The first iteration will occur during weeks 10 and 11 (which are split across the week of Spring Break). The second iteration will occur during weeks 12 and 13. And the final iteration will occur during weeks 14 and 15.

Requirements

Your team must create a requirements document by Monday, March 15th at 11:55 PM. Your document should consist of the following sections:

  • An introduction that describes the proposed system and provides any background information needed to understand its application domain. Think of this section as your "project proposal on steroids."
  • A set of user stories complete with estimates and priorities. You should follow the textbook's recommendation and split these user stories into tasks to help you create estimates. Be sure to list the tasks associated with each user story along with their estimates.
  • An iteration plan that demonstrates how the user stories will be split across the three iterations. Document your procedure for producing this plan, including what value you used for the concept of "team velocity" in your calculations. Due to the constraints of your team members having other classes and part-time or full-time jobs, you will want to be realistic in your estimates of how productive the team will be.
  • A UML class diagram that represents your initial view of the key application concepts and relationships for your problem domain.
  • A section that describes how your system will make use of concurrency, in more detail than what you provided in the project proposal. Talk about the models you intend to use, in what language, what doubts you have about the design, what you are doing to address those doubts, etc. For instance, if you have no experience with the agent-based approach to concurrency, perhaps at least one of your team members should spend this week writing a few programs in that style to get up to speed. Note: if you would like to use FSP to model aspects of the design you may. We still have two more FSP-related lectures to present, so you can wait until you know more about FSP via those lectures and an upcoming homework assignment before attempting to create FSP models for your project.
  • A list of any non-functional concerns you intend to address while designing and/or implementing your system.
  • (For teams with more than one person): A description of how work for this project was divided among the team members.

Due Date

Please submit your requirements document via e-mail as a PDF document to Prof. Anderson by 11:55 PM on Monday, March 15th.

CAETE

All deadlines for CAETE students are one week behind those listed above. That is, the requirements document for CAETE students (working alone or with other CAETE students) is due on Monday, March 22rd and the final project will be due on Thursday, May 6th. CAETE students that are working with in-class students must meet the in-class student deadlines.

Questions?

Contact Professor Anderson if you have any questions or concerns about this assignment.

© Kenneth M. Anderson, 2010.