To implement coupled file change suggestions, we have created an Java based software tool which integrates the data mining process in the IDE
to be available when working on maintenance tasks on some software product. Based on our concept, we provided the requirements and the design for the tool.
It was then implemented and optimized in five student theses [Ala16; Cic15; Dem15; Kau17; Leh15].
The software tool for extracting file change suggestion is called SRM (Software Repository Miner) involves of three main components:
ATSR (Automatic Transformation of Software Repositories) plugin, FPGA (Frequent Pattern Growth Algorithm) plugin and SRMP (Software Repository Mining Presentation Plugin)
- • ATSR: This component implements the data extraction including the file change sets and the commit attributes from Git, and the issue and documentation attributes from the export data. It also includes the preparation of the data and their storage in the database.
- • FPGA: It performs the frequent sets mining performed on the change sets in the database. This component includes the data mining algorithm implementation based on the SPMF framework
[VGG+14] whereby, instead of using text files, the input and output is performed in a database.
- • SRMP: It selects the coupled files and the repository attributes from the database and visualizes them in the created views in the Eclipse IDE
The main parts of the user interface is the button for starting the view perspective,
the wizard for selecting the repository and the developers as well as to perform the mining process and the views to
visualize the coupled files and the repository attributes.
To activate the Eclipse plugin and start the mining process for a particular project we have incorporated a button on the Eclipse menu which enables the views for the coupled files and the repository attributes.
The wizard contains two main steps and enables the user to select the data sources and the developers’ data for the mining process.
- • Repository Choice: The first part of the wizard includes the feature which enables us to select the Git repository to be analyzed. Additionally we have the issue and docu import functionalities in this wizard for the repository attributes extraction.
- • Developers and Support Choice: After selecting the repository, the second step in the wizard includes the choice of the developers whose commits we want to use as change sets for mining coupled files. We can select the complete repository to be used or to select a particular developer to use his or her data for the analysis according to the developer heuristic.
For the visualization of coupled changes and repository attributes, we have created these views in the Eclipse IDE: coupled changes view, word cloud view and message view.
- • Coupled Changes View: This view enlists the couplings for a particular file selected in the project explorer and included in a set of coupled files.
- • Word Clouds View (optional): We have implemented a word cloud view which visualizes the coupled files based on their frequency, meaning the number of occurrence. The size and the color of the words in the cloud identifies the difference in the frequency of the file as apart of different commits whereby the larger words identify the most used files.
- • Message View: This view represents a tabbed representation of three sub-views where the developer can read three type of attributes for the selected file coupling in the coupled file changes view. The first tab enlists the commit attributes, the second theattributes for the related issue and the third one is displaying the description of the files in the couplings.
SRM Installation Process
- • Open Eclipse (Eclipse Mars or higher is necessary [Mars, Neon, Oxygen])
- • Help -> Install New Software
- • Add -> Archive
- • Type a name (e.g. “GEF”)
- • For location enter: http://download.eclipse.org/tools/gef/updates/integration This will be needed for the referenced GEF components
- • Select GEF Cloudio.UI and install it
- • Add another update site named SRM
- • Select the plugin zip file as Archive location
- • Uncheck “Group Items by category”
- • Proceed with wizard dialogue and restart eclipse
- • Import a project from git
- • If needed select to import it as a “general project” (IDE specific project files are generally not stored in git)
- • IMPORTANT: Open a java source file (Otherwise Eclipse won’t recognize which project is currently in focus)
- • Open the Wizard via the MenuBar
- • Set the git.exe path to your local git installation
- • If you opened a source file beforehand eclipse knows which project is in focus and presets the values for the fields “Repository” and “Database”
- • Press “Transform” -> Next
- • Adjust Support value (low value for more results and more noise, higher value for less results and less noise)
- • Select an author of interest -> Finish
- • Open the SRM-Perspective (via MenuBar)
- • For Wordcloud View press Window -> Show View -> Other
- • Select Other -> WordCloud View
- • Select a Source file in the Project Explorer