Program Readability: Procedures Versus Comments
IEEE Transactions on Software Engineering
LaSSIE—a knowledge-based software information system
ICSE '90 Proceedings of the 12th international conference on Software engineering
The concept assignment problem in program understanding
ICSE '93 Proceedings of the 15th international conference on Software Engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Using Iterative Refinement to Find Reusable Software
IEEE Software
Effective, Automatic Procedure Extraction
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
A Survey of Documentation Practice within Corrective Maintenance
Empirical Software Engineering
Toward mining "concept keywords" from identifiers in large software projects
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Semantic clustering: Identifying topics in source code
Information and Software Technology
The Programmer's Lexicon, Volume I: The Verbs
SCAM '07 Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation
Mining business topics in source code using latent dirichlet allocation
ISEC '08 Proceedings of the 1st India software engineering conference
AMAP: automatically mining abbreviation expansions in programs to enhance software maintenance tools
Proceedings of the 2008 international working conference on Mining software repositories
Automatic documentation inference for exceptions
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Identification of Extract Method Refactoring Opportunities
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Automatically capturing source code context of NL-queries for software maintenance and reuse
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Mining source code to automatically split identifiers for software analysis
MSR '09 Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Towards automatically generating summary comments for Java methods
Proceedings of the IEEE/ACM international conference on Automated software engineering
Integrating natural language and program structure information to improve software search and exploration
Automated documentation inference to explain failed tests
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
On the naturalness of software
Proceedings of the 34th International Conference on Software Engineering
AUSUM: approach for unsupervised bug report summarization
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Improving feature location practice with multi-faceted interactive exploration
Proceedings of the 2013 International Conference on Software Engineering
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
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.