JMove

JMove is an Eclipse plugin that indicates Move Method refactoring opportunities based on structural similarity, i.e., the types the method establishes dependency with.

Installation

    Download the plugin here or source code here
  1. Unzip it into the Eclipse directory (e.g., /opt/eclipse)
  2. Restart Eclipse and done!

How To Use

  1. On Eclipse, open the JMove view
  2. Click on the project you want to use JMove and click on the information mark
  3. The Move Method recommendations will appear on the JMove view

Datasets

JHotDraw

Synthesized Move Method Instances

Original System Modified System GoldSet
ant-1.8.2 ant-1.8.2 modified ant-1.8.2 GoldSet
argouml-0.34 argouml-0.34 modified argouml-0.34 Goldset
cayenne-3.0.1 cayenne-3.0.1 modified cayenne-3.0.1 Goldset
drjava-stable-20100913-r5387 drjava-stable-20100913-r5387 modified drjava-stable-20100913-r5387 Goldset
freecol-0.10.3 freecol-0.10.3 modified freecol-0.10.3 Goldset
freemind-0.9.0 freemind-0.9.0 modified freemind-0.9.0 Goldset
jmeter-2.5.1 jmeter-2.5.1 modified jmeter-2.5.1 Goldset
jruby-1.7.3 jruby-1.7.3 modified jruby-1.7.3 Goldset
jtopen 7.8 jtopen 7.8 modified jtopen 7.8 Goldset
maven-3.0.5_2 maven-3.0.5_2 modified maven-3.0.5_2 Goldset
megamek-0.35.18 megamek-0.35.18 modified megamek-0.35.18 Goldset
wct-1.5.2 wct-1.5.2 modified wct-1.5.2 Goldset
weka-3-6-9 weka-3-6-9 modified weka-3-6-9 Goldset

Publications

[PDF] Vitor Sales, Ricardo Terra, Luis Fernando Miranda, and Marco Tulio Valente. Recommending Move Method Refactorings Using Dependency Sets. In 20th Working Conference on Reverse Engineering (WCRE), pages 232-241, 2013. [Bibtex]

@inproceedings{wcre2013a, 
  author = {Vitor Sales and Ricardo Terra and Luis Fernando Miranda and Marco Tulio Valente}, 
  title = {Recommending Move Method Refactorings Using Dependency Sets}, 
  booktitle = {20th Working Conference on Reverse Engineering (WCRE)}, 
  year = {2013}, 
  pages = {232--241}, 
  pdf = {http://www.dcc.ufmg.br/~mtov/pub/2013_wcre_jmove.pdf} 
}