Generating Summaries for Methods of Event-Driven Programs: an Android Case Study

12/11/2018
by   Alireza Aghamohammadi, et al.
0

Developers often dedicate a great amount of time to program comprehension. Program comprehension reduces the cost and time of software development and increases maintainability of a program. However, the lack of documentation makes this process cumbersome for developers. Source code summarization is one of the existing solutions to help developers understand software programs more easily. Lots of 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 a software. 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. We conducted an empirical evaluation with 14 real-world Android applications and 26 participants to measure the quality of our approach. The experimental results show 32.20% BLEU4 and 16.91% METEOR which are a definite improvement compared to the existing state-of-the-art techniques.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/27/2019

TreeCaps: Tree-Structured Capsule Networks for Program Source Code Processing

Program comprehension is a fundamental task in software development and ...
research
12/14/2018

Supporting software documentation with source code summarization

Source code summarization is a process of generating summaries that desc...
research
04/06/2021

ASTANA: Practical String Deobfuscation for Android Applications Using Program Slicing

Software obfuscation is widely used by Android developers to protect the...
research
06/06/2018

Obfuscation Resilient Search throughExecutable Classification

Android applications are usually obfuscated before release, making it di...
research
06/06/2018

Obfuscation Resilient Search through Executable Classification

Android applications are usually obfuscated before release, making it di...
research
02/05/2019

A Neural Model for Generating Natural Language Summaries of Program Subroutines

Source code summarization -- creating natural language descriptions of s...
research
07/15/2021

Neural Code Summarization: How Far Are We?

Source code summaries are important for the comprehension and maintenanc...

Please sign up or login with your details

Forgot password? Click here to reset