Participant Package for jEdit Case Study

In this "experiment," you will investigate the relevance of methods to a particular feature from jEdit. You will be presented with several lists, each containing 10 methods, and asked to determine how relevant they are to the implementation of a feature.

System

jEdit, version 4.3 pre16, is a programmer's text editor written in Java.

Feature

jEdit has a global option for configuring the cursor/caret to be "thick," i.e. two pixels wide instead of one pixel so it is easier to see. This global option can be set by going to Utilities -> Global Options -> Text Area and checking the box for "thick" next to the caret options. Then click "OK" or "Apply."

Running jEdit

To run jEdit from the command line, type "java -jar jedit.jar" while in the build directory. On Windows, double clicking on the jedit.jar icon also works.

Slides

The slides from the presentation is class are available as Powerpoint and PDF.

Detailed Instructions

  1. Download and unzip the source code for jEdit 4.3pre16.

  2. Optionally, but highly recommended, create a new Java project in Eclipse using the jEdit source code. File -> New -> Java Project. Give the project a name, select "Create project from existing source," and browse to the unzipped jEdit code you downloaded.

  3. Download the lists of methods to inspect. Excel or text

  4. For each method in the lists, classify its relevance to the thick caret global option feature as either Relevant, Somewhat Relevant, or Not Relevant. Use the following guidelines:
    1. Method names that are similar to the words in the feature's description are good indicators of possibly relevant code, but the method's source code should be inspected to ensure the method is actually relevant to the feature.
    2. Determine if the method is relevant to the feature by asking "Would it be useful to know that this method is associated with the feature if I had to modify the implementation of the feature in the future?"
    3. If most of the code in the method seems relevant to the feature, classify the method as Relevant. If some code within the method seems relevant but other code in the method is irrelevant to the feature, classify the method as Somewhat Relevant. If no code within the method seems relevant to the feature, classify it as Not Relevant.
    4. If unable to classify the method by reviewing its code, explore the method's structural dependencies, i.e. what methods call it and are called by it. If the method's dependencies seem relevant, than the method probably is as well. In Eclipse, to find references to or the declaration of a method, right click on the method's name and select References -> Project or Declaration -> Project.
    5. For any method you classify and are still hesitant about the classification you chose, please provide a brief one sentence explaination of your decision.

  5. Once you have decided your classification for a method, place an "X" in the row for the method under the appropriate column, as in the example below.

      Relevant Somewhat Relevant Not Relevant
    package1.class1.method1   X  
    package1.class1.method2 X    
    package1.class2.method1   X  
    package2.class3.method4     X
    package2.class3.method5 X    
    package2.class4.method6     X
    package3.class5.method7     X
    package3.class5.method8     X
    package3.class5.method9 X    
    package4.class6.method10   X  

  6. Review your classifications one more time. Since the same method may appear in multiple lists, ensure it is classified consistently in every list.

  7. E-mail your results to Meghan as an attachment when you are done.