Title :
Predicting the probability of change in object-oriented systems
Author :
Tsantalis, Nikolaos ; Chatzigeorgiou, Alexander ; Stephanides, George
Author_Institution :
Dept. of Appl. Informatics, Univ. of Macedonia, Thessaloniki, Greece
fDate :
7/1/2005 12:00:00 AM
Abstract :
Of all merits of the object-oriented paradigm, flexibility is probably the most important in a world of constantly changing requirements and the most striking difference compared to previous approaches. However, it is rather difficult to quantify this aspect of quality: this paper describes a probabilistic approach to estimate the change proneness of an object-oriented design by evaluating the probability that each class of the system will be affected when new functionality is added or when existing functionality is modified. It is obvious that when a system exhibits a large sensitivity to changes, the corresponding design quality is questionable. The extracted probabilities of change can be used to assist maintenance and to observe the evolution of stability through successive generations and identify a possible "saturation" level beyond which any attempt to improve the design without major refactoring is impossible. The proposed model has been evaluated on two multiversion open source projects. The process has been fully automated by a Java program, while statistical analysis has proved improved correlation between the extracted probabilities and actual changes in each of the classes in comparison to a prediction model that relies simply on past data.
Keywords :
Java; configuration management; object-oriented methods; object-oriented programming; probability; public domain software; software maintenance; software metrics; software quality; statistical analysis; Java program; multiversion open source project; object-oriented design method; object-oriented programming; object-oriented system; probability prediction model; product metrics; software flexibility; software maintenance; software quality; Computer Society; Data mining; Design methodology; Java; Object oriented modeling; Object oriented programming; Predictive models; Probability; Stability; Statistical analysis; Index Terms- Object-oriented programming; object-oriented design methods; product metrics; quality analysis and evaluation.;
Journal_Title :
Software Engineering, IEEE Transactions on
DOI :
10.1109/TSE.2005.83