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
- Bogdan Dit
E-mail: bdit at cs dot wm dot edu
- Michael Wagner (developer)
E-mail: mmwagn at cs dot wm dot edu
- Shasha Wen (developer)
E-mail: swen at cs dot wm dot edu
- Weilin Wang (developer)
E-mail: wwang01 at cs dot wm dot edu
- Mario Linares-Vásquez
E-mail: mlinarev at cs dot wm dot edu
- Denys Poshyvanyk
E-mail: denys at cs dot wm dot edu
- Huzefa Kagdi
E-mail: kagdi at cs dot wichita dot edu
We gratefully acknowledge financial support from the NSF on this research project.