Empirical analysis of search based algorithms to identify change prone classes of open source software

TitleEmpirical analysis of search based algorithms to identify change prone classes of open source software
Publication TypeJournal Article
Year of Publication2017
AuthorsBansal, Ankita
Secondary TitleComputer Languages, Systems & Structures
Volume47
Pagination211 - 231
Date Published01/2017
ISSN Number14778424
KeywordsChange proneness; Metrics; Object oriented paradigm; Search based algorithms; Software quality; Empirical validation
Abstract

There are numerous reasons leading to change in software such as changing requirements, changing technology, increasing customer demands, fixing of defects etc. Thus, identifying and analyzing the change-prone classes of the software during software evolution is gaining wide importance in the field of software engineering. This would help software developers to judiciously allocate the resources used for testing and maintenance. Software metrics can be used for constructing various classification models which can be used for timely identification of change prone classes. Search based algorithms which form a subset of machine learning algorithms can be utilized for constructing prediction models to identify change prone classes of software. Search based algorithms use a fitness function to find the best optimal solution among all the possible solutions. In this work, we analyze the effectiveness of hybridized search based algorithms for change prediction. In other words, the aim of this work is to find whether search based algorithms are capable for accurate model construction to predict change prone classes. We have also constructed models using machine learning techniques and compared the performance of these models with the models constructed using Search Based Algorithms. The validation is carried out on two open source Apache projects, Rave and Commons Math. The results prove the effectiveness of hybridized search based algorithms in predicting change prone classes of software. Thus, they can be utilized by the software developers to produce an efficient and better developed software.

DOI10.1016/j.cl.2016.10.001
Short TitleComputer Languages, Systems & Structures