Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

A Formal Model of Program Dependences and its Implications for Software Testing, Debugging, and Maintenance

Published: 01 September 1990 Publication History

Abstract

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.

References

[1]
{1} A. V. Aho, J. E. Hopcroft, and J. D. Ullman, The Design and Analysis of Computer Algorithms. Reading, MA: Addison-Wesley, 1974.
[2]
{2} A. V. Aho, R. Sethi, and J. D. Ullman, Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
[3]
{3} J. F. Bergeretti and B. A. Carré, "Information-flow and data-flow analysis of while-programs," ACM Trans. Program. Lang. Syst., vol. 7, no. 1, pp. 37-61, Jan. 1985.
[4]
{4} R. Cartwright and M. Felleisen, "The semantics of program dependence," in Proc. SIGPLAN '89 Conf. Programming Language Design and Implementation, ACM, New York, 1989, pp. 13-27.
[5]
{5} L. A. Clarke and D. J. Richardson, "Symbolic evaluation methods-Implementations and applications," in Computer Program Testing, B. Chandrasekaran and S. Radicchi, Eds. Amsterdam, The Netherlands: North-Holland, 1981, pp. 65-102.
[6]
{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," in Proc. Second Workshop Software Testing, Verification and Analysis, Banff, Alberta, July 1988, pp. 142-151.
[7]
{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]
{8} J. Ferrante, K. J. Ottenstein, and J. D. Warren, "The program dependence graph and its use in optimization," ACM Trans. Program. Lang. Syst., vol. 9, no. 5, pp. 319-349, July 1987.
[9]
{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]
{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]
{11} S. A. Greibach, Theory of Program Structures: Schemes, Semantics, Verification. Berlin: Springer-Verlag, 1975.
[12]
{12} F. Harary, Graph Theory. Reading. MA: Addison-Wesley, 1969.
[13]
{13} S. Horwitz, J. Prins, and T. Reps, "On the adequacy of program dependence graphs for representing programs," in Proc. Fifteenth ACM Symp. Principles of Programming Languages, ACM, New York, 1988, pp. 146-157.
[14]
{14} S. Horwitz, J. Prins, and T. Reps, "Integrating non-interfering versions of programs," in Proc. Fifteenth ACM Symp. Principles of Programming Languages, ACM, New York, 1988, pp. 133-145.
[15]
{15} B. Korel, "The program dependence graph in static program testing," Inform. Processing Lett., vol. 24, pp. 103-108, Jan. 1987.
[16]
{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]
{17} Z. Manna, Mathematical Theory of Computation. New York: McGraw-Hill, 1974.
[18]
{18} L. J. Morell, "A theory of error-based testing," Doctoral dissertation, Univ. Maryland, College Park, 1984.
[19]
{19} S. C. Ntafos, "On required element testing," IEEE Trans. Software Eng., vol. SE-10, no. 6, pp. 795-803, Nov. 1984.
[20]
{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]
{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]
{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]
{23} T. Reps and W. Yang, "The semantics of program slicing," Univ. of Wisconsin-Madison, Tech. Rep., 1989.
[24]
{24} D. J. Richardson and M. C. Thompson, "The RELAY model of error detection and its application," in Proc. Second Workshop Software Testing, Verification, and Analysis. IEEE Computer Society, Los Angeles, CA, 1988.
[25]
{25} R. P. Selke, "A rewriting semantics for program dependence graphs," in Conf. Rec. 16th ACM Symp. Principles of Programming Languages , ACM, New York, 1989, pp. 12-24.
[26]
{26} M. Weiser, "Program slices: Formal, psychological, and practical investigations of an automatic program abstraction method," Doctoral dissertation, Univ. Michigan, Ann Arbor, 1979.
[27]
{27} M. Weiser, "Programmers use slices when debugging," Commun. ACM, vol. 25, no. 7, pp. 446-452, July 1982.
[28]
{28} M. Weiser, "Program slicing," IEEE Trans. Software Eng., vol. SE-10, no. 4, pp. 352-356, July 1984.

Cited By

View all
  • (2023)The Duality in Computing SSA Programs and Control DependencyIEEE Transactions on Software Engineering10.1109/TSE.2022.319224949:4(1766-1781)Online publication date: 1-Apr-2023
  • (2022)On the computation of interprocedural weak control closureProceedings of the 31st ACM SIGPLAN International Conference on Compiler Construction10.1145/3497776.3517782(65-76)Online publication date: 19-Mar-2022
  • (2022)Conflict management in agile distributed development: evidence from product development and services engagementsInformation Technology and Management10.1007/s10799-022-00372-w24:3(247-266)Online publication date: 17-Aug-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering  Volume 16, Issue 9
September 1990
175 pages
ISSN:0098-5589
Issue’s Table of Contents

Publisher

IEEE Press

Publication History

Published: 01 September 1990

Author Tags

  1. data flow dependence
  2. debugging
  3. formal model
  4. formal specification
  5. maintenance
  6. program debugging
  7. program dependences
  8. program testing.
  9. semantic dependence
  10. software testing
  11. syntactic dependence

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)The Duality in Computing SSA Programs and Control DependencyIEEE Transactions on Software Engineering10.1109/TSE.2022.319224949:4(1766-1781)Online publication date: 1-Apr-2023
  • (2022)On the computation of interprocedural weak control closureProceedings of the 31st ACM SIGPLAN International Conference on Compiler Construction10.1145/3497776.3517782(65-76)Online publication date: 19-Mar-2022
  • (2022)Conflict management in agile distributed development: evidence from product development and services engagementsInformation Technology and Management10.1007/s10799-022-00372-w24:3(247-266)Online publication date: 17-Aug-2022
  • (2022)Fast and Incremental Computation of Weak Control ClosureStatic Analysis10.1007/978-3-031-22308-2_15(325-349)Online publication date: 5-Dec-2022
  • (2021)On Time-sensitive Control DependenciesACM Transactions on Programming Languages and Systems10.1145/348600344:1(1-37)Online publication date: 9-Dec-2021
  • (2021)Semantic Correctness of Dependence-based Slicing for Interprocedural, Possibly Nonterminating ProgramsACM Transactions on Programming Languages and Systems10.1145/343448942:4(1-56)Online publication date: 4-Jan-2021
  • (2021)Fast Computation of Strong Control DependenciesComputer Aided Verification10.1007/978-3-030-81688-9_41(887-910)Online publication date: 20-Jul-2021
  • (2020)SEADSACM Transactions on Software Engineering and Methodology10.1145/337934530:1(1-45)Online publication date: 31-Dec-2020
  • (2020)A Theory of Slicing for Imperative Probabilistic ProgramsACM Transactions on Programming Languages and Systems10.1145/337289542:2(1-71)Online publication date: 17-Apr-2020
  • (2020)Simple and Efficient Computation of Minimal Weak Control ClosureStatic Analysis10.1007/978-3-030-65474-0_10(200-222)Online publication date: 18-Nov-2020
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media