Standard

Hierarchical Abstraction of Execution Traces for Program Comprehension. / Feng, Yang; Dreef, Kaj; Jones, James; Deursen, Arie van.

Proceedings of the 26th Conference on Program Comprehension, ICPC 2018. New York, NY : Association for Computing Machinery (ACM), 2018. p. 86-96.

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

Harvard

Feng, Y, Dreef, K, Jones, J & Deursen, AV 2018, Hierarchical Abstraction of Execution Traces for Program Comprehension. in Proceedings of the 26th Conference on Program Comprehension, ICPC 2018. Association for Computing Machinery (ACM), New York, NY, pp. 86-96, ICPC 2018, Gothenburg, Sweden, 27/05/18. https://doi.org/10.1145/3196321.3196343

APA

Feng, Y., Dreef, K., Jones, J., & Deursen, A. V. (2018). Hierarchical Abstraction of Execution Traces for Program Comprehension. In Proceedings of the 26th Conference on Program Comprehension, ICPC 2018 (pp. 86-96). Association for Computing Machinery (ACM). https://doi.org/10.1145/3196321.3196343

Vancouver

Feng Y, Dreef K, Jones J, Deursen AV. Hierarchical Abstraction of Execution Traces for Program Comprehension. In Proceedings of the 26th Conference on Program Comprehension, ICPC 2018. New York, NY: Association for Computing Machinery (ACM). 2018. p. 86-96 https://doi.org/10.1145/3196321.3196343

Author

Feng, Yang ; Dreef, Kaj ; Jones, James ; Deursen, Arie van. / Hierarchical Abstraction of Execution Traces for Program Comprehension. Proceedings of the 26th Conference on Program Comprehension, ICPC 2018. New York, NY : Association for Computing Machinery (ACM), 2018. pp. 86-96

BibTeX

@inproceedings{4842a4283ced45d1a31784576a3d6cdd,
title = "Hierarchical Abstraction of Execution Traces for Program Comprehension",
abstract = "Understanding the dynamic behavior of a software system is one of the most important and time-consuming tasks for today{\textquoteright}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%.",
author = "Yang Feng and Kaj Dreef and James Jones and Deursen, {Arie van}",
year = "2018",
doi = "10.1145/3196321.3196343",
language = "English",
pages = "86--96",
booktitle = "Proceedings of the 26th Conference on Program Comprehension, ICPC 2018",
publisher = "Association for Computing Machinery (ACM)",
address = "United States",
note = "ICPC 2018 : IEEE/ACM International Conference on Program Comprehension 2018 ; Conference date: 27-05-2018 Through 28-05-2018",
url = "https://conf.researchr.org/home/icpc-2018",

}

RIS

TY - GEN

T1 - Hierarchical Abstraction of Execution Traces for Program Comprehension

AU - Feng, Yang

AU - Dreef, Kaj

AU - Jones, James

AU - Deursen, Arie van

PY - 2018

Y1 - 2018

N2 - 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%.

AB - 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%.

U2 - 10.1145/3196321.3196343

DO - 10.1145/3196321.3196343

M3 - Conference contribution

SP - 86

EP - 96

BT - Proceedings of the 26th Conference on Program Comprehension, ICPC 2018

PB - Association for Computing Machinery (ACM)

CY - New York, NY

T2 - ICPC 2018

Y2 - 27 May 2018 through 28 May 2018

ER -

ID: 45181758