One of the first steps to perform most of the software maintenance activities, such as updating features or fixing bugs, is to have a relatively good understanding of the program's source code which is often written by other developers. A code summary is a description about a program's entities (e.g., its methods) which helps developers have a better comprehension of the code in a shorter period of time. However, generating code summaries can be a challenging task. To mitigate this problem, in this article, we introduce CrowdSummarizer, a code summarization platform that benefits from the concepts of crowdsourcing, gamification, and natural language processing to automatically generate a high level summary for the methods of a Java program. We have implemented CrowdSummarizer as an Eclipse plugin together with a web-based code summarization game that can be played by the crowd. The results of two empirical studies that evaluate the applicability of the approach and the quality of generated summaries indicate that CrowdSummarizer is effective in generating quality results.
The key difference between our approach (as well as other summarization approaches) and these existing approaches is that documentation techniques, such as JavaDocs @cite_13 work on combining short paragraphs attached to each method to create a code document and ignore the way that this short paragraphs are created (manual (i.e. human written) or automatically), while code summarization techniques generate descriptions about a piece of a code (i.e. the short paragraph itself). Indeed, the code summaries can be considered as the main components of the program document.
@cite_13
1994683471
This paper describes in a general way the process we went through to determine the goals, principles, audience, content and style for writing comments in source code for the Java platform at the Java Software division of Sun Microsystems. This includes how the documentation comments evolved to become the home of the Java platform API specification, and the guidelines we developed to make it practical for this document to reside in the same files as the source code.