This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
A Formal Model of Program Dependences and its Implications for Software Testing, Debugging, and Maintenance
September 1990 (vol. 16 no. 9)
pp. 965-979

A formal, general model of program dependences is presented and used to evaluate several dependence-based software testing, debugging, and maintenance techniques. Two generalizations of control and data flow dependence, called weak and strong syntactic dependence, are introduced and related to a concept called semantic dependence. Semantic dependence models the ability of a program statement to affect the execution behavior of other statements. It is shown that weak syntactic dependence is a necessary but not sufficient condition for semantic dependence and that strong syntactic dependence is necessary but not sufficient condition for a restricted form of semantic dependence that is finitely demonstrated. These results are used to support some proposed uses of program dependences, to controvert others, and to suggest new uses.

[1] A. V. Aho, J. E. Hopcroft, and J. D. Ullman,The Design and Analysis of Computer Algorithms. Menlo Park, CA: Addison-Wesley, 1974.
[2] A. V. Aho, R. Sethi, and J. D. Ullman,Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
[3] J. Bergeretti and B. Carre, "Information-flow and data-flow analysis of while-programs,"ACM Trans. Program. Lang. Syst., vol. 7, no. 1, pp. 37-61, Jan. 1985.
[4] R. Cartwright and M. Felleisen, "The semantics of program dependence," inProc. SIGPLAN '89 Conf. Programming Language Design and Implementation, ACM, New York, 1989, pp. 13-27.
[5] L. A. Clarke and D. J. Richardson, "Symbolic evaluation methods-Implementations and applications," inComputer Program Testing, B. Chandrasekaran and S. Radicchi, Eds. Amsterdam, The Netherlands: North-Holland, 1981, pp. 65-102.
[6] R. A. DeMillo, D. S. Guindi, K. N. King, W. M. McCracken, and A. J. Offutt, "An extended overview of the Mothra software testing environment," inProc. Second Workshop Software Testing, Verification and Analysis, Banff, Alberta, July 1988, pp. 142-151.
[7] D. E. Denning and P. J. Denning, "Certification of programs for secure information flow,"Commun. ACM, vol. 20, no. 7, pp. 504- 513, July 1977.
[8] 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.
[9] L. D. Fosdick and L. J. Osterweil, "Data flow analysis in software reliability,"ACM Comput. Surveys, vol. 8, no. 3, pp. 306-330, Sept. 1976.
[10] P. G. Frankl, "The use of data flow information for the selection and evaluation of software test data," Doctoral dissertation, New York Univ., New York, 1987.
[11] S. A. Greibach,Theory of Program Structures: Schemes, Semantics, Verification. Berlin: Springer-Verlag, 1975.
[12] F. Harary,Graph Theory. Reading. MA: Addison-Wesley, 1969.
[13] S. Horwitz, J. Prins, and T. Reps, "On the adequacy of program dependence graphs for representing programs," inProc. Fifteenth ACM Symp. Principles of Programming Languages, ACM, New York, 1988, pp. 146-157.
[14] S. Horwitz, J. Prins, and T. Reps, "Integrating non-interfering versions of programs," inProc. Fifteenth ACM Symp. Principles of Programming Languages, ACM, New York, 1988, pp. 133-145.
[15] B. Korel, "The program dependence graph in static program testing,"Inform. Processing Lett., vol. 24, pp. 103-108, Jan. 1987.
[16] J. W. Laski and B. Korel, "A data flow oriented program testing strategy,"IEEE Trans. Software Eng., vol. SE-9, no. 3, pp. 347- 354, May 1983.
[17] Z. Manna,Mathematical Theory of Computation. New York: McGraw-Hill, 1974.
[18] L. J. Morell, "A theory of error-based testing," Ph.D. dissertation, Dep. Comput. Sci., Univ. Maryland, Tech. Rep. TR-1395, Aug. 1984.
[19] S. C. Ntafos, "On required element testing,"IEEE Trans. Software Eng., vol. SE-10, no. 6, pp. 795-803, Nov. 1984.
[20] D. A. Padua and M. J. Wolfe, "Advanced compiler optimizations for supercomputers,"Common. ACM, vol. 29, no. 12, pp. 1184- 1201, Dec. 1986.
[21] A. Podgurski, "The significance of program dependences for software testing, debugging, and maintenance," Doctoral dissertation, Dep. Comput. Inform. Sci., Univ. Massachusetts, Amherst, 1989.
[22] S. Rapps and E. J. Weyuker, "Selecting software test data using data flow information,"IEEE Trans. Software Eng., vol. SE-11, no. 4, pp. 367-375, Apr. 1985.
[23] T. Reps and W. Yang, "The semantics of program slicing," Univ. of Wisconsin-Madison, Tech. Rep., 1989.
[24] D. J. Richardson and M. C. Thompson, "The RELAY model of error detection and its application," inProc. Second Workshop Software Testing, Verification, and Analysis. IEEE Computer Society, Los Angeles, CA, 1988.
[25] R. P. Selke, "A rewriting semantics for program dependence graphs," inConf. Rec. 16th ACM Symp. Principles of Programming Languages, ACM, New York, 1989, pp. 12-24.
[26] M. Weiser, "Program slices: Formal, psychological, and practical investigations of an automatic program abstraction method," Doctoral dissertation, Univ. Michigan, Ann Arbor, 1979.
[27] M. Weiser, "Programmers use slices when debugging,"Commun. ACM, vol. 25, no. 7, pp. 446-452, July 1982.
[28] M. Weiser, "Program slicing,"IEEE Trans. Software Eng., vol. SE-10, no. 4, pp. 352-356, July 1984.

Index Terms:
formal model; program dependences; software testing; debugging; maintenance; data flow dependence; syntactic dependence; semantic dependence; formal specification; program debugging; program testing.
Citation:
A. Podgurski, L.A. Clarke, "A Formal Model of Program Dependences and its Implications for Software Testing, Debugging, and Maintenance," IEEE Transactions on Software Engineering, vol. 16, no. 9, pp. 965-979, Sept. 1990, doi:10.1109/32.58784
Usage of this product signifies your acceptance of the Terms of Use.