A paper [1] in collaboration with Chenguang Zhu (UT Austin), Julia Rubin (UBC), and Marsha Chechik (U Toronto) was accepted at ICSME’20. This paper puts several history slicing techniques we developed over the years under a uniform lens and provides a systematic approach for comparisons and analyses. A quick summary of the paper is given below.
Semantic history slicing addresses the problem of identifying changes related to a particular high-level functionality from the software change histories. Existing solutions are either imprecise, resulting in larger-than-necessary history slices, or inefficient, taking a long time to execute. In this paper, we develop a generalized history slicing framework, named GenSlice, which overcomes the aforementioned limitations. GenSlice abstracts existing history slicing techniques and change history management operations (such as splitting commits into fine-grained changes) as history transformation operators, making it possible to apply them sequentially in various orders. We study and prove properties of various orders of operators and devise a systematic approach for efficiently producing history slices that are optimal for practical purposes. We report on an empirical evaluation of our framework, demonstrating its effectiveness on a set of real-world case studies.
The software artifact associated with this paper has won a Best Artifact Award at the 36th IEEE International Conference on Software Maintenance and Evolution (ICSME 2020).
References
- Zhu, C., Li, Y., Rubin, J., & Chechik, M. (2020). GenSlice: Generalized Semantic History Slicing. Proceedings of the 36th IEEE International Conference on Software Maintenance and Evolution (ICSME), 81–91.