Abstract
Evolutionary tasks, specially refactoring, affect source code and object models, hindering correctness and conformance. Due to the gap between object models and programs, refactoring tasks get duplicated in commonly-used model-driven development approaches, such as Round-Trip Engineering. In this paper, we propose a formal approach to consistently refactor systems in a model-driven manner. Each object model refactoring applied by the user is associated with a sequence of behavior preserving program transformations, which can be semi-automatically performed to an initially conforming program. As a consequence, this foundation for model-driven refactoring guarantees behavior preservation of the target program, besides its conformance with the refactored object model. This approach is described in detail, along with its formal infrastructure, including a conformance relationship between object models and programs. A case study reveals evidence on issues that will surely recur in other model-driven development contexts.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Kleppe, A., et al.: MDA Explained: the Practice and Promise of The Model Driven Architecture. Addison-Wesley, Reading (2003)
Fowler, M.: Refactoring—Improving the Design of Existing Code (1999)
Opdyke, W.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)
Jackson, D.: Software Abstractions: Logic, Language and Analysis (2006)
Banerjee, A., Naumann, D.A.: Ownership confinement ensures representation independence for object-oriented programs. Journal of the ACM 52(6), 894–960 (2005)
Sendall, S., Küster, J.: Taming Model Round-Trip Engineering. In: Workshop on Best Practices for Model-Driven Software Development (OOPSLA 2004 ) (2004)
Balcer, M.J., Mellor, S.J.: Executable UML: A Foundation for Model Driven Architecture (2002)
Hailpern, B., Tarr, P.: Model-driven development: The good, the bad, and the ugly. IBM Systems Journal 45(3), 451–461
Gheyi, R.: A Refinement Theory for Alloy. PhD thesis, Informatics Center – Federal University of Pernambuco (August 2007)
Massoni, T., Gheyi, R., Borba, P.: Formal Refactoring for UML Class Diagrams. In: 19th SBES, Uberlandia, Brazil, pp. 152–167 (2005)
Gheyi, R., Massoni, T., Borba, P.: An abstract equivalence notion for object models. ENTCS 130, 3–21 (2005)
Hoare, C.A.R., Hayes, I.J., Jifeng, H., Morgan, C.C., Roscoe, A.W., Sanders, J.W., Sorensen, I.H., Spivey, J.M., Sufrin, B.A.: Laws of Programming. Communications of the ACM 30(8), 672–686 (1987)
Borba, P., et al.: Algebraic Reasoning for Object-Oriented Programming. Science of Computer Programming 52, 53–100 (2004)
Massoni, T., Gheyi, R., Borba, P.: A Formal Framework for Establishing Conformance between Object Models and Object-Oriented Programs. In: SBMF, pp. 201–216 (2006)
Oliveira, M., Cavalcanti, A., Woodcock, J.: ArcAngel: a Tactic Language for Refinement. Formal Aspects of Computing 15(1), 28–47 (2003)
Tip, F., et al.: Refactoring for Generalization Using Type Constraints. In: 18th OOPSLA, pp. 13–26. ACM Press, New York (2003)
Harrison, W., et al.: Mapping UML Designs to Java. In: Proceedings of OOPSLA 2000, pp. 178–187. ACM Press, New York (2000)
Guéhéneuc, Y.G., Albin-Amiot, H.: Recovering Binary Class Relationships: Putting Icing on the UML Cake. In: Proceedings of the 19th OOPSLA, October 2004, pp. 301–314. ACM Press, New York (2004)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Massoni, T., Gheyi, R., Borba, P. (2008). Formal Model-Driven Program Refactoring. In: Fiadeiro, J.L., Inverardi, P. (eds) Fundamental Approaches to Software Engineering. FASE 2008. Lecture Notes in Computer Science, vol 4961. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78743-3_27
Download citation
DOI: https://doi.org/10.1007/978-3-540-78743-3_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-78742-6
Online ISBN: 978-3-540-78743-3
eBook Packages: Computer ScienceComputer Science (R0)