Advanced

Program metamorphosis

Reichenbach, Christoph LU ; Coughlin, Devin and Diwan, Amer (2009) 23rd European Conference on Object-Oriented Programming, ECOOP 2009 In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) 5653 LNCS. p.394-418
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... (More)

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.

(Less)
Please use this url to cite or link to this publication:
author
publishing date
type
Chapter in Book/Report/Conference proceeding
publication status
published
subject
keywords
Program Evolution, Refactoring
host publication
ECOOP 2009 - Object-Oriented Programming - 23rd European Conference, Proceedings
series title
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
volume
5653 LNCS
pages
25 pages
publisher
Springer
conference name
23rd European Conference on Object-Oriented Programming, ECOOP 2009
conference location
Genoa, Italy
conference dates
2009-07-06 - 2009-07-10
external identifiers
  • scopus:69949158213
ISSN
0302-9743
1611-3349
ISBN
3642030122
9783642030123
DOI
10.1007/978-3-642-03013-0_18
language
English
LU publication?
no
id
2d89469b-5880-42fd-9529-5a22aaae1bf5
date added to LUP
2019-03-29 20:05:26
date last changed
2019-04-16 09:51:59
@inproceedings{2d89469b-5880-42fd-9529-5a22aaae1bf5,
  abstract     = {<p>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.</p>},
  author       = {Reichenbach, Christoph and Coughlin, Devin and Diwan, Amer},
  booktitle    = {Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)},
  isbn         = {3642030122},
  issn         = {0302-9743},
  keyword      = {Program Evolution,Refactoring},
  language     = {eng},
  location     = {Genoa, Italy},
  month        = {09},
  pages        = {394--418},
  publisher    = {Springer},
  title        = {Program metamorphosis},
  url          = {http://dx.doi.org/10.1007/978-3-642-03013-0_18},
  volume       = {5653 LNCS},
  year         = {2009},
}