Program metamorphosis
Research output: Chapter in Book/Report/Conference proceeding › Paper in conference proceeding
Abstract
Modern development environments support refactoring by providing atomically behaviour-preserving transformations. While useful, these transformations are limited in three ways: (i) atomicity forces transformations to be complex and opaque, (ii) the behaviour preservation requirement disallows deliberate behaviour evolution, and (iii) atomicity limits code reuse opportunities for refactoring implementers. We present 'program metamorphosis', a novel approach for program evolution and refactoring that addresses the above limitations by breaking refactorings into smaller steps that need not preserve behaviour individually. Instead, we ensure that sequences of transformations preserve behaviour together, and simultaneously permit selective behavioural change. To evaluate program metamorphosis, we have implemented a prototype plugin for Eclipse. Our analysis and experiments show that (1) our plugin provides correctness guarantees on par with those of Eclipse's own refactorings, (2) both our plugin and our approach address the aforementioned limitations, and (3) our approach fully subsumes traditional refactoring.
Details
Authors | |
---|---|
External organisations |
|
Research areas and keywords | Subject classification (UKÄ) – MANDATORY
Keywords
|
Original language | English |
---|---|
Title of host publication | ECOOP 2009 - Object-Oriented Programming - 23rd European Conference, Proceedings |
Publisher | Springer |
Pages | 394-418 |
Number of pages | 25 |
ISBN (Print) | 3642030122, 9783642030123 |
Publication status | Published - 2009 Sep 14 |
Publication category | Research |
Peer-reviewed | Yes |
Externally published | Yes |
Event | 23rd European Conference on Object-Oriented Programming, ECOOP 2009 - Genoa, Italy Duration: 2009 Jul 6 → 2009 Jul 10 |
Publication series
Name | Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) |
---|---|
Volume | 5653 LNCS |
ISSN (Print) | 0302-9743 |
ISSN (Electronic) | 1611-3349 |
Conference
Conference | 23rd European Conference on Object-Oriented Programming, ECOOP 2009 |
---|---|
Country | Italy |
City | Genoa |
Period | 2009/07/06 → 2009/07/10 |