Dynamic coupling measurement for object-oriented software
Top Cited Papers
- 26 July 2004
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 30 (8), 491-506
- https://doi.org/10.1109/tse.2004.41
Abstract
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. We describe 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.Keywords
This publication has 23 references indexed in Scilit:
- A methodology for architectural-level risk assessment using dynamic metricsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Design properties and object-oriented software changeabilityPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- A Review of Experimental Investigations into Object-Oriented TechnologyEmpirical Software Engineering, 2002
- The confounding effect of class size on the validity of object-oriented metricsIEEE Transactions on Software Engineering, 2001
- An empirical investigation of an object-oriented software systemIEEE Transactions on Software Engineering, 2000
- A unified framework for coupling measurement in object-oriented systemsIEEE Transactions on Software Engineering, 1999
- Using coupling measurement for impact analysis in object-oriented systemsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1999
- Managerial use of metrics for object-oriented software: an exploratory analysisIEEE Transactions on Software Engineering, 1998
- A metrics suite for object oriented designIEEE Transactions on Software Engineering, 1994
- Principal Components AnalysisPublished by SAGE Publications ,1989