Eb. Allen et Tm. Khoshgoftaar, Measuring coupling and cohesion of software modules: An information-theoryapproach, SEVENTH INTERNATIONAL SOFTWARE METRICS SYMPOSIUM - METRICS 2001, PROCEEDINGS, 2000, pp. 124-134
Coupling of a subsystem characterizes its interdependence with other subsys
tems. A subsystem's cohesion, on the other hand, characterizes its internal
interdependencies. When used in conjunction with other attributes, measure
ments of a subsystem's coupling and cohesion can contribute to software qua
lity models.
An abstraction of a software system can be represented by a graph and a mod
ule (subsystem) by a subgraph. Software-design graphs depict components and
their relationships. Prior work by Allen and Khoshgoftaar proposed informa
tion theory-based measures of coupling and cohesion of a modular system. Th
is paper proposes related information theory-based measures of coupling and
cohesion of a module. These measures have the properties of module-level c
oupling and cohesion defined by Briand, Morasca, and Basili. We define cohe
sion of a module in terms of intramodule coupling, normalized to between ze
ro and one.
We illustrate the measures with example graphs and an empirical analysis of
the call graph of a moderate-size C program, the Nethack computer game. Pr
eliminary analysis showed that the information-theory approach has finer di
scrimination than counting.