Generating summaries for methods of event-driven programs

An Android case study

Journal Article (2020)
Authors

Alireza Aghamohammadi (Sharif University of Technology)

Maliheh Izadi (Sharif University of Technology)

Abbas Heydarnoori (Sharif University of Technology)

Affiliation
External organisation
To reference this document use:
https://doi.org/10.1016/j.jss.2020.110800
More Info
expand_more
Publication Year
2020
Language
English
Affiliation
External organisation
Volume number
170
DOI:
https://doi.org/10.1016/j.jss.2020.110800

Abstract

The lack of proper documentation makes program comprehension a cumbersome process for developers. Source code summarization is one of the existing solutions to this problem. Many approaches have been proposed to summarize source code in recent years. A prevalent weakness of these solutions is that they do not pay much attention to interactions among elements of software. An element is simply a callable code snippet such as a method or even a clickable button. As a result, these approaches cannot be applied to event-driven programs, such as Android applications, because they have specific features such as numerous interactions between their elements. To tackle this problem, we propose a novel approach based on deep neural networks and dynamic call graphs to generate summaries for methods of event-driven programs. First, we collect a set of comment/code pairs from Github and train a deep neural network on the set. Afterward, by exploiting a dynamic call graph, the Pagerank algorithm, and the pre-trained deep neural network, we generate summaries. An empirical evaluation with 14 real-world Android applications and 42 participants indicates 32.3% BLEU4 which is a definite improvement compared to the existing state-of-the-art techniques. We also assessed the informativeness and naturalness of our generated summaries from developers’ perspectives and showed they are sufficiently understandable and informative.

No files available

Metadata only record. There are no files for this record.