An approach to abstraction of a functional hierarchical structure of large-scale programs

Nor Adnan Yahaya · 1987

In this dissertation, we present an approach to assist a maintenance programmer to abstract a functional hierarchical structure of a given program. In the maintenance phase, this piece of information, in turn, gives him a picture of the overall functionality of the program. This is extremely useful in the situation when no or only inaccurate documentations are available for that program because it is necessary to have such information for redocumenting the program or modifying the program. The approach makes use of a software tool called program slicer which, given a slicing criterion based on a program statement and a set of program variables, will produce a slice of that program with only the statements having influence in computing the values of the given set of program variables observed at the time when the given statement has been completely executed. The resulting slice of the program is itself an executable program, and has the property that any function that can be identified by looking at its source code, can also be identified in the code of the original program, whenever the latter terminates. The approach involves repetitive application of program slicer and results in a collection of slices. This collection of slices are studied for identifying functions in the order defined by a topological sorting based on 'subset' relation on these slices. Since our approach enables a maintenance programmer to focus on a much less complicated piece of codes before dealing with more complicated ones, functions can be identified in a more manageable fashion especially when, in any particular slice, we distinguish statements which implement the functions that have been identified from the other statements in that slice. The ordering defined by the topological sorting based on 'subset' relation on the slices also makes it easier for the maintenance programmer to figure out which function is a sub-function of another.

Read the paper · More papers on PaperTik