Loading...

Code Summarization in Event-Driven Programs

Aghamohammadi, Alireza | 2018

2030 Viewed
  1. Type of Document: M.Sc. Thesis
  2. Language: Farsi
  3. Document No: 51147 (19)
  4. University: Sharif University of Technology
  5. Department: Computer Engineering
  6. Advisor(s): Heydarnoori, Abbas
  7. Abstract:
  8. Developers have been spending a lot of time on program comprehension during software evolution. Program comprehension reduces the cost and the software development time and increases maintainability of a program. However, the lack of documentation makes this process exhausting. Source code summarization is one of the existing solutions to help developers understand a program. Source code summarization gives an opportunity for the developers to better understand the source code by spending less time. There are a lot of approaches for source code summarization. For instance, exploiting knowledge of the crowd, information retrieval, deep neural networks, or using eye tracking of developers address this issue. The common weakness of these approaches is that they do not concentrate on the interactions among elements of the software. Another solution takes the context of the program into account as a critical factor. It finds out the meaning of a method by considering its invocations. However, the problem is that it does not consider events at all. As a result, these approaches can not be applied to event-driven programs because of specific features of those programs such as vast interactions between their elements. The event-driven programs contain a cycle which is waiting for events. When an event triggers, the program runs that event. Therefore, the interactions among elements are specified at runtime in this kind of applications.An android application is a great example of event-driven programs. Here, we proposed a novel approach for source code summarization in event-driven programs that utilizes the deep neural networks and dynamic call graphs. At first, a set of document/code pairs are collected from Stack Overflow and Github websites. Then, we train a deep neural network on that set. Afterwards, by exploiting a dynamic call graph, the Pagerank algorithm, and the pre-trained deep neural network, we generate source code summaries. Finally, the proposed approach is evaluated on real world applications. The results show 50.64% precision and 54.44% recall which is a high improvement in comparison to the existing state-of-the-art techniques
  9. Keywords:
  10. Deep Neural Networks ; Code Summarization ; Programs Comprehension ; Event-Driven Softwares

 Digital Object List

 Bookmark

...see more