This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Predicting the Probability of Change in Object-Oriented Systems
July 2005 (vol. 31 no. 7)
pp. 601-614
Alexander Chatzigeorgiou, IEEE Computer Society
George Stephanides, IEEE Computer Society
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.

[1] A.V. Aho and J.D. Ullman, Foundations of Computer Science, third ed. CS Press, 1995.
[2] E. Arisholm, D.I. Sjøberg, and M. Jorgensen, “Assessing the Changeability of Two Object-Oriented Design Alternatives— A Controlled Experiment,” Empirical Software Eng., vol. 6, pp. 231-277, 2001.
[3] E. Arisholm, L.C. Briand, and A. Føyen, “Dynamic Coupling Measurement for Object-Oriented Software,” IEEE Trans. Software Eng., vol 30, no. 8, pp. 491-506, Aug. 2004.
[4] ASM Home Page, http:/asm.objectweb.org/, 2004.
[5] V.R. Basili, L.C. Briand, and W.L. Melo, “A Validation of Object-Oriented Design Metrics as Quality Indicators,” IEEE Trans. Software Eng., vol. 22, no. 10, pp. 751-761, Oct. 1996.
[6] S. Black, “Computing Ripple Effect for Software Maintenance,” J. Software Maintenance and Evolution: Research and Practice, vol. 13, pp. 263-279, 2001.
[7] L.C. Briand, J. Wüst, and H. Lounis, “Using Coupling Measurement for Impact Analysis in Object-Oriented Systems,” Proc. IEEE Int'l Conf. Software Maintenance (ICSM), pp. 475-482, Aug./Sept. 1999.
[8] M.A. Chaumun, H. Kabaili, R.K. Keller, and F. Lustman, “A Change Impact Model for Changeability Assessment in Object-Oriented Software Systems,” Science of Computer Programming, vol. 45, nos. 2-3, pp. 155-174, Nov. 2002.
[9] K. Chen and V. Rajlich, “RIPPLES: Tool for Change in Legacy Software,” Proc. IEEE Int'l Conf. Software Maintenance (ICSM), pp. 230-239, Nov. 2001.
[10] K. Chen, S.R. Schach, L. Yu, J. Offutt, and G.Z. Heller, “Open-Source Change Logs,” Empirical Software Eng., vol. 9, pp. 197-210, 2004.
[11] S.R. Chidamber and C.F. Kemerer, “A Metrics Suite for Object Oriented Design,” IEEE Trans. Software Eng., vol. 20, no. 6, pp. 476-493, June 1994.
[12] A.L. Edwards, An Introduction to Linear Regression and Correlation. San Francisco, Calif.: W.H. Freeman, pp. 72-76, 1976.
[13] N.E. Fenton and S.L. Pfleeger, Software Metrics: A Rigorous & Practical Approach. Boston, Mass.: Int'l Thompson Publishing, 1997.
[14] H. Gall, M. Jazayeri, and C. Riva, “Visualizing Software Release Histories: The Use of Color and Third Dimension,” Proc. IEEE Int'l Conf. Software Maintenance (ICSM), pp. 99-108, Aug./Sept. 1999.
[15] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
[16] C. Ghezzi, M. Jazayeri, and D. Mandrioli, Fundamentals of Software Engineering, second ed. Prentice Hall, 2003.
[17] T. Gîrba, S. Ducasse, and M. Lanza, “Yesterday's Weather: Guiding Early Reverse Engineering Efforts by Summarizing the Evolution of Changes,” Proc. Int'l Conf. Software Maintenance (ICSM '04), Sept. 2004.
[18] F.M. Haney, “Module Connection Analysis— A Tool for Scheduling of Software Debugging Activities,” Proc. AFIPS Fall Joint Computer Conf., pp. 173-179, 1972.
[19] A. Hunt and D. Thomas, “OO in One Sentence: Keep it DRY, Shy and Tell the Other Guy,” IEEE Software, vol. 21, no. 3, pp. 101-103, May/June 2004.
[20] JFlex— The Fast Scanner Generator for Java, http:/jflex.de/, 2004.
[21] JMol Open Molecule Viewer, http:/jmol.sourceforge.net/, 2004.
[22] C. Kirsopp, M. Shepperd, and S. Webster, “An Empirical Study into the Use of Measurement to Support OO Design Evaluation,” Proc. Sixth IEEE Int'l Symp. Software Metrics, pp. 230-241, Nov. 1999.
[23] L. Li and A.J. Offutt, “Algorithmic Analysis of the Impact of Changes to Object-Oriented Software,” Proc. IEEE Int'l Conf. Software Maintenance (ICSM), Nov. 1996.
[24] W. Li and S. Henry, “Object-Oriented Metrics that Predict Maintainability,” J. Systems and Software, vol. 23, no. 2, pp. 111-122, Nov. 1993.
[25] R.C. Martin, Agile Software Development: Principles, Patterns and Practices. Prentice Hall, 2003.
[26] S. Menard, Applied Logistic Regression Analysis. Thousand Oaks, Calif.: Sage Publications, 2001.
[27] T. Mens and S. Demeyer, “Future Trends in Software Evolution Metrics,” Proc. Fourth Int'l Workshop Principles of Software Evolution (IWPSE), pp. 83-86, 2001.
[28] B. Meyer, Object-Oriented Software Construction, second ed. Prentice Hall, 1997.
[29] A. Papoulis, Probability, Random Variables, and Stochastic Processes, second ed. McGraw-Hill, 1984.
[30] D.L. Parnas, “Some Software Engineering Principles,” Structured Analysis and Design, pp. 237-247, 1978.
[31] C.-Y.J. Peng, K.L. Lee, and G.M. Ingersoll, “An Introduction to Logistic Regression Analysis and Reporting,” The J. Educational Research, vol. 96, no. 1, pp. 3-14, Sept. 2002.
[32] Probabilistic Evaluation Framework, http://java.uom.gr/nikosprobabilistic-evaluation.html , 2004.
[33] A.J. Riel, Object-Oriented Design Heuristics. Addison-Wesley, 1996.
[34] N. Tsantalis, A. Chatzigeorgiou, G. Stephanides, and I. Deligiannis, “Probabilistic Evaluation of Object-Oriented Systems,” Proc. 10th Int'l Symp. Software Metrics (METRICS 2004), Sept. 2004.
[35] F.G. Wilkie and B.A. Kitchenham, “Coupling Measures and Change Ripples in C++ Application Software,” J. Systems and Software, vol. 52, pp. 157-164, June 2000.
[36] S.S. Yau, J.S. Collofello, and T.M. McGregor, “Ripple Effect Analysis of Software Maintenance,” Proc. Computer Software and Applications Conf. (COMPSAC '78), pp. 60-65, 1978.

Index Terms:
Index Terms- Object-oriented programming, product metrics, object-oriented design methods, quality analysis and evaluation.
Citation:
Nikolaos Tsantalis, Alexander Chatzigeorgiou, George Stephanides, "Predicting the Probability of Change in Object-Oriented Systems," IEEE Transactions on Software Engineering, vol. 31, no. 7, pp. 601-614, July 2005, doi:10.1109/TSE.2005.83
Usage of this product signifies your acceptance of the Terms of Use.