Title
Preserving instance state during refactorings in live environments
Abstract
An important activity of software evolution consists in applying refactorings to enhance the quality of the code without changing its behaviour. Having a proper refactoring tool is a must-to in any professional development environment. In addition, live programming allows faster development than the usual edit-compile-debug process. During live programming sessions, the developer can directly manipulate instances and modify the state of the running program. However, when a complex refactoring is performed, instances may be corrupted (i.e., their state is lost). For example, when pushing an instance variable to a superclass there is a moment where the superclass does not have yet acquired the new instance variable and the subclass does not have it any more. It means that the value assigned to this instance variable in existing instances is lost after the refactoring. This problem is not anecdotal since 36% of the refactorings described in Fowler’s catalogue corrupt instances when used in a live programming context. There is a need to manually migrate, regenerate or reload instances from persistent sources. This manual fix lowers the usefulness of live programming.
Year
DOI
Venue
2020
10.1016/j.future.2020.04.010
Future Generation Computer Systems
Keywords
DocType
Volume
Automatic refactorings,Live programming environments,Dynamic software update,IDE
Journal
110
ISSN
Citations 
PageRank 
0167-739X
0
0.34
References 
Authors
0
5
Name
Order
Citations
PageRank
Pablo Tesone112.75
Guillermo Polito227.84
Luc Fabresse36215.67
Noury Bouraqadi49418.92
Stéphane Ducasse53418243.15