Abstract
In recent years many tools and techniques have been proposed and even implemented
which support maintenance programmers to gain an understanding of existing source
code. However, studies have found that some tools are of marginal benefit and not
appropriate for all maintenance tasks. This may be due to tools having been designed
with little regard to the common behavioural practices that occur during software
maintenance tasks because the current state of knowledge of such practices is quite
limited.
The aim of this study is to alleviate the above situation by performing a detailed
behavioural analysis of software maintenance tasks undertaken under laboratory
experiment conditions. To support this aim an experiment was conducted in which
twenty-nine student subjects experienced in C programming independently undertook
one of two maintenance tasks on the same C program in a university environment.
The data produced from the experiment included subjects’ interactions with documents
and code and their responses to program comprehension questions at the end of the
task.
The results indicate that maintenance task success is associated with a heightened
concentration on high-level procedures that control the execution of lower level
procedures. Among subjects, IT industry experience was linked to efficient
comprehension of program and task documentation and the performance of more code
searches. In general, code searches mainly involved searches for procedure name
references. Compared to subjects undertaking the enhancement task, subjects
performing the complex corrective task utilised program documentation more but also
obtained a greater understanding of the elementary operations and control-flow of the
program.
In addition, this study illustrates a method to identify common information usage
strategies from the recorded maintenance behaviour of subjects. Largely unsuccessful
attempts were also made to sequentially analyse maintenance behaviour. This lack of
success is possibly attributable to the as-needed comprehension approach adopted by
subjects.
The results of this research suggest that cost-effective maintenance of software is best
supported using tools implementing facilities for feature location and visualisation of
the control-flow of a program. The former facility would be most helpful to
maintainers undertaking corrections, whereas the latter would particularly assist
maintainers undertaking enhancements.