This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
A Unified Interprocedural Program Representation for a Maintenance Environment
June 1993 (vol. 19 no. 6)
pp. 584-593

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 is presented. Algorithms that were developed for previous representations are 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 this 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.

[1] F. E. Allen, M. Burke, P. Charles, R. Cytron, and J. Ferrante, "An overview of the PTRAN analysis system for multiprocessing," inProc. First Int. Conf. Supercomput., June 1987, pp. 194-211.
[2] D. Callahan, "The program summary graph and flow-sensitive interprocedural data flow analysis," inProc. SIGPLAN '88 Conf. Programming Language Design and Implementation, June 1988, pp. 47-56.
[3] K. Cooper and K. Kennedy, "Fast interprocedural alias analysis," in Proc. Sixteenth Annu.ACM Symp. Principles of Programming Languages, Jan. 1989, pp. 49-59.
[4] J. Ferrante, K. Ottenstein, and J. Warren, "The program dependence graph and its use in optimization,"ACM Trans. Program. Lang. Syst., vol. 9, no. 3, pp. 319-349, July 1987.
[5] P. G. Frankl and E. J. Weyuker, "An applicable family of data flow testing criteria,"IEEE Trans. Software Eng., vol. 14, no. 10, pp. 1483-1498, Oct. 1988.
[6] M. J. Harrold, "An approach to incremental testing," Tech. Rep. 89-1, Dep. Comput. Sci., Ph.D. dissertation, Univ. Pittsburgh, Jan. 1989.
[7] M. J. Harrold and M. L. Soffa, "Computation of interprocedural definition and use dependencies," inProc. IEEE Comput. Soc. 1990 Int. Conf. Comput. Languages, New Orleans, LA, Mar. 1990, pp. 297-306.
[8] M. J. Harrold and M. L. Soffa, "Selecting data for integration testing,"IEEE Software, special issue on testing and debugging, pp. 58-65, Mar. 1991.
[9] S. Horwitz, T. Reps, and D. Binkley, "Interprocedural slicing using dependence graphs,"ACM Trans. Programming Languages and Systems, vol. 12, no. 1, pp. 35-46, Jan. 1990.
[10] J. C. Hwang, M. W. Du, and C. R. Chou, "Finding program slices for recursive procedures," inProc. IEEE COMPSAC 88, Oct. 1988.
[11] B. Korel and J. Laski, "A tool for data flow oriented program testing,"ACM Softfair Proc. pp. 35-37, Dec. 1985.
[12] B. Malloy, R. Gupta, and M. L. Soffa, "Shape matching approach for scheduling fine-grained parallelism," inProc. 25th Annu. Int. Symp. Microarchitecture (MICRO-25), Dec. 1992.
[13] B. Malloy, E. L. Lloyd, and M. L. Soffa, "A fine grained approach to scheduling asynchronous multiprocessors," inProc. 4th Int. Conf. Comput. and Inform (ICCI), May 1992.
[14] S. C. Ntafos, "An evaluation of required element testing strategies,"Proc. 7th Int. Conf. Software Eng., Mar. 1984, pp. 250-256.
[15] T. J. Ostrand and E. J. Weyuker, "Using data flow analysis for regression testing," inProc. Sixth Annu. Pacific Northwest Software Quality Conf., Sept. 1988, pp. 58-71.
[16] L. L. Pollock and M. L. Soffa, "An incremental version of iterative data flow analysis,"IEEE Trans. Software Eng., vol. SE-11, no. 12, pp. 1537-1549, Dec. 1989.
[17] B. G. Ryder, "Constructing the call graph of a program,"IEEE Trans. Software Eng., vol. SE-5, no. 3, pp. 216-225, May 1979.
[18] B. G. Ryder, "An application of static program analysis to software maintenance," inProc. 20th Hawaii Int. Conf. Syst. Sci., Jan. 1987, pp. 82-91.
[19] B.G. Ryder and M. C. Paull, "Incremental data-flow analysis,"ACM Trans. Program Lang. Syst., vol. 10, pp. 1-50, Jan. 1988.
[20] A. M. Taha, S. M. Thebut, and S. S. Liu, "An approach to software fault localization and revalidation based on incremental data flow analysis," inProc. COMPSAC 89, Sept. 1989, pp. 527-534.
[21] K. D. Cooper and K. Kennedy, "Efficient computation of flow insensitive interprocedural summary information," inProc. ACM SIGPLAN Symp. Compiler Construction, June 1984, pp. 247-258.

Index Terms:
software maintenance; unified interprocedural graph; unified interprocedural program representation; nodes; edges; data flow; control flow; data dependence; control dependence; storage space; access time; program understanding; programming theory; software maintenance
Citation:
M.J. Harrold, B. Malloy, "A Unified Interprocedural Program Representation for a Maintenance Environment," IEEE Transactions on Software Engineering, vol. 19, no. 6, pp. 584-593, June 1993, doi:10.1109/32.232023
Usage of this product signifies your acceptance of the Terms of Use.