|
Selected publications by date
Selected publications by category
|
|   |
A Unified Interprocedural Program Representation for a Maintenance Environment
IEEE Transactions on Software Engineering
vol. 19, no. 6, June 1993, pp. 584-593
Mary Jean Harrold and Brian Malloy
Abstract
Modifying and then validating a program with many
interacting modules, such as procedures,
is an expensive and complex task: maintenance activities
must be performed for changed
procedures
and for
those procedures that directly or indirectly interact with
the changed procedure.
The problem is further compounded because the maintainer
is rarely the author of the code and usually lacks
an understanding of the program.
Thus, a maintenance environment containing an efficient
program representation and tools that access the
representation to assist the user in understanding,
modifying, analyzing, reengineering,
testing and debugging a program are
needed.
This paper presents our unified interprocedural
graph, UIG, that extracts the important
features of existing
program representations, and adds new information,
to provide an integrated representation for
maintenance tasks.
We adapt previous interprocedural
techniques to use the UIG, and we provide sufficient
information to accommodate development of new
interprocedural techniques.
Algorithms
that were developed for previous
representations were adapted to use the UIG by identifying
the subset of nodes and edges in the UIG required for that
computation.
Newly developed algorithms can use the UIG since it contains
data flow, control flow, data dependence and control
dependence information.
The main benefits of our approach are
the reduction in storage space
since individual representations are not kept,
the savings in
maintenance time of a single representation over the
individual representations, and
the convenience of accessing a single
program representation without increase in access time.
A single program representation also assists
in program understanding
since relationships among program elements are
incorporated into one graph.
|