skip to main content
10.1109/ASE.2013.6693133acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
Article

Model/code co-refactoring: an MDE approach

Authors Info & Claims
Published:11 November 2013Publication History

ABSTRACT

Model-driven engineering suggests that models are the primary artefacts of software development. This means that models may be refactored even after code has been generated from them, in which case the code must be changed to reflect the refactoring. However, as we show neither re-generating the code from the refactored model nor applying an equivalent refactoring to the generated code is sufficient to keep model and code in sync -- rather, model and code need to be refactored jointly. To enable this, we investigate the technical requirements of model/code corefactoring, and implement a model-driven solution that we evaluate using a set of open-source programs and their structural models. Results suggest that our approach is feasible.

References

  1. Acceleo Model-to-Text Transformation (www.eclipse.org/acceleo).Google ScholarGoogle Scholar
  2. L Angyal, L Lengyel, H Charaf "Novel techniques for model-code synchronization" ECEASST 8: ERCIM Symposium on Software Evolution (2007).Google ScholarGoogle Scholar
  3. EMF Metamodel (Ecore) www.eclipse.org/modeling/emf.Google ScholarGoogle Scholar
  4. J Estublier, T Leveque, G Vega "Evolution control in MDE projects: Controlling model and code co-evolution" in: Proc. of FSE (2010) 431-438. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M Fowler Refactoring: Improving the Design of Existing Code (Addison-Wesley 1999). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A Kiezun, V Ganesh, S Artzi, PJ Guo, P Hooimeijer, MD Ernst "HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars" ACM Trans. Softw. Eng. Methodol. 21(4): 25 (2012). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. MDT/UML2 (www.eclipse.org/uml2/)Google ScholarGoogle Scholar
  8. ER Murphy-Hill, C Parnin, AP Black "How we refactor, and how we know it" IEEE Trans. Software Eng. 38:1 (2012) 5-18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. OMG Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification Version 1.1 (http://www.omg.org/spec/QVT/1.1).Google ScholarGoogle Scholar
  10. F Steimann, A Thies "From public to private to absent: Refactoring Java programs under constrained accessibility" in: Proc. of ECOOP (2009) 419-443. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. F Steimann, C Kollee, J von Pilgrim "A refactoring constraint language and its application to Eiffel" in: Proc. of ECOOP (2011) 255-280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. F Steimann "Contraint-based model refactoring" in: Proc. of MODELS (2011) 440-454. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. F Steimann, J von Pilgrim "Constraint-based refactoring with foresight" in: Proc. of ECOOP (2012) 535-559. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. F Steimann, J von Pilgrim "Refactorings without names" in: Proc. of ASE (2012) 290-293. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. G Sunyé, D Pollet, Y Le Traon, JM Jézéquel "Refactoring UML Models" in: Proc. of UML (2001) 134-148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. F Tip, A Kiezun, D Bäumer "Refactoring for generalization using type constraints" in: Proc. of OOPSLA (2003) 13-26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. F Tip, RM Fuhrer, A Kiezun, MD Ernst, I Balaban, B De Sutter "Refactoring using type constraints" ACM Trans. Program. Lang. Syst. 33(3):9 (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J von Pilgrim Computerunterstützte Modelltransformationen Doctoral Dissertation (Fernuniversität in Hagen, 2011).Google ScholarGoogle Scholar
  19. S Winkler, J von Pilgrim "A survey of traceability in requirements engineering and model-driven development" Software and System Modeling 9:4 (2010) 529-565. Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader