refactoring via program slicing and sliding ran ettinger programming tools group university of...
TRANSCRIPT
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!