Reuse of Software Through Generation of Partial Systems

Franz J. Polster

Source:
Proceedings FIRST SIGMINI Symposium on Small Systems, New York, N.Y., Aug 2-3, 1978, ACM SIGMINI Newsletter 4,4 (Aug 1978), p. 40-44.

Abstract:

One approach to improving software productivity is the development and reuse of general software for a given application area to avoid development of code. Frequently, for a particular application a partial system that supports only a subset of the capabilities of a general program system is sufficient.

The problem of constructing partial systems is addressed, where the program of a partial system is obtained by selecting only those code segments of the complete program that implement the capabilities needed. A heuristic for determining fragments of a program system, which can serve as the building blocks for the programs of partial systems, is presented.

The notion of "B-program" is introduced: a B-program contains in addition to the fragments themselves for each fragment substitute code and control information specifying the set of partial systems, the fragment is relevant for. A representation of B-programs as a string is given, such that generating a partial system consists in scanning this string and selecting substrings.

A formal model for this type of program generation is developed: a B-program is viewed as an ordered tree with the substrings of the complete program as its leaves and the fragments as its nonleaf vertices; a "relevance" mapping indicates for each fragment vertex f, whether or not f is relevant for a particular partial system; a mapping SIGMA associates with each fragment f its substitute. Generation of a partial system is defined in terms of preorder traversal of a subtree of the B-program.

B-program reduction is dealt with: transformations for the elimination of superfluous vertices are presented, the issue of uniqueness and the problem of constructing a minimal reduced B-program are discussed.

Index Terms:
code fragments, code selection, customizing, general software, generic systems, program generation, program tailoring, reuse of software.

[back]


© 2009-2024 · Franz J. Polster
Last modified: Oct 27 17:25:00 2024