You are starting a new small software company. This is your first project. You want to create something that people will use. You are the software team. You should assume other teams exist in your company (marketing sales, tech support, etc...). These other teams will be stakeholders (people who have an interest in what you're doing). NOTE: These are virtual people, you have to think for them in this project, or you can ask the professor or TA to answer questions to these people.
Some sample ideas are:
Your project must have the following characteristics:
The project can be any type of software (web-based, desktop application,
game, embedded app (mobile phone, PDA, etc..)). You can also choose to do this
project based on an existing software application. Be creative, but keep it
manageable. It can use hardware, but you are designing SOFTWARE. You can assume
hardware exists and is compatible with your software.
These are just some ideas... have fun with it. If you need to assume a certain
technology or skill is present -- you can do that. We aren't implementing the
software in this class, so as long as you can design it, that's okay.
Project Management - 10pts
For this project we will be using xp-dev.com. This is a project management web application. There are many tools out there, but this one is somewhat inexpensive (and I'm paying for it!).
For each deliverable I expect you to create a user story for the deliverable on xp-dev, then create tasks and assign them to specific team members. Who creates the tasks and lays them out? You decide... some teams have a single person "manage" the project, others pick a manager for each deliverable. You decide what works best for your team.
You may also use the forums and the Wiki if you want to. Team communication is frequently a problem. To establish multiple points of communication I would update the Wiki with team memberrs names/phone numbers and then have everyone subscribe to the forums for the project. Then, instead of emailing directly use forum posts to ensure everyone gets the messages. These are suggestions, based on previous teams... you do not have to use the Wiki and Forums. You are required to use the user stories and tasks on xp-dev.com.
At the end of the semester I will look at your site and assign a grade based on the overall usage of the tool.
Team Formation (approx 2-4 pages) - 10pts
Goal: During this stage you will form into groups of 4-5 students. You may
choose your own teams, however they may be adjusted if necessary to have equal
numbers of students in all teams. If you cannot find a team, please see me and
you will be assigned to a team.
One challenge of software engineering (and life in general) is making decisions
based on limited information. You need to choose a team, but you do not have
enough information about the other students in the class to do this well, but
you need to do it. To maximize your decision-making ability you will fill out
the following form, and then have 20 mins in class to discuss the form and
anything else with fellow students to come up with the best team you can.
Team Interview Sheet
Deliverable: A short written document including:
For the SRS you should complete all sections except #3.
Notes on Use Cases - Lessons learned from
previous classes
Notes on Requirements -
Lessons learned from previous classes
Don't forget to update the Turn-In Sheet!
Grading Rubric
NOTES:
- Revision history should have names and what they did, not just the Team
Name
- Table of Contents should be correct
Implementation Schedule (1-2 pages) -
10pts
NOTE: We are NOT doing the schedule during Spring 2010 -- skip it!
Goal: To create a schedule, cost estimation and critical path for remainder of
the project.
See description of the software
schedule.
Software Design -
25pts
This will be a high level object design of your project.
You will turn in:
Forget to update the Turn-In Sheet... but all your work won't count for anything.
Grading Rubric
Prototype UI - 15pts
In this deliverable you will produce a UI mockup of your software. This can be
in any electronic form that works for you (actual software prototype,
PowerPoint, HTML, etc...). The goal of the UI prototype is to communicate the
basic functionality of the system at this stage. In future projects you may
have a basic UI prototype to show the basic functionality and rough screen
layouts and later a detailed prototype to show the actual look and feel of the
project. For this class you need to create at least the basic prototype.
Previous students have liked Balsmiq, however the three below it are new... maybe one is better?
- Balsamiq Mockups - Comments: popups every 5 minutes get annoying
- Mockflow - Tried it? Email me comments
- Mockingbird - Tried it? Email me comments
- Serena Prototype Composer - Windows only. Tried it? Email me comments
For the prototype make sure to cover the whole system. If you have multiple
user interfaces (administrator and normal user) for example, show both. Also,
if there are different screens a user will use, show all of them.
Grading Rubric
By now you should be a master of the Turn-In sheet... try editing it with your eyes closed
System/Integration Test Cases -
20pts
Goal: To produce a set of
test cases for your project. These test cases will be for a subset of your
project, not the whole thing.
You will need to turn in:
How did you forget the Turn-In Sheet last time?
Project Team Review (3-5 pages) - 15 pts
Goal: To describe your experience working in a team environment. Including
lessons learned, how you would work differently in the future and your
description of each team member's contribution. For more information, see this
more detailed version of the project team
review assignment.
NOTE: Each student must submit this
individually on Blackboard!
Finally... no turn in sheet needed (because you turn this in on
Blackboard!)
Presentation (approx 10 slides) - 15pts
Each group will present their project for 10-20 minutes. The presentation
should include:
Don't forget the final Turn-In Sheet
Grading
The project is a significant portion of your overall grade in the class. Each
student is expected to participate equally in the project. Your grade for each
deliverable will be partly a team grade and partly a grade on your individual
contribution. If you are having problems with people not participating equally
on the team see me EARLY. Do not wait till the end of the semester, at that
point there is little I can do.
You will have the opportunity during the class to revise and resubmit most
deliverables to achieve a better score if desired.
How to turn things in
You will use a project on xp-dev.com. Once I have your team emails I will setup
a project there for you.
To turn in your work:
- I will add in files with comments and your grades for each deliverable.
Turn In Sheet
The turn in sheet is just a log of what has been turned in. It should include a
sheet of paper with dates and submissions/revisions. For example, for the first
deliverable the paper should have:
Tag Submission Description
of changes
TurnIn1 Team Formation Initial version
Here is a template you can use if it helps. CurrentSubmission XLSX, PDF
This document should be added to for each deliverable or revision so I know
what to grade as "new". Never delete anything from the turn-in sheet, just add
to it. For example:
See this PDF for an example of what it may look like after a few submissions.