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:
- Project proposal - Due on Friday, January 27th at 5 PM
- Design document with project plan - Due on Friday, February 10th at 5 PM
- 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
- Test plan - Due on Friday, April 13th at 5 PM
- 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:
- Task 1 = Project Proposal
- Task 2 = Review my responses to your project proposal (by Monday, January 30th)
- Task 3 = Design document
- Task 4 = Review my responses to your design document (by Monday, February 13th)
- Task 5 = Set up your revision control repository
- Task 6 = First status report due on Friday, February 24th at 5 PM
- Task 7 = Phase 1
- Task 8 = Status report due on Friday, March 16th (before spring break)
- Task 9 = Test plan
- Task 10 = Status report due on Friday, March 30th
- Task 11 = Status report due on Friday, April 6th
- Task 12 = Phase 2
- Task 13 = Release plan
- Task 14 = A final walkthrough with me (by Monday, April 30th)
- Task 15 = Phase 3
Deliverable 1: Project Proposal
Write brief proposal on a software that you want to design and implement. The specifics:
- This proposal shall not be longer than 1 printed page long. One or two paragraphs are sufficient.
- E-mail is highly desirable.
- List all teammates (if applicable). If project is team-based, I only want one proposal from someone.
- Make sure your proposal address these questions:
- What is the big idea?
- Why do you want to work on this idea?
- Why do I, or anyone else, care?
Deliverable 2: Design Document
Your design document must cover the following:
- Product overview (for games, a brief story is sufficient)
- Identify user(s) and user classes
- Detail core functional requirements
- For games only:
- Gameplay modes
- Game economy
- Victory and losing conditions
- Game balance
- For games only:
- Briefly detail any secondary requirements
- Show use cases of core functional requirements
- List technical requirements (e.g., Heroku, XNA)
- List data and algorithm requirements (e.g., support, interaction with third-party systems)
- Identify team members and their roles (if applicable)
- Tentative work plan and milestones
- 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:
- Target production date
- Development freeze date
- All files to transfer from development to production (e.g., libraries, list of all your pages, scripts)
- Database modifications (e.g., list table and data requirements)
- Special instructions (e.g., modify configuration file for production, change LDAP address, get production API key)
- Post-release (e.g., train people, send announcements, create link to product on web page)