The Goal

To apply software engineering practices and process to develop a production software of your choosing --in one semester.

Deliverables

The following are the deliverables for each software development project:

  1. Project proposal - Due on Friday, January 27th at 5 PM
  2. Design document with project plan - Due on Friday, February 10th at 5 PM
  3. The source code in a revision control repository (e.g., Git). Important: Each phase must be functional and usable to some degree (thanks Michael)!
    • Phase 1 - Due on Friday, March 9nd at 5 PM
    • Phase 2 - Due on Friday, April 13th at 5 PM
    • Phase 3 (production) - Due on Friday, May 4th at 5 PM
  4. Test plan - Due on Friday, April 13th at 5 PM
  5. Release plan - Due on Wednesday, April 25th at 5 PM

Details on each of the deliverables will be given at least two weeks before they are due.

Teams and Schedule

Name(s) Task 1 Task 2 Task 3 Task 4 Task 5 Task 6 Task 7 Task 8 Task 9 Task 10 Task 11 Task 12 Task 13 Task 14 Task 15
Constantin Berzan OK OK OK OK OK NO OK EXCUSED OK EXCUSED OK OK OK OK  
Sambardo and The Hawk OK OK OK OK OK+ OK+ OK OK+ OK OK OK OK OK OK NO
Andrew Pellegrini OK OK OK OK OK+ NO OK OK OK OK NO OK OK OK NO
Phil Tang OK OK OK OK OK+ NO OK OK NO NO NO OK EXCUSED SEE COMP 150-ISW SEE COMP 150-ISW
Rob Sheldon and Jon Wooldridge OK OK OK OK LATE OK OK OK OK OK OK OK OK OK  
Benji Koltai OK OK OK OK OK OK OK OK NO OK OK OK OK OK OK
Jason Cheng, Wenshiang Chung, Xihan Zhang, Gregory Wong OK OK OK OK OK+ OK OK+ OK+ EXCUSED EXCUSED EXCUSED EXCUSED EXCUSED EXCUSED EXCUSED
David Whitney OK OK NO NO OK NO NO NO NO NO NO NO NO NO  

Legend:

  1. Task 1 = Project Proposal
  2. Task 2 = Review my responses to your project proposal (by Monday, January 30th)
  3. Task 3 = Design document
  4. Task 4 = Review my responses to your design document (by Monday, February 13th)
  5. Task 5 = Set up your revision control repository
  6. Task 6 = First status report due on Friday, February 24th at 5 PM
  7. Task 7 = Phase 1
  8. Task 8 = Status report due on Friday, March 16th (before spring break)
  9. Task 9 = Test plan
  10. Task 10 = Status report due on Friday, March 30th
  11. Task 11 = Status report due on Friday, April 6th
  12. Task 12 = Phase 2
  13. Task 13 = Release plan
  14. Task 14 = A final walkthrough with me (by Monday, April 30th)
  15. Task 15 = Phase 3

Deliverable 1: Project Proposal

Write brief proposal on a software that you want to design and implement. The specifics:

Deliverable 2: Design Document

Your design document must cover the following:

  1. Product overview (for games, a brief story is sufficient)
  2. Identify user(s) and user classes
  3. Detail core functional requirements
    • For games only:
      • Gameplay modes
      • Game economy
      • Victory and losing conditions
      • Game balance
  4. Briefly detail any secondary requirements
  5. Show use cases of core functional requirements
  6. List technical requirements (e.g., Heroku, XNA)
  7. List data and algorithm requirements (e.g., support, interaction with third-party systems)
  8. Identify team members and their roles (if applicable)
  9. Tentative work plan and milestones
  10. Evaluation plan (of your product and your team members)

Deliverable 4: Release Plan

A release plan is a short document that details the files and procedures necessary to deploy a product into production. Elements of a release plan:

  1. Target production date
  2. Development freeze date
  3. All files to transfer from development to production (e.g., libraries, list of all your pages, scripts)
  4. Database modifications (e.g., list table and data requirements)
  5. Special instructions (e.g., modify configuration file for production, change LDAP address, get production API key)
  6. Post-release (e.g., train people, send announcements, create link to product on web page)