Issue No. 09 - September (1991 vol. 17)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.92907
<p>A technique and an environment-supporting specialization of generalized software components are described. The technique is based on symbolic execution. It allows one to transform a generalized software component into a more specific and more efficient component. Specialization is proposed as a technique that improves software reuse. The idea is that a library of generalized components exists and the environment supports a designer in customizing a generalized component when the need arises for reusing it under more restricted conditions. It is also justified as a reengineering technique that helps optimize a program during maintenance. Specialization is supported by an interactive environment that provides several transformation tools: a symbolic executor/simplifier, an optimizer, and a loop refolder. The conceptual basis for these transformation techniques is described, examples of their application are given, and how they cooperate in a prototype environment for the Ada programming language is outlined.</p>
environment-supporting specialization; generalized software components; symbolic execution; software reuse; reengineering technique; maintenance; interactive environment; transformation tools; symbolic executor/simplifier; optimizer; loop refolder; conceptual basis; Ada programming language; Ada; program compilers; software maintenance; software reusability; subroutines
F. De Paoli, C. Ghezzi, D. Mandrioli and A. Coen-Porisini, "Software Specialization Via Symbolic Execution," in IEEE Transactions on Software Engineering, vol. 17, no. , pp. 884-899, 1991.