Article Preview
TopIntroduction
Predicting change prone class earlier in software life cycle has become crucial, as large number of research shows that maintenance and modification of software requires the utmost proportion of effort. To develop good quality software, it is necessary to manage change in the initial phases of software development. Resources like duration, budget and effort in software development are always restricted; therefore, it becomes necessary to effectively and efficiently utilize the resources. Predicting changes early in software life cycle helps in efficient allocation of resources and thus reduces maintenance cost. Out of all the phases, maintenance phase is one of the costliest phases of software. Malhotra and Khanna (2013) determined that maintenance phase incurs almost 40-70% of the total budget. Estimation of modified classes needs to be evaluated as it can benefit in software maintenance. While changing and maintaining the software, a change proneness class needs to be tested rigorously, which would lead to a better-quality product.
Romano and Pinzger (2011) suggested the benefits of estimating change prone classes, determining such classes can be helpful in reducing the development effort by properly allocating the developer’s time to each part of the software. Change is the most significant and required attribute in software. Changes are required for addition of new functionalities, enhancing functionalities, for correcting errors and for refactoring the code. Predicting such changes can be useful as such evaluations can be utilized to predict changes from one release to next.
Zhou et al. (2009), Sharafat and Tavildari (2008), and Lehman and Belady (1985) related change proneness with quality of software. Classes in which changes are made and predicted are sensitive classes which are prone to changes. By predicting sensitive class, all the updating can be traced resulting in good quality software. Additionally, it leads to efficient utilization of resources which can help in reducing the time interval spend in maintenance phase of software.
Based on source code various researches have predicted change prone classes in a software. This type of prediction can be used at maintenance phase. Design quality problems in software can be identified before coding phase, if change prone classes can be discovered in initial phases of software cycle. Based on the same, current design can be changed or another design can be selected simply on design models. As a result, change prediction model can support in quality enhancement and can help in reduction of development cost also.
Earlier Researchers have predicted change prone classes using static characteristics such as SLOC (lines added, deleted or modified), degree of interdependence amongst objects, count of child classes, no: of methods in class, level of inheritance, lack of cohesion, class response, etc. In this article, some more dynamic characteristics are proposed which helps in accurate prediction of change prone class.
TopChanges in software are inevitable. Boehm (2007) perceived change as a crucial feature of software systems, conversely, it is also observed as a significant risk component because changes need effort, which in turn raise development and maintenance costs. Aggarwal and Singh (2007), Parnas (2001) suggested enhancement and defects as two main reasons of software change.
Malhotra and Jangra (2017) illustrated the significance of machine learning methods in the prediction of change prone classes. Research was just based on the analysis of machine learning techniques; however, this research paper evaluates various dynamic metrics for the prediction of change proneness of a class. Proposed hybrid model is more effective as it can be used in prediction of sensitive classes in other version of the software.