Fall 2010
Stony Brook
Software Engineering
Annie Liu
Assignment 2
Handout A2
Feb. 1, 2010
Due Feb. 8

Project Description and Plan

This assignment has two parts. Obtaining an approval for your project must be before class on Friday Feb. 5; the rest is due before class on Monday Feb. 8.

Part 1. Group Project Description

Look at the list of groups, and find the group you are in. You had till last Wednesday to tell me your preferences, but I've satisfied or resolved all requests I received by Sunday. If you have a real problem, please let me know and we will try to solve as much as we can; otherwise, we can not make exceptions---a single move would affect at least 10 other people, and likely create more problems than it would solve.

Please get together to work as a group immediately. Only by acting early can you find problems early and have a better chance at solving them. There are three items for this part of the assignment:

1. Each group gives a name to itself.

This is as if the group is a company or an organization. This way, we can refer to it as, say, the Xtreme team as opposed to the John-Mary-Etc team. Include the group name in all group related course work.

2. Each group proposes a project that it will do for the course.

The project can be chosen from the wish list described in Assignment 1 by a member of the group or by other students in the class, project ideas I described in class, or other things that you can find or think of this week. In all cases, you must convince me that it is a good thing to work on. Yes, you are freed to decide what technologies to use for the implementation.

Note: Each group must obtain an approval from me for its project by this Friday before class. We need to make sure that it has interesting components, and that it is of an appropriate size. You can communicate with me in any way you like, coming to my office hours, emailing me, etc.

3. Each group, after obtaining an approval for its project, writes a project description and makes a web page for the project.

Your description should be clear and well-motivated---remember this is the "why" and "what" of the project, and the rest of course will work on the "how" while refining the "what". See requirements in Assignment 1, though you may do a much better job than in Assignment 1, since you have 6 people now compared to 1 before:-). Your project web page should contain the group information and a link to the project description.

If you reuse an existing project idea, please elaborate the description to make it more complete. In any case, remember to give appropriate credit for the idea and description.

Part 2. Group Project Plan

Each group is asked to write a plan for the group project, and include a link to the project plan on the project web page. Here are the items that should be in the plan.

1. What are all the tasks that need to be performed?

Certainly this should contain all the phases from requirement elicitation to system delivery.

Orthogonally, each group is asked to divide its project into a set of functionalities/features, each as small as possible. The goal is to enable them to be added incrementally, so you could always have a new deliverable in the shortest time possible.

2. How are all the tasks related?

Describe how all the tasks, including phases and functionalities, relate to each other. Include all the dependencies. This will allow you to easily see what the next possible functionality/feature/increment is at any point, to schedule tasks following the dependencies, and to schedule independent tasks to be done in parallel.

3. What are all the roles of each person in the group?

Each person can take multiple roles. For learning purposes, each person should take as many roles as possible; these can be various different roles for producing various different features. The overall tasks of all the members should be as balanced as possible, since group members will get the same grade for work on the group project (except in special rare circumstances).

You may take into account personal constraints. For example, a member could do relatively less work on the week of his/her other exams.

4. Make a complete schedule of all the tasks.

You could have different member take care of different features (so tasks can be carried out in parallel for independent features) or have difference members take care the same phase of all features (so tasks can be carried out in pipelined fashion by multiple members), or more likely, use some combination in between these two extremes. In all cases, make sure you give enough time for putting features together and for transition between the phases.

Make sure your plan include the activities of evaluating progress and revising the plan itself.

The project deadline is the last class of the semester. Plan enough time for testing, documentation, delivery (posting on web), and other related activities (preparing demo, preparing presentation, etc.). Consult the course homepage for related schedules and deadlines.

The above is a set of basic requirements that emphasize incremental and iterative development. Your plan should be as complete as it can reasonably be at this point. It should include items such as what language to use for the implementation, what database to use if one is needed, whether to prototype certain features first, when to make necessary decisions if not made yet, etc.

Requirements on giving credit

For anything in your submission that is not a creation of your group, explicitly include a section or sections containing references and acknowledgments giving credits to the sources.

For any part of your submission that is a creation of your group, indicate who in the group did it; for shared work on a part, indicate who did what percentage.

Extra credit suggestions

As in the extra credit part of Assignment 1.


Before class on the due date, each group must submit their description and plan through blackboard, and send me an email in plain text containing one line of the following form

<a href="full-url-of-group-project-page">Group Project Name</a>
-- Group Name


The two parts are each worth 50% of the grade. Submissions missing the part on giving credit will lose 30%. Exceptionally well thought-out and well written homeworks will receive appropriate extra credit.

Thanks to Peter Williams for suggestions for clarifications.