Fostering Real-Time Software Analysis by Leveraging Heterogeneous and Autonomous Software Repositories


IEICE TRANSACTIONS on Information and Systems   Vol.E101-D   No.11   pp.2730-2743
Publication Date: 2018/11/01
Online ISSN: 1745-1361
DOI: 10.1587/transinf.2018EDP7094
Type of Manuscript: PAPER
Category: Software Engineering
software analysis,  mining software repositories,  visual query interfaces,  static grammar,  

Full Text: PDF(706.6KB)
>>Buy this Article

Mining software repositories allow software practitioners to improve the quality of software systems and to support maintenance based on historical data. Such data is scattered across autonomous and heterogeneous information sources, such as version control, bug tracking and build automation systems. Despite having many tools to track and measure the data originated from such repositories, software practitioners often suffer from a scarcity of the techniques necessary to dynamically leverage software repositories to fulfill their complex information needs. For example, answering a question such as “What is the number of commits between two successful builds?” requires tiresome manual inspection of multiple repositories. As a solution, this paper presents a conceptual framework and a proof of concept visual query interface to satisfy distinct software quality related information needs of software practitioners. The data originated from repositories is integrated and analyzed to perform systematic investigations, which helps to uncover hidden relationships between software quality and trends of software evolution. This approach has several significant benefits such as the ability to perform real-time analyses, the ability to combine data from various software repositories and generate queries dynamically. The framework evaluated with 31 subjects by using a series of questions categorized into three software evolution scenarios. The evaluation results evidently show that our framework surpasses the state of the art tools in terms of correctness, time and usability.