The basis for measuring many attributes in the physical world, such as size
and mass, is fairly obvious when compared to the measurement of software a
ttributes. Software has a very complex structure, and this makes it difficu
lt to define meaningful measures that actually quantify attributes of inter
est. Program slices provide an abstraction that can be used to define impor
tant software attributes that can serve as a basis for measurement. We have
successfully used program slices to define objective, meaningful, and vali
d measures of cohesion. Previously, cohesion was viewed as an attribute tha
t could not be objectively measured; cohesion assessment relied on subjecti
ve evaluations. In this paper we review the original slice-based cohesion m
easures defined to measure functional cohesion in the procedural paradigm a
s well as the derivative work aimed at measuring cohesion in other paradigm
s and situations. By viewing software products at differing levels of abstr
action or granularity, it is possible to define measures which are availabl
e at different points in the software life cycle and/or suitable for varyin
g purposes. (C) 1998 Elsevier Science BN. All rights reserved.