An experimental examination of program maintainability as a function of structuredness

Abstract

The general ethos of producing structured programs has been, at least in theory, adopted throughout the software engineering community. By studying and measuring the structure of existing software we can estimate the benefits to be gained from changes in the structure in terms of the external attributes (perceived behaviour) of the re- structured software. [13, 2, 3, 10, 6, 7]. In this paper we report the results of two controlled experiments measuring the improvement on the maintainability of differently structured code. These experiments build on the experience and insights gained through an earlier experiment [5]. We discuss a strategy for re-structuring based on an improved re-engineering factor [9] and present the static measures of morphology (depth and width of module calls), coupling and cohesion and module complexity of a range of programs. By plotting these measures and adopting target values (e.g. width of call< 5) we estimate the expected improvement in the maintainability after re-engineering. We subsequently carry out the re-engineering, measure the re-structured code statically and measure the actual maintainability experimentally. The results reveal that unstructured programmes take longer to 'reveal their secrets'. An integral part of this work are the design and execution of controlled experiments as well as the use of automated tools for the static analysis of code and the recording of the experimental data

    Similar works