A Novel UML Based Approach for Early Detection of Change Prone Classes

A Novel UML Based Approach for Early Detection of Change Prone Classes

Deepa Bura, Amit Choudhary, Rakesh Kumar Singh
Copyright: © 2017 |Pages: 23
DOI: 10.4018/IJOSSP.2017070101
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

This article describes how predicting change-prone classes is essential for effective development of software. Evaluating changes from one release of software to the next can enhance software quality. This article proposes an efficient novel-based approach for predicting changes early in the object-oriented software. Earlier researchers have calculated change prone classes using static characteristics such as source line of code e.g. added, deleted and modified. This research work proposes to use dynamic metrics such as execution duration, run time information, regularity, class dependency and popularity for predicting change prone classes. Execution duration and run time information are evaluated directly from the software. Class dependency is obtained from UML2.0 class and sequence diagrams. Regularity and popularity is acquired from frequent item set mining algorithms and an ABC algorithm. For classifying the class as change-prone or non-change-prone class an Interactive Dichotomizer version 3 (ID3) algorithm is used. Further validation of the results is done using two open source software, OpenClinic and OpenHospital.
Article Preview
Top

Introduction

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.

Top

Changes 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.

Complete Article List

Search this Journal:
Reset
Volume 15: 1 Issue (2024): Forthcoming, Available for Pre-Order
Volume 14: 1 Issue (2023)
Volume 13: 4 Issues (2022): 1 Released, 3 Forthcoming
Volume 12: 4 Issues (2021)
Volume 11: 4 Issues (2020)
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 4 Issues (2016)
Volume 6: 1 Issue (2015)
Volume 5: 3 Issues (2014)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing