kirancodes.me
To Proof Maintenance & Beyond!

Semantic Slicing of Software Version Histories (T)

Yi Li, Julia Rubin, Marsha Chechik

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.

BibTeX
@inproceedings{Li-al:ASE15,
  author    = {Yi Li and
               Julia Rubin and
               Marsha Chechik},
  title     = {Semantic Slicing of Software Version Histories {(T)}},
  booktitle = {ASE},
  pages     = {686--696},
  publisher = {{IEEE} Computer Society},
  year      = {2015},
}

Related papers