COMP 529 Fall 2007

Project 1 Description


The goal of project 1 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, to give you experience with the design of software architectures, and to allow you to discover and explore issues of architectural mismatch.

The term project will consist in the development of a simple software application that integrates two large-scale components. The types of allowable components and component models will be discussed in class. However, consider that they should be large (e.g., more than 10,000LOC) and provide a sophisticated set of services. Examples include CCFinder, the Mylyn Monitor plug-in, a complex GUI widget, CheckStyle, Google Maps, etc. The application can be anything you like that builds on existing components. You should discuss the project with the TA and instructor prior to committing to your chosen components.

Components and integration infrastructure will be discussed in detail in class, and many concrete examples will be provided.


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.


There will consist of two deliverables. Please see the course schedule for deadlines. All deadlines are firm. This is to ensure fairness, a speedy feedback, and consistency with the course schedule. Please plan ahead.

Deliverable 1: Project Overview

This first part will involve the following activities:
  1. Create you team.
  2. Choose the type of application you will implement.
  3. Choose the COTS you will reuse and the component model they follow.
The deliverable for this part of the project will be a 1-page email to the TA that describes you team, application, and COTS. This part of the project is worth 5% of the overall project 1 mark.

Deliverable 2: Application

In this part of the project you will test out your chosen COTS, and implement your application. The deliverable for this part of the project will include: The report should include: This part of the project is worth 95% of the overall project 1 mark.

In evaluating your project, we will be looking for the following:

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

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 for more information).


The project is an essential 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.