ISSN : 1796-217X
Volume : 3    Issue : 5    Date : May 2008

Change Prediction in Object-Oriented Software Systems: A Probabilistic Approach
Ali R. Sharafat and Ladan Tahvildari
Page(s): 26-39
Full Text:
PDF (415 KB)

An estimation of change-proneness of parts of a software system is an active topic in the area of
software engineering. Such estimates can be used to predict changes to different classes of a
system from one release to the next. They can also be used to estimate and possibly reduce the
effort required during the development and maintenance phase by balancing the amount of
developers’ time assigned to each part of a software system. This research work proposes a novel
approach to predict changes in an object-oriented software system. The rationale behind this
approach is that in a well-designed software system, feature enhancement or corrective
maintenance should affect a limited amount of existing code. Our goal is to quantify this aspect of
quality by assessing the probability that each class will change in a future generation. Our proposed
probabilistic approach uses the dependencies obtained from the UML diagrams, as well as other
code metrics extracted from source code of several releases of a software system using reverse
engineering techniques. These measures, combined with the change log of the software system
and the expected time of next release, are used in an automated manner to predict whether a class
will change in the next release of the software system. The proposed systematic approach has
been evaluated on a multiversion medium sized open source project namely JFlex, the Fast
Scanner Generator for Java. The obtained results indicate the simplicity and accuracy of our
approach in the comparison with existing methods referred in the literature.

Index Terms
measurement applied to SQA and V&V, reverse engineering, software maintenance, probability and
statistics, software change prediction