skip to main content
article
Free Access

Programmers use slices when debugging

Published:01 July 1982Publication History
Skip Abstract Section

Abstract

Computer programmers break apart large programs into smaller coherent pieces. Each of these pieces: functions, subroutines, modules, or abstract datatypes, is usually a contiguous piece of program text. The experiment reported here shows that programmers also routinely break programs into one kind of coherent piece which is not coniguous. When debugging unfamiliar programs programmers use program pieces called slices which are sets of statements related by their flow of data. The statements in a slice are not necessarily textually contiguous, but may be scattered through a program.

References

  1. 1 Atwood, M.E. and Ramsey, H.R. Cognitive structures in the comprehension and memory of computer programs: An investigation of computer program debugging. TR-78-A21, U.S. Army Research Institute for the Behavioral and Social Sciences, Alexandria, Virginia, August, 1978.Google ScholarGoogle Scholar
  2. 2 Chase, W.G. and Simon, H.A. Perception in chess. Cognitive Psychology 5, 4, Oct 1973, 55-81.Google ScholarGoogle Scholar
  3. 3 Chi, M.T.H. and Glasser, R. Encoding process characteristics of experts and novices in physics. Symposium on Process Models of Skilled and Less Skilled Behavior in Technical Domains. American Educational Research Association, April, 1979.Google ScholarGoogle Scholar
  4. 4 DeGroot, A.D. Thought and Choice in Chess. Mouton Press, The Hague, 1965.Google ScholarGoogle Scholar
  5. 5 Dijkstra, E.W. Correctness concerns and, among other things, why they are resented. Proc. Int. Conf. on Reliable Software June 1975, 546-550. SIGPLAN Notices 10, 6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Gould, J.D. and Drongowski, P. An exploratory study of computer program debugging. Human Factors 1, 6, June 1974, 258- 277.Google ScholarGoogle Scholar
  7. 7 Gould, J.D. Some psychological evidence on how people debug computer programs. International J. of Man-Machine Studies 7, 1, Jan 1975, 151-182.Google ScholarGoogle ScholarCross RefCross Ref
  8. 8 Hecht, M.S. Flow Analysis of Computer Programs. North- Holland, New York 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 King, J. Program reduction using symbolic evaluation. Software Engineering Notes 6, 1, (Jan. 1981) ACM SIGSOFT. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 Larkin, J., McDermott, J., Simon, D.P., and Simon, H.A. Expert and novice performance in solving physics problems. Science 208, June 20, 1980, 1335-1342.Google ScholarGoogle ScholarCross RefCross Ref
  11. 11 Lukey, F.J. Understanding and debugging programs. International J. of Man-Machine Studies 12, 2, (Feb. 1980), 189-202.Google ScholarGoogle ScholarCross RefCross Ref
  12. 12 McKeithen, K.B. Assessing knowledge structures in novice and expert programmers. PhD Thesis, University of Michigan, Ann Arbor, MI, 1979.Google ScholarGoogle Scholar
  13. 13 Posner, M.I. and Keele, S.W. On the genesis of abstract ideas. 3". of Experimental Psychology 77, 3, July 1968, 353-363.Google ScholarGoogle Scholar
  14. 14 Posner, M.I. and Keele, S.W. Retention of abstract ideas. J. of Experimental Psychology 83, 2, Feb. 1970, 304-308.Google ScholarGoogle ScholarCross RefCross Ref
  15. 15 Schwartz, J.T. An overview of bugs, In Debugging Techniques in Large Systems. Edited by Randall Rustin. Prentice-Hall, Englewood Cliffs, NJ, 1971.Google ScholarGoogle Scholar
  16. 16 Shneiderman, B. Exploratory experiments in programmer behavior. International J. of Computer and Information Sciences 5, 2, April 1976, 123-143.Google ScholarGoogle ScholarCross RefCross Ref
  17. 17 Shneiderman, B. and Mayer, R. Syntactic/semantic interactions in programmer behavior: A model and experimental results. International J. of Computer and Information Sciences 7, 1979, 219- 239.Google ScholarGoogle ScholarCross RefCross Ref
  18. 18 Shneiderman, B. Software Psychology: Human Factors in Computer and Information Systems, Winthrop, Reading, MA, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19 Siegel, S. Nonparametric Statistics for the Behavioral Sciences. McGraw-Hill, New York, 1955.Google ScholarGoogle Scholar
  20. 20 Sime, M.E., Green, T.R.G., and Guest, D.J. Scope marking in computer conditionals--A psychological evaluation. International J. of Man-Machine Studies 5, 1973, 105-113.Google ScholarGoogle ScholarCross RefCross Ref
  21. 21 Weiser, M. Program slices: Formal, psychological, and practical investigations of an automatic program abstraction method. PhD Thesis, University of Michigan, Ann Arbor, MI, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 Weiser, M. The slicing abstraction in software production and maintenance. Reliable Software Systems Group Technical Memo (RSSM), University of Michigan, Ann Arbor, 1979.Google ScholarGoogle Scholar
  23. 23 Weiser, M. Theoretical foundations of program slices. Reliable Software Systems Group ( RSSM) Technical Memo 69, University of Michigan, Ann Arbor, MI 1979.Google ScholarGoogle Scholar
  24. 24 Weiser, M. Program slicing. Proceedings of the Fifth International Conference on Software Engineering, San Diego, CA, March, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25 Weiser, M. Towards an iterative enhancement software development environment. Fourteenth Hawaii International Conference on System Science, Honolulu, HA, Jan. 1981.Google ScholarGoogle Scholar
  26. 26 Wirth, N. and Hoare, C.A.R. A contribution to the development of ALGOL. Comm. A CM 9, 6, (June 1966), 413-431. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27 Zelkowitz, M.V., Reversible Execution. Comm. ACM 16, 9, (Sept. 1973) 566. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Programmers use slices when debugging

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                • Published in

                  cover image Communications of the ACM
                  Communications of the ACM  Volume 25, Issue 7
                  July 1982
                  81 pages
                  ISSN:0001-0782
                  EISSN:1557-7317
                  DOI:10.1145/358557
                  Issue’s Table of Contents

                  Copyright © 1982 ACM

                  Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 1 July 1982

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • article

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader