Create and Undo Visitors Using Eclipse


In this assignment you will create (or rather retrofit) a Visitor design pattern into a legacy Java program.   First you will create a Visitor.  Then you will remove a (different) Visitor.  You will use Eclipse and ONLY Eclipse refactorings in this assignment.  Using any other IDE gets you 0 (zero, nada, null) for this assignment.  If you vary from what is described below, you must get permission otherwise you get no credit.

Preliminaries

Download Eclipse IDE for Eclipse Committers. You must use it for this assignment  Then read very carefully tutorials below. 

Part 1: Create Visitor Using Eclipse

  1. Download RefactoringCrawler program and then import into Eclipse as a project. RefactoringCrawler is the target program to be refactored. You don’t need to understand the semantics of RefactoringCrawler to do this project.

    Watch this video on how to import an Eclipse project.

    Then download RefactoringCrawler.zip.

  2. Use only the Eclipse refactorings described in the document (Eclipse refactorings). Make a Visitor pattern for method computeLikeliness(Node, Node) in class edu.uiuc.detectRefactorings.detection.FieldDetection
  1. Run regression tests on package edu.uiuc.tests to see if the refactored RefactoringCrawler works correctly. If it works, proceed to Step 4.

    Run as "JUnit Test" (not as "JUnit Plug-in Test") which executes 10 (not 15) regression tests.  Watch this video.

  2. Export your RefactoringCrawler named "MakeVisitorUsingEclipse.zip".   Watch this video.

  3. Create "MakeVisitorUsingEclipse.zip".


Part 2: Undo Visitor Using Eclipse

  1. Download RefactoringCrawlerWithVisitor program and then import into Eclipse as a project. RefactoringCrawlerWithVisitor is the target program to be refactored.  You don’t need to understand the semantics of RefactoringCrawlerWithVisitor to do this project

    Watch this video on how to import an Eclipse project.

    Then download RefactoringCrawlerWithVisitor.zip

  2. Use only the Eclipse refactorings described in the document (Eclipse refactorings) for this step. Undo the Visitor pattern of class Visitor in package edu.uiuc.detectRefactorings.detection and set the original method name to be "isRename".
  1. Run regression tests on package edu.uiuc.tests to see if the refactored RefactoringCrawlerWithVisitor works correctly.  If it works, proceed to Step 4.

    Run as "JUnit Test" (not as "JUnit Plug-in Test") which executes 10 (not 15) regression tests.  
    Watch this video.  

  2. Export your RefactoringCrawlerWithVisitor named "UndoVisitorUsingEclipse.zip".  Watch this video.

  3. Create "UndoVisitorUsingEclipse.zip".

What to Submit

All of the below in a zip file (including your Eclipse Projects). The zip file must unzip into <yourName>/<YourFilesAndDirectories>.
  1. Your program needs to run correctly on Linux machines, even though you may have developed them on Macs and Windoze.  The TA will grade your program running on Linux.

  2. A short description that the Grader needs to know to run your program, other than the above. 

  3. A short writeup explaining any difficulties in using Eclipse refactorings for this assignment.

  4. A PDF file (in the required format) that the Grader should read to provide any information that is not obvious.  The contents of the PDF file can be minimal.

A critical part of any design is clarity and understandability.   Hence, you will be graded on the clarity of your project and its ability to work correctly.  Sloppy code, documentation, or anything that makes grading or understanding your program difficult will cost you points.  Beware, some of these "beauty" points are subjective. 

Remember: No late assignments/submissions will be accepted.