Reliability and Maintainability Related Software Coupling Metrics in C++ Programs (1992)

Author(s): Chandrashekar Rajaraman and Michael R. Lyu
Venue: Proceedings of the Third International Symposium on Software Reliability Engineering
Date: Oct 1992

Type of Experiement: Case Study


Analyzed ”real” programs instead of programs developed in a simulated environment. Ob-
tained four software products from the Center for Computer- Aided Design, Simulation and
Design Optimization of Mechanical Systems (CCAD) at the University of Iowa. It consists
of over a hundred student research assistants, full-time research staff, and faculty of the
Department of Mechanical Engineering. The projects range from 89,000-167,000 lines of

Rajaraman and Lyu propose four new metrics to alleviate the lack of software metrics ac-
counting for OO design in 1992. Their proposed software metrics are Class Inheritance-
related Coupling (CIC), Class Non-Inheritance-related Coupling (CNIC), Class Coupling
(CC), Average Method Coupling (AMC). They argued that statement count, halstead’s
software science, and McCabe’s number of Cyclomatic Complexity are not good coupling
metrics in the realm of OO programming. This is because they do not take into account
the relationships between classes, inheritance, and also the complexity of a statement (which
also threats its validity to procedural programming).
In conclusion, they found that their CC and AMC coupling metrics were highly correlated
with a class’ perceived difficulty on testing and maintenance. This was compared with the
developers ranking of their own classes on these external software attributes.