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

24
Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panaya’s Reading Group 2 November, 2006

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

Page 1: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Refactoring via Program Slicing and Sliding

Ran EttingerProgramming Tools Group

University of Oxford

In Panaya’s Reading Group2 November, 2006

Page 2: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Are the two programs equivalent?

?=

Page 3: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Refactoring enables iterative and incremental

software development

Page 4: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

The gap:Refactoring tools are important but weak

Page 5: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Example: Fowler’s video-store

Page 6: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.
Page 7: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.
Page 8: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.
Page 9: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.
Page 10: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Programmers use sliceswhen refactoring

Page 11: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Challenge:Automatic slice-extraction

Approach: Program Sliding

Page 12: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Sliding 1: statement-duplication

Page 13: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Rule of statement-duplication

Page 14: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Sliding 2: slicing on both sides

Page 15: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Sliding 2: a refinement rule

Page 16: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Example of over-duplication

Page 17: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Solution (sliding 3): final-use substitution

Page 18: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Sliding 3: statement-duplication with final-use substitution

Page 19: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Sliding 4: Slicing after final-use substitution

Page 20: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Sliding 4: a refinement rule

Page 21: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Sliding 5: compensation-free sliding

Page 22: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Sliding 5: a refinement rule

Page 23: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Potential implications of slides and sliding:

Refactoring and beyond

Page 24: Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.

Thanks!