Improving the program quality by using there-engineering factor metric p

In the last twenty years the software engineering community has adopted structured methods for the development of good quality software. However, it is not always obvious or certain that the methods ensure the production of structured programs. Furthermore the degree of complexity and structuredness are not always defined or measured in a standard fashion. In this paper we report on insights gained into the structure of software. Global attributes of morphology and coupling as well as local, module-based attributes such as granularity and cyclomatic complexity are produced using the ML T static analyser [ 1]. Existing C code is re-structured according to well-established rules [2, 3] and corrective maintenance is carried out under a controlled experiment [ 4,5]. The expectation is that the maintenance of a structured program will be easier, faster and thus cheaper than that of the equivalent unstructured version. The rationale is based on the need to measure simple (internal) software attributes in order to estimate and measure the more complex one (external attributes) which indicate the human perception and the effect of the environment such as maintainability. Measuring the maintainability of a program provides an understanding of its quality. It is assumed that it is desirable to produce software of high maintainability [6, 3]. Before embarking onto the difficult and resource hungry activity of re-structuring we can obtain an estimate of each program's re-engineering potential by calculating its re-engineering factor p (rho) which provides an indication of the amount of re-structuring required for a specific program if certain target is to be achieved [7, 4, 5]. The re-engineering factor is a metric of value -1 to 1 given by the difference in the areas of the target polygon representation and the actual area divided by the actual area. The target values are provided prior to restructuring.