ImpactMiner: A Tool for Change Impact Analysis

This web page is a companion to our ICSE 2014 Tool Demo paper entitled "ImpactMiner: A Tool for Change Impact Analysis":

Dit, B., Wagner, M., Wen, S., Wang, W., Linares-Vásquez, M., Poshyvanyk, D., Kagdi, H., "ImpactMiner: A Tool for Change Impact Analysis", in Proceedings of 36th ACM/IEEE International Conference on Software Engineering (ICSE'14), Formal Research Tool Demonstration, Hyderabad, India, May 31- June 7, 2014, to appear 4 pages (36.5% acceptance ratio) [pdf]

Video Walkthrough


Download


Click here to download the jar file.

Click here to download the source code.

Installation


ImpactMiner was tested with Eclipse 4.3.

  • Download the jar file and save it to the 'dropins' directory in your Eclipse folder.
  • Start Eclipse
  • Navigate to the menu Window->Show View->Other (or hit Ctrl+Shift+Q, Q).
  • Expand the ImpactMiner folder
  • Open the 'ImpactMiner - Features' view.
  • Open the 'ImpactMiner - Results View' view.
  • Open the 'ImpactMiner - Results View' view. Make sure that 'ImpactMiner - Features' view appears at left hand side of 'ImpactMiner - Results View' view

Textual Analysis and Dynamic Trace

  • These features are inherited from (FLAT3)

Textual Analysis

  • Build the index using Lucene IR engine. Click the "View Menu" (i.e., triangle button)
    in the 'ImpactMiner – Features' view. Then click "Index with Lucene" () in the menu.
  • Click the search button () to search the term.

Dynamic Trace

  • Right-click on the java file containing the "main" method in the "Package Explorer" view and click "Trace with MUTT"().

History Mining

Download SVN commits and learn Rules from Historical Information

  • Open the 'ImpactMiner - Features' view, then click on the history mining toolbar button () to show the "Mining Software Repository" window, where you can specify the options
  • Fill in the URL of the software system and the start and end revision numbers and ImpactMiner will start downloading the historical information
    NOTE: This operation may take a long time, depending on the number of commits chosen for download. However, if the commits were already downloaded, and are in the cache, then the operation will be very fast.
  • Once the historical information is downloaded, you will be prompted to select a list of method names that have been changed in this range of revisions.
  • Choose the method you would like to use as a seed and click OK button. Then you will see the result in the "ImpactMiner - Results" view.

Selecting a seed

  • You may start history mining by selecting the seed method from the result view.
  • Right click the method you would like to choose as the seed.
  • Similarly, you will see your result in the result view

Combine results

  • In the result view, you could choose to combine results from Textual search (), Dynamic information (), and History mining ().
    NOTE: each of these buttons has 3 states:
    • disabled (no data is available)
    • enabled but unselected (data is available, but it is not currently used in the combination of results
    • enabled and selected (data is available, but it is currently used in the combination of results
  • An example combination result of Textual search and History mining: (note that in this example, the dynamic information data is not available, hence the "Dynamic Information" button is disabled)

Features


Features Inherited from FLAT3

  • Lucene-based IR engine to search for methods given a natural language user query
  • Generating execution traces
  • Feature annotation
  • Vizualization of the distribution of the search results among different lines of code

New Features

  • SVN Repository Analysis -- Download the commit history over a range of time.
  • Evolutionary Itemset Mining -- Mine the commit history to discover patterns of co-changed methods.
  • Do general mining for broad results, or select a seed beforehand for more specific results.
  • View the combined results from any and all sources--Lucene, Trace, and Mining.
  • Multi-level cache -- Avoid re-downloading the commits that were already downloaded.

People


We gratefully acknowledge financial support from the NSF on this research project.