Low module coupling is considered to be a desirable quality for modular programs to have. Previously, coupling has been defined subjectively, and not quantified, making it difficult to use in practice. In this paper, we extend previous work to reflect newer programming languages, and quantify coupling by developing a general software metric system that allows us to automatically measure coupling. We have precisely defined the levels of coupling so that they can be determined algorithmically, incorporated the notion of direction into the coupling levels, and accounted for different types of non-local variables present in modern programming languages. With our system, we can measure the coupling between all pairs of modules in a system, measure the coupling of a particular module with all other modules in a system, and measure the coupling of an entire system. We have implemented our metric system so that it measures the coupling between pairs of procedures in arbitrary C programs and have analyzed several well-used systems of various sizes.
Back to my home page.