Role-Based Generic Model Refactoring

  • Jan Reimann
  • Mirko Seifert
  • Uwe Aßmann
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6395)


Refactorings can be used to improve the structure of software artifacts while preserving the semantics of the encapsulated information. Various types of refactorings have been proposed and implemented for programming languages such as Java or C#. With the advent of Model-Driven Software Development (MDSD), the need for restructuring models similar to programs has emerged. Previous work in this field [1,2] indicates that refactorings can be specified generically to foster their reuse. However, existing approaches can handle only certain types of modelling languages and reuse refactorings only once per language.

In this paper a novel approach based on role models to specify generic refactorings is presented. We discuss how this resolves the limitations of previous works, as well as how specific refactorings can be defined as extensions to generic ones. The approach was implemented based on the Eclipse Modeling Framework (EMF) [3] and evaluated using multiple modelling languages and refactorings.


Role Model Modelling Language Object Management Group Role Mapping Eclipse Modeling Framework 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Lämmel, R.: Towards Generic Refactoring. In: Proc. of Third ACM SIGPLAN Workshop on Rule-Based Programming RULE 2002, Pittsburgh, USA. ACM Press, New York (October 2002)Google Scholar
  2. 2.
    Moha, N., Mahé, V., Barais, O., Jézéquel, J.-M.: Generic Model Refactorings. In: Schürr, A., Selic, B. (eds.) MODELS 2009. LNCS, vol. 5795, pp. 628–643. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  3. 3.
    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: Eclipse Modeling Framework, 2nd edn. Pearson Education, London (2008)Google Scholar
  4. 4.
    Lehman, M.M.: On understanding laws, evolution, and conservation in the large-program life cycle. Journal of Systems and Software 1, 213–221 (1980)CrossRefGoogle Scholar
  5. 5.
    Opdyke, W.F.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)Google Scholar
  6. 6.
    Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman, Amsterdam (1999)zbMATHGoogle Scholar
  7. 7.
    Kurtev, I., Bézivin, J., Aksit, M.: Technological Spaces: An Initial Appraisal. In: International Symposium on Distributed Objects and Applications, DOA Federated Conferences, Industrial track, Irvine (2002)Google Scholar
  8. 8.
    Mens, T., Taentzer, G., Müller, D.: Challenges in Model Refactoring. In: Proc. 1st Workshop on Refactoring Tools. University of Berlin (2007)Google Scholar
  9. 9.
    The Object Management Group: OMG Unified Modeling Language (OMG UML), Superstructure, Version 2.2. Technical report (February 2009)Google Scholar
  10. 10.
    The Object Management Group: Meta Object Facility (MOF) Core Specification. Technical report (January 2006)Google Scholar
  11. 11.
    Zhang, J., Lin, Y., Gray, J.: Generic and Domain-Specific Model Refactoring using a Model Transformation Engine. In: Beydeda, S., Book, M., Gruhn, V. (eds.) Research and Practice in Softw. Eng., vol. II, pp. 199–218. Springer, Heidelberg (2005)Google Scholar
  12. 12.
    Taentzer, G., Müller, D., Mens, T.: Specifying Domain-Specific Refactorings for AndroMDA Based on Graph Transformation. In: Schürr, A., Nagl, M., Zündorf, A. (eds.) AGTIVE 2007. LNCS, vol. 5088, pp. 104–119. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  13. 13.
    Biermann, E., Ehrig, K., Köhler, C., Kuhns, G., Taentzer, G., Weiss, E.: Graphical Definition of In-Place Transformations in the Eclipse Modeling Framework. In: Nierstrasz, O., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 425–439. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  14. 14.
    Brosch, P., Seidl, M., Wieland, K., Wimmer, M., Langer, P.: The Operation Recorder: Specifying Model Refactorings By-Example. In: Arora, S., Leavens, G.T. (eds.) OOPSLA Companion, pp. 791–792. ACM, New York (2009)Google Scholar
  15. 15.
    Brosch, P., Langer, P., Seidl, M., Wieland, K., Wimmer, M., Kappel, G., Retschitzegger, W., Schwinger, W.: An Example Is Worth a Thousand Words: Composite Operation Modeling By-Example. In: Schürr, A., Selic, B. (eds.) MODELS 2009. LNCS, vol. 5795, pp. 271–285. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  16. 16.
    Riehle, D., Gross, T.: Role Model Based Framework Design and Integration. In: Proc. of OOPSLA 1998, pp. 117–133. ACM, New York (1998)Google Scholar
  17. 17.
    The Object Management Group: Meta Object Facility (MOF) 2.0 Query/View/Transformation. Specification Version 1.0 (April 2008)Google Scholar
  18. 18.
    Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C.: Derivation and Refinement of Textual Syntax for Models. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 114–129. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  19. 19.
    Gronback, R.C.: Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. Pearson Education, London (April 2009)Google Scholar
  20. 20.
    W3C: OWL 2 Web Ontology Language: Structural Specification and Functional-Style Syntax. Technical Report (October 2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Jan Reimann
    • 1
  • Mirko Seifert
    • 1
  • Uwe Aßmann
    • 1
  1. 1.Institut für Software- und MultimediatechnikTechnische Universität DresdenDresdenGermany

Personalised recommendations