skip to main content
article

Automatic generation of suggestions for program investigation

Published:01 September 2005Publication History
Skip Abstract Section

Abstract

Before performing a modification task, a developer usually has to investigate the source code of a system to understand how to carry out the task. Discovering the code relevant to a change task is costly because it is an inherently human activity whose success depends on a large number of unpredictable factors, such as intuition and luck. Although studies have shown that effective developers tend to explore a program by following structural dependencies, no methodology is available to guide their navigation through the typically hundreds of dependency paths found in a non-trivial program. In this paper, we propose a technique to automatically propose and rank program elements that are potentially interesting to a developer investigating source code. Our technique is based on an analysis of the topology of structural dependencies in a program. It takes as input a set of program elements of interest to a developer and produces a fuzzy set describing other elements of potential interest. Empirical evaluation of our technique indicates that it can help developers quickly select program elements worthy of investigation while avoiding less interesting ones.

References

  1. H. Agrawal and J. R. Horgan. Dynamic program slicing. In Proceedings of the Conference on Programming Language Design and Implementation, pages 246--256, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. G. Antoniol, G. Canfora, A. De Lucia, and E. Merlo. Recovering code to documentation links in OO systems. In Proceedings of the 6th Working Conference on Reverse Engineering, pages 136--144, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. T. J. Biggerstaff, B. G. Mitbander, and D. E. Webster. Program understanding and the concept assignment problem. Communications of the ACM, 37(5):72--82, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. B. W. Boehm. Software engineering. IEEE Transactions on Computers, 12(25):1226--1242, 1976.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. K. Chen and V. Rajlich. Case study of feature location using dependence graph. In Proceedings of the 8th International Workshop on Program Comprehension, pages 241--247, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Egyed. Resolving uncertainties during trace analysis. In Proceedings of the 12 International Symposium on the Foundations of Software Engineering, pages 3--12, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. T. Eisenbarth, R. Koschke, and D. Simon. Locating features in source code. IEEE Transactions on Software Engineering, 29(3):210--224, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. K. B. Gallagher. Visual impact analysis. In Proceedings of the International Conference on Software Maintenance, pages 52--58, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. K. B. Gallagher and J. R. Lyle. Using program slicing in software maintenance. IEEE Transactions on Software Engineering, 17(8), 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. Gyimóthy, Árpád Beszédes, and I. Forgács. An efficient relevant slicing method for debugging. In Proceedings of the 7th European Software Engineering Conference and 7th ACM SIGSOFT International Symposium on the Foundations of Software Engineering, pages 303--321, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D. Jackson and E. J. Rollins. A new model of program dependence for reverse engineering. In Proceedings of the 2rd ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages 2--10, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Kersten and G. C. Murphy. Mylar: a degree-of-interest model for IDEs. In Proceedings of the 4th Conference on Aspect-Oriented Software Development, pages 159--168, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Kruchten. The Rational Unified Process: An Introduction. Addison-Wesley, 2nd edition, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Object Technology International, Inc. Eclipse platform technical overview. White Paper, 2001.Google ScholarGoogle Scholar
  15. M. P. Robillard, W. Coelho, and G. C. Murphy. How effective developers investigate source code: An exploratory study. IEEE Transactions on Software Engineering, 30(12):889--903, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. P. Robillard and G. C. Murphy. Concern Graphs: Finding and describing concerns using structural program dependencies. In Proceedings of the 24th International Conference on Software Engineering, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. P. Robillard and G. C. Murphy. Automatically inferring concern code from program investigation activities. In Proceedings of the 18th International Conference on Automated Software Engineering, pages 225--234, 2003.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. G. Snelting. Concept analysis---a new framework for program understanding. In Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pages 1--10, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. F. Tip. A survey of program slicing techniques. Journal of Programming Languages, 3(3):121--189, 1995.Google ScholarGoogle Scholar
  20. P. Tonella, G. Antoniol, R. Fiutem, and E. Merlo. Variable precision reaching definitions analysis for software maintenance. In Proceedings of the 1st Euromicro Conference on Software Maintenance and Reengineering, pages 60--67, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352--357, 1984.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. N. Wilde and M. C. Scully. Software reconnaissance: Mapping program features to code. Software Maintenance: Research and Practice, 7:49--62, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. T. Ying, G. C. Murphy, R. Ng, and M. C. Chu-Carroll. Predicting source code changes by mining change history. IEEE Transactions on Software Engineering, 30(9):574--586, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. W. Zhao, L. Zhang, Y. Liu, J. Sun, and F. Yang. SNIAFL: Towards a static non-interactive approach to feature location. In Proceedings of the 26th International Conference on Software Engineering, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. H.-J. Zimmermann. Fuzzy Set Theory and Its Applications. Kluwer Academic Publishers, third edition, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. T. Zimmermann, P. Weiβgerber, S. Diehl, and A. Zeller. Mining version histories to guide software changes. In Proceedings of the 26th International Conference on Software Engineering, pages 563--572, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Automatic generation of suggestions for program investigation

      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 ACM SIGSOFT Software Engineering Notes
        ACM SIGSOFT Software Engineering Notes  Volume 30, Issue 5
        September 2005
        462 pages
        ISSN:0163-5948
        DOI:10.1145/1095430
        Issue’s Table of Contents
        • cover image ACM Conferences
          ESEC/FSE-13: Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
          September 2005
          402 pages
          ISBN:1595930140
          DOI:10.1145/1081706

        Copyright © 2005 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 September 2005

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader