Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of...

Post on 27-Mar-2015

215 views 1 download

Tags:

Transcript of Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of...

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!