This Article 
 Bibliographic References 
 Add to: 
Dynamic Coupling Measurement for Object-Oriented Software
August 2004 (vol. 30 no. 8)
pp. 491-506
The relationships between coupling and external quality factors of object-oriented software have been studied extensively for the past few years. For example, several studies have identified clear empirical relationships between class-level coupling and class fault-proneness. A common way to define and measure coupling is through structural properties and static code analysis. However, because of polymorphism, dynamic binding, and the common presence of unused ("dead”) code in commercial software, the resulting coupling measures are imprecise as they do not perfectly reflect the actual coupling taking place among classes at runtime. For example, when using static analysis to measure coupling, it is difficult and sometimes impossible to determine what actual methods can be invoked from a client class if those methods are overridden in the subclasses of the server classes. Coupling measurement has traditionally been performed using static code analysis, because most of the existing work was done on nonobject oriented code and because dynamic code analysis is more expensive and complex to perform. For modern software systems, however, this focus on static analysis can be problematic because although dynamic binding existed before the advent of object-orientation, its usage has increased significantly in the last decade. This paper describes how coupling can be defined and precisely measured based on dynamic analysis of systems. We refer to this type of coupling as dynamic coupling. An empirical evaluation of the proposed dynamic coupling measures is reported in which we study the relationship of these measures with the change proneness of classes. Data from maintenance releases of a large Java system are used for this purpose. Preliminary results suggest that some dynamic coupling measures are significant indicators of change proneness and that they complement existing coupling measures based on static analysis.

[1] E. Arisholm, Empirical Assessment of Changeability in Object-Oriented Software PhD Thesis, Dept. of Informatics, Univ. of Oslo, ISSN 1510-7710, 2001.
[2] E. Arisholm, Dynamic Coupling Measures for Object-Oriented Software Proc. Eighth IEEE Symp. Software Metrics (METRICS '02), pp. 33-42, 2002.
[3] E. Arisholm, D.I.K. Sjøberg, and M. Jørgensen, Assessing the Changeability of Two Object-Oriented Design Alternatives A Controlled Experiment Empirical Software Eng., vol. 6, no. 3, pp. 231-277, 2001.
[4] E. Arisholm, L.C. Briand, and A. Føyen, Dynamic Coupling Measurement for Object-Oriented Software Technical Report 2003-05, Simula Research Laboratory,, 2003.
[5] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language Users Guide. Addison-Wesley, 1998.
[6] L. Bratthall, E. Arisholm, and M. Jørgensen, Program Understanding Behaviour During Estimation of Enhancement Effort on Small Java Programs Proc. Third Int'l Conf. Product Focused Software Process Improvement (PROFES 2001), 2001.
[7] L.C. Briand and J. Wuest, Empirical Studies of Quality Models in Object-Oriented Systems Advances in Computers, vol. 59, pp. 97-166, 2002.
[8] L.C. Briand and Y. Labiche, A UML-Based Approach to System Testing Software and Systems Modeling, vol. 1, no. 1, pp. 10-42, 2002.
[9] L.C. Briand, J. Daly, and J. Wust, A Unified Framework for Cohesion Measurement in Object-Oriented Systems Empirical Software Eng., vol. 3, no. 1, pp. 65-117, 1998.
[10] L. Briand, J. Daly, and J. Wuest, A Unified Framework for Coupling Measurement in Object-Oriented Systems IEEE Trans. Software Eng., vol. 25, no. 1, pp. 91-121, 1999.
[11] L.C. Briand, J. Wust, and H. Lounis, Using Coupling Measurement for Impact Analysis in Object-Oriented Systems Proc. Int'l Conf. Software Maintenance (ICSM '99), pp. 475-482, 1999.
[12] F. BritoeAbreu, The MOOD Metrics Set Proc. ECOOP '95 Workshop Metrics, 1995.
[13] M. Cartwright and M. Shepperd, "An Empirical Investigation of an Object-Oriented Software System," IEEE Trans. Software Eng., vol. 26, no. 8, Aug. 2000, pp. 786-796.
[14] M.A. Chaumun, H. Kabaili, R.K. Keller, F. Lustman, and G. Saint-Denis, Design Properties and Object-Oriented Software Changeability Proc. Fourth Euromicro Working Conf. Software Maintenance and Reeng., pp. 45-54, 2000.
[15] 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, 1994.
[16] S. Chidamber, D. Darcy, and C. Kemerer, “Managerial use of Metrics for Object-Oriented Software: An Exploratory Analysis,” IEEE Trans. Software Eng., vol. 24, no. 8, pp. 629-639, Aug. 1998.
[17] I.S. Deligiannis, M. Shepperd, S. Webster, and M. Roumeliotis, A Review of Experimental Investigations into Object-Oriented Technology Empirical Software Eng., vol. 7, no. 3, pp. 193-232, 2002.
[18] G. Dunteman, Principal Component Analysis. SAGE, 1989.
[19] K. El-Emam, S. Benlarbi, N. Goel, and S. Rai, “The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics,” IEEE Trans. Software Eng., vol. 27, no. 6, pp. 630-650, July 2001.
[20] R.J. Freund and W.J. Wilson, Regression Analysis: Statistical Modeling of a Response Variable. Academic Press, 1998.
[21] Jakarta, The Apache Jakarta Project http:/, 2003.
[22], Java Compiler Compiler (JavaCC) https:/javacc., 2003.
[23] H. Kabaili, R. Keller, and F. Lustman, Cohesion as Changeability Indicator in Object-Oriented Systems Proc. IEEE Conf. Software Maintenance and Reeng. (CSRM), pp. 39-46, 2001.
[24] A. Lakhotia and J.-C. Deprez, Restructuring Functions with Low Cohesion Proc. IEEE Working Conf. Reverse Eng. (WCRE), pp. 36-46, 1999.
[25] G. Myers, Software Reliability: Principles and Practices. Wiley, 1976.
[26] H. Sneed and A. Merey, Automated Software Quality Assurance IEEE Trans. Software Eng., vol. 11, no. 9, pp. 909-916, 1985.
[27] M.M.T. Thwin and T.-S. Quah, Application of Neural Networks for Software Quality Prediction Using Object-Oriented Metrics Proc. IEEE Int'l Conf. Software Maintenance (ICSM), 2003.
[28] J. Warmer and A. Kleppe, The Object Constraint Language. Addison-Wesley, 1999.
[29] S. Yacoub, H. Ammar, and T. Robinson, “Dynamic Metrics for Object Oriented Designs,” Proc. Sixth Int'l Symp. Software Metrics, Metrics '99, pp. 50-61, Nov. 1999.
[30] S. Yacoub, H. Ammar, and T. Robinson, A Methodology for Architectural-Level Risk Assessment using Dynamic Metrics Proc. 11th Int'l Symp. Software Reliability Eng., pp. 210-221, 2000.

Index Terms:
Coupling measurement, change predictions, quality modeling, maintenance.
Erik Arisholm, Lionel C. Briand, Audun F?, "Dynamic Coupling Measurement for Object-Oriented Software," IEEE Transactions on Software Engineering, vol. 30, no. 8, pp. 491-506, Aug. 2004, doi:10.1109/TSE.2004.41
Usage of this product signifies your acceptance of the Terms of Use.