Abstract
Object models provide abstract information about software structure, but their maintenance is difficult after refactoring takes place. In Model-Driven Development (MDD), effective transferral of model refactoring changes to programs is problematic, especially if these programs are subject to developer manipulation. Consequently, code-driven approaches end up being adopted. We formalize a theory of synchronizers, which are sequences of behavior-preserving program transformations. This theory makes use of invariant-based refactoring, the key idea behind synchronizers. We also establish and prove a soundness theorem for synchronizers. By uncovering the formal requirements for correct refactoring synchronization, the proved properties point out issues – regarding consistency, refactoring automation and quality – that recur in several MDD settings that employ object models.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Fowler, M.: Refactoring—Improving the Design of Existing Code. Addison-Wesley, Reading (1999)
Opdyke, W.: Refactoring Object-Oriented Frameworks. PhD thesis, UIUC (1992)
Jackson, D.: Software Abstractions: Logic, Language and Analysis. MIT Press, Cambridge (2006)
Liskov, B., Guttag, J.: Program Development in Java. Addison-Wesley, Reading (2001)
Mens, T., Tourwe, T.: A survey of software refactoring. IEEE Transactions on Software Engineering 30, 126–139 (2004)
Greenfield, J., Short, K., Cook, S., Kent, S.: Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley, Chichester (2004)
France, R.B., Rumpe, B.: Model-driven development of complex software: a research roadmap. In: FOSE 2007, pp. 37–54 (2007)
Hettel, T., Lawley, M., Raymond, K.: Model synchronisation: Definitions for round-trip engineering. In: Vallecillo, A., Gray, J., Pierantonio, A. (eds.) ICMT 2008. LNCS, vol. 5063, pp. 31–45. Springer, Heidelberg (2008)
Harrison, W., Barton, C., Raghavachari, M.: Mapping UML Designs to Java. In: Proceedings of OOPSLA 2000, pp. 178–187 (2000)
Lammel, R.: Coupled software transformations. In: SET, pp. 31–35 (2004)
Diskin, Z.: Algebraic models for bidirectional model synchronization. In: Busch, C., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 21–36. Springer, Heidelberg (2008)
Stevens, P.: A Landscape of Bidirectional Model Transformations. In: Lämmel, R., Visser, J., Saraiva, J. (eds.) GTTSE 2007. LNCS, vol. 5235, pp. 408–424. Springer, Heidelberg (2008)
Bohannon, A., Pierce, B., Vaughan, J.: Relational lenses: a language for updatable views. In: PODS, pp. 338–347 (2006)
Massoni, T., Gheyi, R., Borba, P.: Formal model-driven program refactoring. In: FASE-ETAPS 2008, pp. 362–376 (2008)
Massoni, T., Gheyi, R., Borba, P.: An approach to invariant-based program refactoring. In: Setra Workshop 2006, pp. 91–101 (2006)
Gheyi, R., Massoni, T., Borba, P.: A static semantics for alloy and its impact in refactorings. ENTCS 184, 209–233 (2007)
Massoni, T.: A Model-Driven Approach to Formal Refactoring. PhD thesis, UFPE (2008)
Borba, P., Sampaio, A., Cavalcanti, A., Cornélio, M.: Algebraic Reasoning for Object-Oriented Programming. Science of Computer Programming 52, 53–100 (2004)
Banerjee, A., Naumann, D.A.: Ownership confinement ensures representation independence for object-oriented programs. Journal of the ACM 52, 894–960 (2005)
Gheyi, R., Massoni, T., Borba, P.: An abstract equivalence notion for object models. ENTCS, vol. 130, pp. 3–21 (2005)
Gheyi, R., Massoni, T., Borba, P.: A Complete Set of Object Modeling Laws for Alloy. In: Oliveira, M.V.M., Woodcock, J. (eds.) SBMF 2009. LNCS, vol. 5902, pp. 204–219. Springer, Heidelberg (2009)
Massoni, T., Gheyi, R., Borba, P.: Synchronizing model and program refactoring (2010), http://www.dsc.ufcg.edu.br/~spg/uploads/massoni-tech10.pdf
Morgan, C.: Programming from Specifications, 2nd edn. Prentice-Hall, Englewood Cliffs (1998)
Clarke, D.: Object Ownership and Containment. PhD thesis, UNSW (2001)
Barnett, M., DeLine, R., Fähndrich, M., Leino, K.R.M., Schulte, W.: Verification of Object-Oriented Programs with Invariants. Journal of Object Technology 3, 27–56 (2004)
Martin, A.: Machine-Assisted Theorem-Proving for Software Engineering. PhD thesis, Penbroke College (1994)
Antkiewicz, M., Czarnecki, K.: Design space of heterogeneous synchronization. In: GTTSE, Braga, Portugal, pp. 3–46 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Massoni, T., Gheyi, R., Borba, P. (2011). Synchronizing Model and Program Refactoring. In: Davies, J., Silva, L., Simao, A. (eds) Formal Methods: Foundations and Applications. SBMF 2010. Lecture Notes in Computer Science, vol 6527. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-19829-8_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-19829-8_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-19828-1
Online ISBN: 978-3-642-19829-8
eBook Packages: Computer ScienceComputer Science (R0)