SOEN490 - 2005-2006

From Dr. Joey Paquet Web Site
Jump to: navigation, search

Contents

Course Description

SOEN 490 Software Engineering Design Project (4 credits)

Prerequisite: SOEN 337, 342, 343, 344, 390. Students will work in teams of 10 to 12 members to construct a significant software application. Team members will give a presentation of their contribution to the project. Laboratory: six hours per week.

Project

Composition of teams

The project will be done in teams of at least 8 and at most 12 members. Only under exceptional and well justified situations, smaller teams can be accepted. No team of under 4 members will ever be accepted in any circumstance. It is strongly advised that you assess the capacities of all individuals that you think of introducing in your team. You should make sure that you have a good balance of skills, e.g. having an all-programmer team is not the best, while having only one very good programmer might be even worse. Keep in mind that you will have to produce documentation, not only programming. You need poeple with good technical writing skills. If you are to work with an external client (see below), it is better to have someone used to customer interaction and with good communication skills. Use good judgement to come up with a good balance of skills.

Topics

For choosing your project topic, there are 3 alternatives:

  1. Choose a topic among the list of project proposed below.
  2. Choose your own topic and act as your own client.
  3. Find an external client that has a project to be developed.

I have no preference in how you select your topic, however, if you are working with an external client, make sure you read and comply with the directions given in Working with external clients below. No matter how you select your project (option 1, 2, or 3), you have to submit a project description as specified in Deliverable 1 below. For option 1, this will assure me that you correctly understood the nature of the project you selected. For options 2 and 3, providing me a project description is crucial, as this will enable me to assess the suitability of your project for this course. In any case, I might suggest you to remove some features if I find it is too much, or suggest to add some features if I find it is not enough for the course.

Working with external clients

Note that if you are choosing to work with a real-life client (such as for the Bookstore or IIT project below, or any other project that you get on your own from the exterior), you are solely responsible for communicating with the client. I can act as a facilitator in exceptional situations, but I will not be attending nor scheduling your meetings. Also, if the client requires a different set of milestones or deliverables compared to what I am requiring below, it has to be well defined in the beginning what is to be produced, and what are the milestones. This is additional work that must be included in your first deliverable. Failure to include this information will result in rejection of the project proposal.

Note that if you are your own client, i.e. you are defining your own project, you must comply with the deliverables and milestones presented below. Also note that some clients will not necessarily impose specific deliverables and milestones. In this case, it is advised that you use those defined below.

Milestones and deliverables

Deliverable 1 : Team information and project proposal

This is the project startup where you communicate to me the list of your team members, and propose your project topic. It is due at the end of the second week of the fall term. The project description must enable me to assess the level of difficulty of your project. After you submit this deliverable, I might suggest you to reduce the scope of your project, or impose that you add more features to meet the course standards. There is no numeric grading associated with this deliverable. In practice, it will be assigned a pass/fail grade, where fail means that the deliverable has to be resubmitted with modification, and pass means that the project proposal was accepted. This very short report must include the folloing information:

Team information : List of team members, including e-mail addesses and student IDs for each member, identification of the team leader, list of skills and duties of each member.

Project title and description : Short title or nickname given to your project, along with a short description (one or two pages) of the project, enabling me to assess its level of difficulty, as well as the effort required to undertake it.

Deliverables and milestones : Clear definition of the deliverables to be produced during the project, as well as milestones defining when major achievements have to be met. If you are complying with the standard description given here (which I strongly encourage), then simply put a statement that you are complying with the standard course requirements and deadlines. However, if you are doing this project for an external client that imposes deliverables and milestones other than those described here, you have to describe the deliverables in detail, as well as giving a detailed schedule of deadlines to be met. You are not allowed to define your own deliverables or schedule if it is not imposed by an external client.

Deliverable 2 : Project description, assessment, and plan

This should be delivered as a document that must include the following information. Overall, by reading this document, I must have the impression that you know exaclty what needs to be done, and that you seem to have a very clear idea on how things will proceed to build the software.

[15%] Problem description : An extended and precise description of the problem to be solved. Emphasis should be made on the problem, not on the solution. The project scope is describing what is part of the project, and most interestingly, what is not part of the project.

[25%] Requirements : A list of precisely defined requirements, with prority/difficulty/risk assessment for each.

[10%] Risk analysis : A list of the top 3 risks associated with the project, with discussion on their magnitude and thei possible effects on the project, and with proposed solutions to overcome them.

[40%] Project development plan : A project development plan including a list of 5 builds in which the system will be incrementally developed over the year, along with delivery dates and assignation of people to tasks in the plan.

[10%] Oral presentation : This deliverable will have to be presented in a short oral presentation. Additionally, you have to find one difficult, uncertain or otherwise strategically important aspect of the system, build a simple proof-of-concept prototype and present it during your oral presentation, which should last for 15-20 minutes in total. Examples of prototypes include GUI screenshots, either for demonstrating the static look and feel of the GUI, or to demonstrate the navigation between different screens. It could also be about the implementation of a central and complex algorithm, or the implementation of the database. If you are to use a special software library and you don't have experience with it, it might be a good idea to develop some simple application using this library to demonstrate that the library can be used to do what you want to achieve. No matter what the prototype is, it is important that you can justify why you had to build it, and how it fits in your overall project plan. Alternatively, this first piece of software could be your first project build. In any case, you should emphasize whether it is a prototype or a project build.

Deliverable 3 : Mid-project progress report

A progress report should be written and presented orally at the end of the fall semester. The report should include the following information:

[10%] Project scope change report : Description and justification of any changes made to the scope of the project description, e.g. changing requirements, changing constraints, etc.

[30%] Project plan tracking report : This is a report on what was achieved up to now in the project. It has to be presented from the perspective of the initial plan presented in deliverable #2. The report must list the team achievements versus the original plan, the list of duties performed by each individual team member in the work done up to now.

[50%] Revised project plan : Revision of the original plan according to the state of the project at this point in time. Comparison with the original plan, and justification for changes in the plan. This plan must be as complete as the original plan presented in deliverable #1.

[10%] Oral presentation : Oral presentation of the deliverable, and presentation of the latest project build.

Deliverable 4 : Near-completion progress report

A progress report should be written and presented orally on the week after the spring break in the winter semester. The report should include the following information:

[10%] Project scope change report : Description and justification of any changes made to the scope of the project description, e.g. changing requirements, changing constraints, etc.

[20%] Project plan tracking report : This is a report on what was achieved up to now in the project. It has to be presented from the perspective of the initial plan presented in deliverable #2. The report must list the team achievements versus the original plan, the list of duties performed by each individual team member in the work done up to now.

[30%] Revised project plan : Revision of the original plan according to the state of the project at this point in time. Comparison with the original plan, and justification for changes in the plan. This plan must be as complete as the original plan presented in deliverable #1.

[30%] Preliminary design report : High-level description of the architectural design of the whole system, including design rationale, as well as detailed design of the latest build.

[10%] Oral presentation : Oral presentation of the deliverable, and presentation of the latest project build.

Deliverable 5 : Final project report

The final project report includes everything that is useful for users to install and use the system, as well as for maintainance programmers to maintain the system, i.e. documented code and design documentation, as well as a test plan enabling the reproduction of the testing effort.

[20%] User documentation  : How to install the system, how to use the system.

[20%] Design document : Architectural (high-level) design of the system, as well as class diagrams describing the lower level design.

[20%] Documented code : All code must be handed in, and must be clean, easy to understand, and well documented, e.g. using javadoc or doxygen for automated generation of code documentation.

[20%] Test plan : Description of all kind of testing that has been done on the system, e.g. integration testing, function testing, unit testing. Must include requirements validation, i.e. listing the initial requirements as presented in deliverable 2 and verifying that they were met. The test plan must be presented in a manner that permits the reproduction of the testing effort, i.e. it must list all tests to be undertaken, and give a plan describing in what order they are to be applied.

[20%] Public presentation : The final project presentation will occur during the ENCS project fair that takes place in april (date to be determined). It is mandatory that all teams be present at the fair.

Deliverable 6 : Individual postmortem project report

Each individual in the class will have to write a short report describing his/her contribution in the project, his/her own view of how the project went, and propositions of improvements in the way the project was managed and achieved. It will also include an appreciation of all the other team members. I strongly advise that you take notes along the project in order to help the redaction of the individual project report at the end of the year. Even if your team is associated with an external client directing what you are to produce, you still have to produce an individual report. Download the deliverable template

Grading and Deadlines

deadline deliverable grading
Friday, September 23rd, 2005 Deliverable 1 0%
Tuesday, November 1st, 2005 Deliverable 2 20%
Friday, December 9th, 2005 Deliverable 3 10%
Tuesday February 28th, 2006 Deliverable 4 10%
Tuesday, April 4th, 2006 Deliverable 5 40%
Tuesday, April 11th, 2006 Deliverable 6 20%