COMP 529 Fall 2006

Project Description


Overview

The goal of the project is to give you hands-on experience with component technology, to give you a sense of the issues involved with the reuse of large-scale components, and to give you experience with the design of software architectures.

The term project will consist in the development of a software application. The application can be anything you like that meets the following minimum requirements:

Figure 1 depicts this basic architecture.

Figure 1. Software architecture for the project

Teams

The project will be done in teams of two. Both team members will be jointly responsible for the entire project, and for reaching the learning objectives of the project. Students will be responsible for forming their own team.

Organization

The project will be broken down into three deliverables.

Deliverable 1: Project Architecture

This first part will involve the following activities:
  1. Choose the type of application you will implement.
  2. Choose the COTS you will reuse.
  3. Create a testing plan for your two COTS and implement the plan (details in class).
  4. Choose and test-drive your infrastructure of choice.
  5. Detail the exact decomposition of functionality between Modules 1 and 2.
  6. Design the complete architecture of your system and the architecture of Module 1.
The deliverable for this part of the project will be a 4-page report on all the points above (details in class). This part of the project is worth 20% of the overall project mark.

Deliverable 2: Module 1

For this part of the project you will implement and test Module 1.

The deliverable for this part of the project will be an 8-page report documenting your project so far (4 of the 8 pages will be your first report!). This part of the project is worth 30% of the overall project mark.

Your overall objective for Deliverable 2 will be to demonstrate, through your paper, that you have implemented Module 1, and that you have done so in a way that supports your architectural requirements.

In evaluating your deliverable 2, we will be looking for the follwing:

Avoid boilerplate, content-free text! (e.g., "we presented our architecture, the element catalog, the list of interactions, and some UML diagrams".

Deliverable 3: Module 3

For this part of the project, you will extend Module 1 so that it can be deployed as a component, and complete your application by developing Module 2 and integrating it with Module 1.

The deliverable for this part of the project will be an 12-page report documenting your project (most of which will be from your first 2 reports). You will also be required to perform a live demo of your application in front of the instructor and TA, and answer questions about the design, implementation, and testing of your application (with the source code available for inspection and discussion). The deliverable will also include the entire application (source and binaries). This part of the project is worth 50% of the overall project mark.

Academic Integrity

Except for the component reused and explicitly documented as such in the project reports, each team must author the entire code of their project.

McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offenses under the Code of Student Conduct and Disciplinary Procedures (see http://www.mcgill.ca/integrity for more information).

Resources

The term project is a critical part of the course. It should be assumed that completing the project will require readings (e.g., manuals, web resources, etc.) that go beyond the class readings listed in the schedule. The Instructor and TAs will remain available throughout the term to answer questions and provide suggestions about the project. Some important topics related to the project will also be covered in class.

In addition, the following list provides starting points and suggestions for selecting COTS for the project.