skip to main content
10.1145/1985793.1985808acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Automatically detecting and describing high level actions within methods

Published: 21 May 2011 Publication History
  • Get Citation Alerts
  • Abstract

    One approach to easing program comprehension is to reduce the amount of code that a developer has to read. Describing the high level abstract algorithmic actions associated with code fragments using succinct natural language phrases potentially enables a newcomer to focus on fewer and more abstract concepts when trying to understand a given method. Unfortunately, such descriptions are typically missing because it is tedious to create them manually.
    We present an automatic technique for identifying code fragments that implement high level abstractions of actions and expressing them as a natural language description. Our studies of 1000 Java programs indicate that our heuristics for identifying code fragments implementing high level actions are widely applicable. Judgements of our generated descriptions by 15 experienced Java programmers strongly suggest that indeed they view the fragments that we identify as representing high level actions and our synthesized descriptions accurately express the abstraction.

    References

    [1]
    T. J. Biggerstaff, B. G. Mitbander, and D. Webster. The concept assignment problem in program understanding. ICSE '93: Intl. Conf. on Softw. Engg., 1993.
    [2]
    R. Brooks. Towards a theory of the comprehension of computer programs. Intl. Journal. Man-Machine Studies, 18, 1983.
    [3]
    R. P. Buse and W. R. Weimer. Automatic documentation inference for exceptions. ISSTA '08: Intl. Symposium on Softw. Testing and Analysis, 2008.
    [4]
    M. E. Crosby, J. Scholtz, and S. Wiedenbeck. The Roles Beacons Play in Comprehension for Novice and Expert Programmers. Workshop of the Psychology of Programming Interest Group (PPIG), 2002.
    [5]
    P. T. Devanbu, R. J. Brachman, P. G. Selfridge, and B. W. Ballard. Lassie - a knowledge-based Softw. information system. ICSE '90: Intl. Conf. on Softw. Engg., 1990.
    [6]
    E. Enslen, E. Hill, L. Pollock, and K. Vijay-Shanker. Mining Source Code to Automatically Split Identifiers for Software Analysis. Intl. Working Conf on Mining Softw. Repositories (MSR), 2009.
    [7]
    M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
    [8]
    J. Y. Gil and I. Maman. Micro patterns in Java code. OOPSLA '05: Conf. on Object-Oriented Prog., Systems, Languages, and Applications, 2005.
    [9]
    S. Henninger. Using Iterative Refinement to Find Reusable Software. IEEE Softw., 11(5):48--59, 1994.
    [10]
    E. Hill. Integrating Natural Language and Program Structure Information to Improve Software Search and Exploration. PhD Dissertation, University of Delaware, 2010.
    [11]
    E. Hill, Z. P. Fry, H. Boyd, G. Sridhara, Y. Novikova, L. Pollock, and K. Vijay-Shanker. AMAP: Automatically Mining Abbreviation Expansions in Programs to Enhance Software Maintenance Tools. Intl. Working Conf on Mining Softw. Repositories, 2008.
    [12]
    E. Hill, L. Pollock, and K. Vijay-Shanker. Automatically Capturing Source Code Context of NL-Queries for Software Maintenance and Reuse. Intl. Conf on Softw. Engg. (ICSE), 2009.
    [13]
    E. W. Høst and B. M. Østvold. The programmer's lexicon, Volume I: The verbs. SCAM '07: Intl. Working Conf. on Source Code Analysis and Manipulation, 2007.
    [14]
    E. W. Høst and B. M. Østvold. Debugging method names. ECOOP: European Conf. on Object-Oriented Prog., 2009.
    [15]
    M. Kajko-Mattsson. A Survey of Documentation Practice within Corrective Maintenance. Empirical Softw. Engg., 10(1):31--55, 2005.
    [16]
    R. Komondoor and S. Horwitz. Effective, automatic procedure extraction. Intl. Workshop on Program Comprehension, 2003.
    [17]
    A. Kuhn, S. Ducasse, and T. Gírba. Semantic clustering: Identifying topics in source code. Inf. Softw. Technol., 49(3), 2007.
    [18]
    B. Liblit, A. Begel, and E. Sweetser. Cognitive Perspectives on the Role of Naming in Computer Programs. Psychology of Programming Workshop (PPIG), 2006.
    [19]
    G. Maskeri, S. Sarkar, and K. Heafield. Mining business topics in source code using latent dirichlet allocation. ISEC '08: India Softw. Engg. Conf., 2008.
    [20]
    M. Ohba and K. Gondow. Toward mining "concept keywords" from identifiers in large software projects. MSR '05: Intl. Workshop on Mining Softw. Repositories, 2005.
    [21]
    G. Sridhara, E. Hill, D. Muppaneni, L. Pollock, and K. Vijay-Shanker. Towards Automatically Generating Summary Comments for Java Methods. Intl. Conf on Automated Softw. Engg. (ASE'10), 2010.
    [22]
    A. A. Takang, P. A. Grubb, and R. D. Macredie. The Effects of Comments and Identifier Names on Program Comprehensibility: An Experimental Investigation. J. Prog. Lang., 4(3), 1996.
    [23]
    T. Tenny. Program Readability: Procedures Versus Comments. IEEE Trans. Softw. Eng., 14(9), 1988.
    [24]
    N. Tsantalis and A. Chatzigeorgiou. Identification of Extract Method Refactoring Opportunities. European Conf. on Softw. Maintenance and Reengineering (CSMR), 2009.

    Cited By

    View all
    • (2024)C2B: A Semantic Source Code Retrieval Model Using CodeT5 and Bi-LSTMApplied Sciences10.3390/app1413579514:13(5795)Online publication date: 2-Jul-2024
    • (2024)Towards Summarizing Code Snippets Using Pre-Trained TransformersProceedings of the 32nd IEEE/ACM International Conference on Program Comprehension10.1145/3643916.3644400(1-12)Online publication date: 15-Apr-2024
    • (2024)Evaluating Code Summarization Techniques: A New Metric and an Empirical CharacterizationProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639174(1-13)Online publication date: 20-May-2024
    • Show More Cited By

    Index Terms

    1. Automatically detecting and describing high level actions within methods

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      ICSE '11: Proceedings of the 33rd International Conference on Software Engineering
      May 2011
      1258 pages
      ISBN:9781450304450
      DOI:10.1145/1985793
      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]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 21 May 2011

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. documentation
      2. program comprehension

      Qualifiers

      • Research-article

      Conference

      ICSE11
      Sponsor:
      ICSE11: International Conference on Software Engineering
      May 21 - 28, 2011
      HI, Waikiki, Honolulu, USA

      Acceptance Rates

      Overall Acceptance Rate 276 of 1,856 submissions, 15%

      Upcoming Conference

      ICSE 2025

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)16
      • Downloads (Last 6 weeks)1
      Reflects downloads up to 14 Aug 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)C2B: A Semantic Source Code Retrieval Model Using CodeT5 and Bi-LSTMApplied Sciences10.3390/app1413579514:13(5795)Online publication date: 2-Jul-2024
      • (2024)Towards Summarizing Code Snippets Using Pre-Trained TransformersProceedings of the 32nd IEEE/ACM International Conference on Program Comprehension10.1145/3643916.3644400(1-12)Online publication date: 15-Apr-2024
      • (2024)Evaluating Code Summarization Techniques: A New Metric and an Empirical CharacterizationProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639174(1-13)Online publication date: 20-May-2024
      • (2024)Integrating Non-Fourier and AST-Structural Relative Position Representations Into Transformer-Based Model for Source Code SummarizationIEEE Access10.1109/ACCESS.2024.335439012(9871-9889)Online publication date: 2024
      • (2023)Snippet Comment Generation Based on Code Context ExpansionACM Transactions on Software Engineering and Methodology10.1145/361166433:1(1-30)Online publication date: 23-Nov-2023
      • (2023)Structural-semantics Guided Program Simplification for Understanding Neural Code Intelligence ModelsProceedings of the 14th Asia-Pacific Symposium on Internetware10.1145/3609437.3609438(1-11)Online publication date: 4-Aug-2023
      • (2023)An Accurate Identifier Renaming Prediction and Suggestion ApproachACM Transactions on Software Engineering and Methodology10.1145/360310932:6(1-51)Online publication date: 29-Sep-2023
      • (2023)A Comparative Study on Method Comment and Inline CommentACM Transactions on Software Engineering and Methodology10.1145/358257032:5(1-26)Online publication date: 22-Jul-2023
      • (2023)GA-SCS: Graph-Augmented Source Code SummarizationACM Transactions on Asian and Low-Resource Language Information Processing10.1145/355482022:2(1-19)Online publication date: 21-Feb-2023
      • (2023)Beyond Literal Meaning: Uncover and Explain Implicit Knowledge in Code Through Wikipedia-Based Concept LinkingIEEE Transactions on Software Engineering10.1109/TSE.2023.325002949:5(3226-3240)Online publication date: 1-May-2023
      • Show More Cited By

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media