Program metamorphosis

Christoph Reichenbach, Devin Coughlin, Amer Diwan

Research output: Chapter in Book/Report/Conference proceedingPaper in conference proceedingpeer-review

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.

Original languageEnglish
Title of host publicationECOOP 2009 - Object-Oriented Programming - 23rd European Conference, Proceedings
PublisherSpringer
Pages394-418
Number of pages25
ISBN (Print)3642030122, 9783642030123
DOIs
Publication statusPublished - 2009 Sept 14
Externally publishedYes
Event23rd European Conference on Object-Oriented Programming, ECOOP 2009 - Genoa, Italy
Duration: 2009 Jul 62009 Jul 10

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume5653 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference23rd European Conference on Object-Oriented Programming, ECOOP 2009
Country/TerritoryItaly
CityGenoa
Period2009/07/062009/07/10

Subject classification (UKÄ)

  • Computer Science

Free keywords

  • Program Evolution
  • Refactoring

Fingerprint

Dive into the research topics of 'Program metamorphosis'. Together they form a unique fingerprint.

Cite this