TY - GEN
T1 - Refactoring and representation independence for class hierarchies
AU - Silva, Leila
AU - Naumann, David A.
AU - Sampaio, Augusto
PY - 2010
Y1 - 2010
N2 - Refactoring transformations are important for productivity and quality in software evolution. Modular reasoning about semantics preserving transformations is difficult even in typed class-based languages because transformations can change the internal representations for multiple interdependent classes and because encapsulation can be violated by pointers to mutable objects. In this paper, an existing theory of representation independence for a single class, based on a simple notion of ownership confinement, is generalized to a hierarchy of classes and used to prove several refactoring laws. Soundness of these laws was an open problem in an ongoing project on formal refactoring tools. The utility of the laws is shown in a case study. Shortcomings of the theory are described as a challenge to other approaches to heap encapsulation and relational reasoning for classes.
AB - Refactoring transformations are important for productivity and quality in software evolution. Modular reasoning about semantics preserving transformations is difficult even in typed class-based languages because transformations can change the internal representations for multiple interdependent classes and because encapsulation can be violated by pointers to mutable objects. In this paper, an existing theory of representation independence for a single class, based on a simple notion of ownership confinement, is generalized to a hierarchy of classes and used to prove several refactoring laws. Soundness of these laws was an open problem in an ongoing project on formal refactoring tools. The utility of the laws is shown in a case study. Shortcomings of the theory are described as a challenge to other approaches to heap encapsulation and relational reasoning for classes.
UR - http://www.scopus.com/inward/record.url?scp=79957996089&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=79957996089&partnerID=8YFLogxK
U2 - 10.1145/1924520.1924528
DO - 10.1145/1924520.1924528
M3 - Conference contribution
AN - SCOPUS:79957996089
SN - 9781450305402
T3 - 24th European Conference on Object-Oriented Programming, ECOOP 2010 Workshop Proceedings - Workshop 5:12th Workshop on Formal Techniques for Java-Like Programs, FTFJP'10
BT - 24th European Conference on Object-Oriented Programming, ECOOP 2010 Workshop Proceedings - Workshop 5:12th Workshop on Formal Techniques for Java-Like Programs, FTFJP'10
T2 - 24th European Conference on Object-Oriented Programming, ECOOP 2010 - 12th Workshop on Formal Techniques for Java-Like Programs, FTFJP'10
Y2 - 22 June 2010 through 22 June 2010
ER -