COMP 762 Fall 2005 - Project 1: Program Analysis

Important Stuff

You must do the project individually. The project is to be handed by 12:00PM (noon) Wednesday October 12 by email.


The objective of this project is to give you experience with the analysis of large software systems and insights into potential issues regarding the evolution of a concrete software system. This project will serve as a foundation for Project 2: Prototype development, so make sure to manage your project in a way that will facilitate the reuse of the artifacts you download and produce, and of the knowledge you acquire. Tip: do not be mislead by the relatively low percentage attributed to project 1 in the overall grade. This percentage does not reflect the true importance of project 1 as a lot of the work you do in project 1 will impact your project 2.


  1. Find and install a target system. The target system is the software system you will analyze as part of this project. You can use any system you like as long as it meets the following two requirements: The most obvious way to find a target system is to download the source code of an open-source project. There exists many source code repositories for countless projects (e.g., SourceForge). There are also large open-source projects such as Eclipse, JBoss, Apache, and OpenOffice. You may know of others, and you can of course search the web. Use anything you find interesting for the project and you feel comfortable downloading, installing, and running. If a system interests you but looks too big for your comfort level, there might be a way to hack off a stand-alone piece.
  2. At the date indicated on the course schedule, email a brief description of your system to me. Please use "(762) Project 1 Description" as the subject of your email. Your description should include the name of the system, what it does, the main programming language, the size of the system, and how you obtained it (with URL if open source).
  3. Define a concern of interest on your target system. We have discussed what concerns are in detail in class. Think about different features, non-functional requirements, or design decision present in the system. Choose one you find particularly interesting or important.
  4. Using one program analysis tool of your choice, analyze the implementation of your concern of interest. Imagine that your analysis is intended to help a team leader or technical manager assess the cost and risk of performing a change to the concern. Explore, experiment, play around. There are no official procedures to follow or right answers to discover. Example of questions to investigate include:
  5. Evaluate the evolvability of the concern you analyze. It it evolvable? Why? Why not? In which circumstances? What can be done to improve the evolvability?


To perform your assessment you must use a program analysis tool. Again, you have free reign to experiment and choose whatever tool you like best. A few tool collections: Note that you do not have to restrict yourself to freeware: many commercial tools have a free evaluation period.


You should hand in a single PDF document meeting the following requirements:


Between three and four pages using the IEEE Computer Society format for conference publications:


You should use the following section breakdown (respecting the suggested titles): The report is the only deliverable for this project, so please pay special attention to the quality of the writing. In particular, use a precise, concise, and focused style. Avoid vagueness and repetitions, and do not state the obvious (in the context of the course). Check the grammar and spelling. If you can, ask a colleague to review it.

Important Tip: Although the report is the only deliverable for project 1, keep everything you used and produced as you will need it for project 2!


In evaluating your project I will be looking for the following main points:

Going Further (Optional)

If you really get into this project and would like to push it further, here are a few possibilities. If you choose any of these, you can get extra space for your project report. Contact me if you would like to discuss such possibilities.