Comparison and evaluation of source code mining tools and techniques: A qualitative approach

  • Authors:
  • Shaheen Khatoon;Guohui Li;Azhar Mahmood

  • Affiliations:
  • Huazhong University of Science and Technology, Wuhan, Hubei, China;Huazhong University of Science and Technology, Wuhan, Hubei, China;Huazhong University of Science and Technology, Wuhan, Hubei, China

  • Venue:
  • Intelligent Data Analysis
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Program source code substantially is structured and contains semantically rich programming constructs such as variables, functions, data structures, and program structures which indicate patterns. Mining source code by using different data mining techniques to extract the valuable hidden patterns is the new revolution in software engineering. Over last decade many tools and techniques have been proposed by researcher to extract pertinent information and uncover relationships and trends from source code about a particular characteristic of Software Engineering SE tasks. These efforts have resulted in wide range of research body but currently there is no comprehensive overview exists. This paper surveys the tools and techniques which rely only on data mining methods to determine patterns from source code in context of programming, bug detection, maintenance, program understanding and software reuse. The work provides comparison and evaluation of the current state-of-the-art source code mining tools and techniques, and organizes the large amount of information into a coherent conceptual way. Thus the survey provides researchers with a concise overview of source code mining techniques and assists practitioners the selection of appropriate techniques for their work. The result of this review shows existing studies focus on one specific pattern being mined from source code such as special kind of bug detection. Thus, there is a need of multiple tools to test and find potential information from software which increase cost and time of development. Hence there is a strong need of tool which helps in developing quality software by automatically detecting different kind of bugs and generates relevant API code automatically to help in decreasing overall software development time.