Abstract
Many modeling languages share some common concepts and principles. For example, Java, MOF, and UML share some aspects of the concepts of classes, methods, attributes, and inheritance. However, model transformations such as refactorings specified for a given language cannot be readily reused for another language because their related metamodels may be structurally different. Our aim is to enable a flexible reuse of model transformations across various metamodels. Thus, in this paper, we present an approach allowing the specification of generic model transformations, in particular refactorings, so that they can be applied to different metamodels. Our approach relies on two mechanisms: (1) an adaptation based mainly on the weaving of aspects; (2) the notion of model typing, an extension of object typing in the model-oriented context. We validated our approach by performing some experiments that consisted of specifying three well known refactorings ( Encapsulate Field,Move Method, and Pull Up Method) and applying each of them onto three different metamodels (Java, MOF, and UML).
This work was realized in the context of the MOVIDA project, funded by the ANR (French National Research Agency) CONVENTION N 2008 SEGI 011.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Amelunxen, C., Legros, E., Schurr, A.: Generic and reflective graph transformations for the checking and enforcement of modeling guidelines. In: Proceedings of the 2008 IEEE Symposium on Visual Languages and Human-Centric Computing (VLHCC 2008), Washington, DC, USA, pp. 211–218. IEEE Computer Society, Los Alamitos (2008)
Basili, V.R., Briand, L.C., Melo, W.L.: How reuse influences productivity in object-oriented systems. Communications of ACM 39(10), 104–116 (1996)
Biggerstaff, T.J., Perlis, A.J.: Software Reusability Volume I: Concepts and Models, vol. I. ACM Press, Addison-Wesley, Reading (1989)
Blanc, X., Gervais, M.-P., Sriplakich, P.: Model bus: Towards the interoperability of modelling tools. In: Aßmann, U., Aksit, M., Rensink, A. (eds.) MDAFA 2003. LNCS, vol. 3599, pp. 17–32. Springer, Heidelberg (2005)
Blanc, X., Ramalho, F., Robin, J.: Metamodel reuse with mof., pp. 661–675 (2005)
Bruce, K.B., Vanderwaart, J.: Semantics-driven language design: Statically type-safe virtual types in object-oriented languages. Electronic Notes in Theoretical Computer Science 20, 50–75 (1999)
Clifton, C., Leavens, G.T., Chambers, C., Millstein, T.D.: Multijava: Modular open classes and symmetric multiple dispatch for java. In: Proceedings of the 15th International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 130–145 (2000)
Engels, G., Heckel, R., Cherchago, A.: Flexible interconnection of graph transformation modules. In: Kreowski, H.-J., Montanari, U., Orejas, F., Rozenberg, G., Taentzer, G. (eds.) Formal Methods in Software and Systems Modeling. LNCS, vol. 3393, pp. 38–63. Springer, Heidelberg (2005)
Odersky, M., et al.: An overview of the scala programming language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland (2004)
Fowler, M.: Refactoring – Improving the Design of Existing Code, 1st edn. Addison-Wesley, Reading (1999)
Gibbons, J., Jeuring, J. (eds.): Generic Programming, IFIP TC2/WG2.1 Working Conference on Generic Programming, Dagstuhl, Germany, July 11-12. IFIP Conference Proceedings, vol. 243. Kluwer Academic Publishers, Dordrecht (2003), http://www.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/wcgp-preface.pdf
Hannemann, J., Kiczales, G.: Design pattern implementation in java and aspectj. SIGPLAN Not. 37(11), 161–173 (2002)
Heckel, R., Engels, G., Ehrig, H., Taentzer, G.: Classification and comparison of module concepts for graph transformation systems. In: Handbook of graph grammars and computing by graph transformation. Applications, languages, and tools, vol. 2, pp. 669–689. World Scientific, Singapore (1999)
Hoffman, B., Pérez, J., Mens, T.: A case study for program refactoring. In: GraBaTs (September 2008)
Janssens, D., Demeyer, S., Mens, T.: Case study: Simulation of a lan. Electronic Notes in Theoretical Computer Science 72(4) (2003)
Kermeta, http://www.kermeta.org/
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: Proceedings of the 27th international conference on Software engineering (ICSE 2005), pp. 49–58. ACM, New York (2005)
Kienzle, J., Abed, W.A., Jacques, K.: Aspect-oriented multi-view modeling. In: AOSD 2009: Proceedings of the 8th ACM international conference on Aspect-oriented software development, pp. 87–98. ACM, New York (2009)
Lahire, P., Morin, B., Vanwormhoudt, G., Gaignard, A., Barais, O., Jézéquel, J.-M.: Introducing variability into aspect-oriented modeling approaches. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MODELS 2007. LNCS, vol. 4735, pp. 498–513. Springer, Heidelberg (2007)
Lämmel, R.: Towards Generic Refactoring. In: Proceedings of Third ACM SIGPLAN Workshop on Rule-Based Programming RULE 2002, Pittsburgh, USA, October 5, 14 pages. ACM Press, New York (2002)
Mens, T., Van Gorp, P.: A taxonomy of model transformation. Electronic Notes in Theoretical Computer Science 152, 125–142 (2006)
Mili, H., Mili, F., Mili, A.: Reusing software: Issues and research directions. IEEE Transactions of Software Engineering 21(6), 528–562 (1995)
Münch, M.: Generic Modelling with Graph Rewriting Systems. PhD thesis, RWTH Aachen, Berichte aus der Informatik (2003)
Muller, P.-A., Fleurey, F., Jézéquel, J.-M.: Weaving executability into object-oriented meta-languages. In: Briand, L.C., Williams, C. (eds.) MoDELS 2005. LNCS, vol. 3713, pp. 264–278. Springer, Heidelberg (2005)
Oliveira, B.C.D.S., Gibbons, J.: Scala for generic programmers. In: Hinze, R., Syme, D. (eds.) WGP 2008: Proceedings of the ACM SIGPLAN workshop on Generic programming, pp. 25–36. ACM, New York (2008)
OMG. Mof 2.0 core specification. Technical Report formal/06-01-01, OMG, April 2006. OMG Available Specification
OMG. The Object Constraint Language Specification 2.0, OMG Document: ad/03-01-07 (2007)
OMG. The uml 2.1.2 infrastructure specification. Technical Report formal/2007-11-04, OMG, April 2007. OMG Available Specification
Steel, J.: Typage de modèles. PhD thesis, Université de Rennes (April 1, 2007)
Steel, J., Jézéquel, J.-M.: On model typing. Journal of Software and Systems Modeling (SoSyM) 6(4), 401–414 (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Moha, N., Mahé, V., Barais, O., Jézéquel, JM. (2009). Generic Model Refactorings. In: Schürr, A., Selic, B. (eds) Model Driven Engineering Languages and Systems. MODELS 2009. Lecture Notes in Computer Science, vol 5795. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04425-0_50
Download citation
DOI: https://doi.org/10.1007/978-3-642-04425-0_50
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-04424-3
Online ISBN: 978-3-642-04425-0
eBook Packages: Computer ScienceComputer Science (R0)