Quantitatively Measuring Object-Oriented Couplings

Springer'2 Software Quality Journal, 6(4):489-517, December 2008, doi: 10.1007/s11219-008-9051-x.

Jeff Offutt, Aynur Abdurazik and Stephen R. Schach


One key to several quality factors of software is the way components are connected. Software coupling can be used to estimate a number of quality factors, including maintainability, complexity, and reliability. Object-oriented languages are designed to reduce the number of dependencies among classes, which encourages separation of concerns and should reduce the amount of coupling. At the same time, the object-oriented language features change the way the connections are made, how they must be analyzed, and how they are measured. This paper discusses software couplings based on object-oriented relationships between classes, speciffcally focusing on types of couplings that are not available until after the implementation is completed, and presents a static analysis tool that measures couplings among classes in Java packages. Data from evaluating the tool on several open-source projects are provided. The coupling measurement is based on source code, which has the advantage of being quan- titative and more precise than previous measures, but the disadvantage of not being available before implementation, and thus not useful for some predictive efforts.

Back to my home page.