An investigation into program comprehensibility measures.
This study deals with a number of issues concerned with the derivation, use and
interpretation of traditional software measures that are currently used as measures of
program comprehensibility. One of the approaches that has been been suggested as
a way of dealing with the software maintenance crisis is the use of software measures
to assist in the management of software maintenance activities. The use of these
measures has also been extended to the estimation of program comprehensibility -
the level of effort needed to comprehend a program for maintenance purposes.
In this thesis, it is argued that, despite the wide and continuous use of such program
comprehensibility measures, they manifest a number of weaknesses that have
been largely ignored despite their implications for both program comprehension and
software maintenance activities. These concerns are inherent in the following characteristics
of the measures: (i) inability to reflect the holistic nature of comprehension;
(ii) insensitivity to the dynamic nature of the comprehension process, and (ill)
insensitivity to software maintenance objectives. Furthermore, it is suggested that
in order for these measures to become much more widely acceptable, valid and more
representative of the phenomenon of program comprehension, these issues need to
This investigation talres the form of three studies. First, a survey of the literature
and selection of measures currently used to estimate program comprehensibility.
Second, a questionnaire survey of the impact of various factors on program
comprehension. Finally, an observation and an experiment on programmers working
on maintenance tasks, paying particular attention on the comprehension process
and its outcome. The findings from these studies are discussed in the light of the
weaknesses of traditional software measures as indicators of program comprehensibility.
This thesis concludes by examining the wider implications of these findings
and makes recommendations for further work in the area