Loading...

Generating summaries for methods of event-driven programs: An Android case study

Aghamohammadi, A ; Sharif University of Technology | 2020

623 Viewed
  1. Type of Document: Article
  2. DOI: 10.1016/j.jss.2020.110800
  3. Publisher: Elsevier Inc , 2020
  4. Abstract:
  5. 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. © 2020 Elsevier Inc
  6. Keywords:
  7. Deep learning ; Event-driven programs ; Neural machine translation ; Source code summarization ; Android (operating system) ; Application programs ; Deep neural networks ; Graph algorithms ; Program documentation ; XML ; Android applications ; Empirical evaluations ; Event-driven ; Informative ness ; PageRank algorithm ; Program comprehension ; Source codes ; State-of-the-art techniques ; Neural networks
  8. Source: Journal of Systems and Software ; Volume 170 , 2020
  9. URL: https://www.sciencedirect.com/science/article/abs/pii/S0164121220302065