COMP 303 (Fall 2006) Assignment 2

Please submit an electronic version of your assignment using WebCT. Include your name and student ID. This assignment will be marked out of 20. It is your responsibility to hand this assignment in on time. Assignments not submitted on time will not be marked and will receive a grade of 0. By submitting your assignment you acknowledge your understanding of McGill University's academic integrity policy.

Due Date: Tuesday 5 December 23:59.

Goals

To familiarize yourself with program understanding and reverse engineering activities using lightweight tools.

Required Problems

In this assignment you will reverse engineer a feature of the jEdit system you used for assignment 2 using ConcernMapper, Eclipse JDT views, and an UML Drawing tool.

Setup:

  1. Make sure your version of jEdit is stable. Import it again if necessary.
  2. Download and install ConcernMapper using the simple instructions you will find at the other end of the link.

Task:

One of the features of jEdit is to allow users to mark individual lines in a buffer (Markers menu).

  1. Using the Eclipse JDT Views, explore the code of jEdit implementing this feature to reverse-engineer its design.
  2. As you work, use ConcernMapper to record the Java elements associated with the implementation of the Markers feature.
  3. Once you feel you have a good understanding of the implementation of the feature, create a UML class diagram and a sequence diagram modeling the key structure and behavior of the feature. If you want, you can also produce multiple, simpler diagrams. Think about what would work best to convey your understanding of the feature's design.
  4. Answer the following questions:
    1. What's your assessment of the design and implementation of the Markers feature? Is is good? Why/why not? Be specific.
    2. For each class involved in the implementation of the feature, briefly explain which part you have chosen to include and why. Be specific.
    3. Describe whether ConcernMapper helped you complete this task and why/why not. Give small examples.

Submission instructions

Please follow these instructions carefully.

Submit the cm file describing your concern model (produced with ConcernMapper) as a stand-alone, uncompressed file.

Submit your answers to the questions and your UML diagrams in a single, uncompressed PDF file (not Microsoft Word).

Please organize your document clearly (e.g., with descriptive headers) and proofread it for typos, etc.