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 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:
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.
- Create you team.
- Choose the type of application you will implement.
- Choose the COTS you will reuse and the component model they follow.
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:
- A 6-page report (11pt font).
- All your project artifacts.
- A brief demo of you project to the TA.
This part of the project is worth 95% of the overall project 1 mark.
- An overview of the application.
- A description of the COTS you chose and of the functionality they
were intended to provide to your application.
- A description of the strategy you used to ensure the COTS met
- An overview of the final architecture.
- A discussion of the architectural tradeoffs related to your
- A discussion of the integration issues involved in your
application (with respect to the component model chosen).
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
- A working application. Emphasis will be put on the integration code.
- A clear, succinct, and well-polished
- A clear description of your architecture,
including the interface of your components.
- Insightful discussions that demonstrate in-depth reflection about
the issues encountered.
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).
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.