Title :
Semantic Slicing of Software Version Histories (T)
Author :
Yi Li;Julia Rubin;Marsha Chechik
Author_Institution :
Univ. of Toronto, Toronto, ON, Canada
Abstract :
Software developers often need to transfer func-tionality, e.g., a set of commits implementing a new feature or a bug fix, from one branch of a configuration management system to another. That can be a challenging task as the existing configuration management tools lack support for matching high-level semantic functionality with low-level version histories. The developer thus has to either manually identify the exact set of semantically-related commits implementing the functionality of interest or sequentially port a specific subset of the change history, "inheriting" additional, unwanted functionality. In this paper, we tackle this problem by providing automated support for identifying the set of semantically-related commits implementing a particular functionality, which is defined by a set of tests. We refer to our approach, CSLICER, as semantic slicing of version histories. We formally define the semantic slicing problem, provide an algorithm for identifying a set of commits that constitute a slice, and instantiate it in a specific implementation for Java projects managed in Git. We evaluate the correctness and effectiveness of our approach on a set of open-source software repositories. We show that it allows to identify subsets of change histories that maintain the functionality of interest but are substantially smaller than the original ones.
Keywords :
"History","Semantics","Java","Software","Context","Syntactics","Software algorithms"
Conference_Titel :
Automated Software Engineering (ASE), 2015 30th IEEE/ACM International Conference on
DOI :
10.1109/ASE.2015.47