Program metamorphosis
(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)
- author
- Reichenbach, Christoph LU ; Coughlin, Devin and Diwan, Amer
- publishing date
- 2009-09-14
- 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
- 1611-3349
- 0302-9743
- 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
- 2024-07-09 08:55:52
@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 = {{ECOOP 2009 - Object-Oriented Programming - 23rd European Conference, Proceedings}}, isbn = {{3642030122}}, issn = {{1611-3349}}, keywords = {{Program Evolution; Refactoring}}, language = {{eng}}, month = {{09}}, pages = {{394--418}}, publisher = {{Springer}}, series = {{Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)}}, title = {{Program metamorphosis}}, url = {{http://dx.doi.org/10.1007/978-3-642-03013-0_18}}, doi = {{10.1007/978-3-642-03013-0_18}}, volume = {{5653 LNCS}}, year = {{2009}}, }