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]
Click here to download the jar file.
Click here to download the source code.
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)
- 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.
- Right-click on the java file containing the "main" method in the "Package Explorer" view and click "Trace with MUTT"().
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
- 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 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
- 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.
- 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.