Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panaya’s Reading Group 2 November, 2006
Mar 27, 2015
Refactoring via Program Slicing and Sliding
Ran EttingerProgramming Tools Group
University of Oxford
In Panaya’s Reading Group2 November, 2006
Are the two programs equivalent?
?=
Refactoring enables iterative and incremental
software development
The gap:Refactoring tools are important but weak
Example: Fowler’s video-store
Programmers use sliceswhen refactoring
Challenge:Automatic slice-extraction
Approach: Program Sliding
Sliding 1: statement-duplication
Rule of statement-duplication
Sliding 2: slicing on both sides
Sliding 2: a refinement rule
Example of over-duplication
Solution (sliding 3): final-use substitution
Sliding 3: statement-duplication with final-use substitution
Sliding 4: Slicing after final-use substitution
Sliding 4: a refinement rule
Sliding 5: compensation-free sliding
Sliding 5: a refinement rule
Potential implications of slides and sliding:
Refactoring and beyond
Thanks!