More than Just Lines on a Map: Best Practices for U.S Bike Routes
History Slicing: Assisting Code-Evolution Tasks
1. History Slicing:
Assisting Code-Evolution tasks
Francisco Servant, James A. Jones
University of California, Irvine
Supported by NSF Award CCF-1116943 and Google
SpiderLab
2.
3.
4.
5.
6.
7.
8. History Slice
The subset of the history of the program
that corresponds to a set of lines of interest
History Slicing
The process followed to obtain a history slice
32. Solution:
Current revision control tools
Snippet 1
1.288 Oct 02 2004
1.282 Sep 24 2004
1.271 Aug 28 2004
1.266 Aug 20 2004
1.232 May 18 2004
1.220 May 16 2004
1.156 Aug 04 2003
1.98 May 22 2002
1.70 Mar 17 2002
1.64 Feb 20 2002
1.59 Oct 17 2001
1.48 Jun 28 2001
1.1 Apr 19 1999
Snippet 2
1.265 Jun 06 2007
1.262 Jun 04 2007
1.231 Oct 28 2004
1.217 Sep 27 2004
1.212 Sep 23 2004
1.203 Sep 01 2004
1.190 Sep 04 2004
1.184 Jul 28 2004
1.88 Apr 08 2002
1.60 Jan 22 2001
1.48 Oct 20 2000
1.1 Apr 19 1999
33. Solution:
Current revision control tools
Snippet 1
1.288 Oct 02 2004
1.282 Sep 24 2004
1.271 Aug 28 2004
1.266 Aug 20 2004
1.232 May 18 2004
1.220 May 16 2004
1.156 Aug 04 2003
1.98 May 22 2002
1.70 Mar 17 2002
1.64 Feb 20 2002
1.59 Oct 17 2001
1.48 Jun 28 2001
1.1 Apr 19 1999
Snippet 2
1.265 Jun 06 2007
1.262 Jun 04 2007
1.231 Oct 28 2004
1.217 Sep 27 2004
1.212 Sep 23 2004
1.203 Sep 01 2004
1.190 Sep 04 2004
1.184 Jul 28 2004
1.88 Apr 08 2002
1.60 Jan 22 2001
1.48 Oct 20 2000
1.1 Apr 19 1999
Total time spent:
26 minutes
34. History Slicing with current revision control tools
involves:
Manual navigation of the dimension of history
Manual navigation of the dimension of the program
Manual representation of the history slice
A tedious and error-prone process
Current revision control tools
35. Automated History Slicing: CHRONOS
History Slicing with CHRONOS provides:
Automatic processing of the dimension of history
Automatic processing of the dimension of the program
Automatic representation of the history slice that
supports its comprehension
An efficient process
71. Related Work
Mechanisms to trace code history through revisions
Evolution models, e.g. [Girba et al. 2006], [Zimmermann et al. 2006]
Line-mapping techniques, e.g. [Chen et al. 2001], [Hunt 2002], [Maletic
2004], [Apiwattanapong 2007], [Canfora et al. 2007], [Dig et al. 2007],
[Williams and Spacco 2008], [Reiss 2008], [Duley et al. 2010]
Interfaces to visualize code history
System level, e.g. [Lanza and Ducasse 2002], [Girba et al. 2005],
[Ripley et al. 2007]
File level, e.g. CVS, Subversion, Git
Method level, e.g. [Hassan and Holt 2004], [Holmes and Begel 2008]
Line level, last change only, e.g. [Bradley and Murphy 2011]