Hierarchical Abstraction of Execution Traces for Program Comprehension

Conference Paper (2018)
Author(s)

Yang Feng (University of California)

Kaj Dreef (University of California)

James Jones (University of California)

A. van Van Deursen (TU Delft - Software Technology)

Department
Software Technology
DOI related publication
https://doi.org/10.1145/3196321.3196343
More Info
expand_more
Publication Year
2018
Language
English
Department
Software Technology
Pages (from-to)
86-96
ISBN (electronic)
978-1-4503-5714-2

Abstract

Understanding the dynamic behavior of a software system is one of the most important and time-consuming tasks for today’s software maintainers. In practice, understanding the inner workings of software requires studying the source code and documentation and inserting logging code in order to map high-level descriptions of the program behavior with low-level implementation, i.e., the source code. Unfortunately, for large codebases and large log les, such cognitive mapping can be quite challenging. To bridge the cognitive gap between the source code and detailed models of program behavior, we propose a fully automatic approach to present a semantic abstraction with different levels of functional granularity from full execution traces. Our approach builds multi-level abstractions and identifies frequent behaviors at each level based on a number of execution traces, and then, it labels phases within individual execution traces according to the identified major functional behaviors of the system. To validate our approach, we conducted a case study on a large-scale subject program, Javac, to demonstrate the effectiveness of the mining result. Furthermore, the results of a user study demonstrate that our approach is capable of presenting users a high-level comprehensible abstraction of execution behavior. Based on a real world subject program the participants in our user study were able to achieve a mean accuracy of 70%.

No files available

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