Automatic generation of natural language summaries for Java classes
Authors:
Top Cited Papers
- 1 May 2013
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10928138,p. 23-32
Abstract
Most software engineering tasks require developers to understand parts of the source code. When faced with unfamiliar code, developers often rely on (internal or external) documentation to gain an overall understanding of the code and determine whether it is relevant for the current task. Unfortunately, the documentation is often absent or outdated. This paper presents a technique to automatically generate human readable summaries for Java classes, assuming no documentation exists. The summaries allow developers to understand the main goal and structure of the class. The focus of the summaries is on the content and responsibilities of the classes, rather than their relationships with other classes. The summarization tool determines the class and method stereotypes and uses them, in conjunction with heuristics, to select the information to be included in the summaries. Then it generates the summaries using existing lexicalization tools. A group of programmers judged a set of generated summaries for Java classes and determined that they are readable and understandable, they do not include extraneous information, and, in most cases, they are not missing essential information.Keywords
This publication has 21 references indexed in Scilit:
- JStereoCode: automatically identifying method and class stereotypes in Java code2012
- Generating Parameter Comments and Integrating with Method Summaries2011
- Automatically documenting program changes2010
- Supporting program comprehension with source code summarization2010
- Automatic documentation inference for exceptions2008
- Automatic summarising: The state of the artInformation Processing & Management, 2007
- Combining Formal Concept Analysis with Information Retrieval for Concept Location in Source Code2007
- Using natural language program analysis to locate and understand action-oriented concerns2007
- Semantic clustering: Identifying topics in source codeInformation and Software Technology, 2007
- Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System2006