Using internal domain-specific languages to inherit tool support and modularity for model transformations

  • Georg Hinkel
  • Thomas Goldschmidt
  • Erik Burger
  • Ralf Reussner
Theme Section Paper


Model-driven engineering (MDE) has proved to be a useful approach to cope with today’s ever-growing complexity in the development of software systems; nevertheless, it is not widely applied in industry. As suggested by multiple studies, tool support is a major factor for this lack of adoption. In particular, the development of model transformations lacks good tool support. Additionally, modularization techniques are inevitable for the development of larger model transformations to keep them maintainable. Existing tools for MDE, in particular model transformation approaches, are often developed by small teams and cannot keep up with advanced tool support for mainstream general-purpose programming languages, such as IntelliJ or Visual Studio. Internal DSLs are a promising solution to these problems. In this paper, we investigate the impact of design decisions of an internal DSL to the reuse of tool support and modularization concepts from the host language. We validate our findings in terms of understandability, applicability, tool support, and extensibility using three case studies from academia, a model-driven engineering platform, and the industrial automation domain where we apply an implementation of an internal model transformation language on the .NET platform. The results confirm the value of inherited modularity and tool support while conciseness and understandability are still competitive.


Model-driven engineering Model transformation Domain-specific language Tool support Extensibility 


  1. 1.
    Barringer, H., Havelund, K.: TraceContract: A Scala DSL for Trace Analysis. Springer, Berlin (2011)Google Scholar
  2. 2.
    Belaunde, M.: Transformation composition in qvt. In: Proceedings of the First European Workshop on Composition of Model Transformations (CMT 2006), Bilbao, Spain, pp. 39–46 (2006)Google Scholar
  3. 3.
    Bruch, M., Monperrus, M., Mezini, M.: Learning from examples to improve code completion systems. In: Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering, pp. 213–222. ACM (2009)Google Scholar
  4. 4.
    Cuadrado, J.S., Guerra, E., De Lara, J.: Generic model transformations: write once, reuse everywhere. In: International Conference on Theory and Practice of Model Transformations, pp. 62–77. Springer, Berlin (2011)Google Scholar
  5. 5.
    Cuadrado, J.S., Guerra, E., de Lara, J.: A component model for model transformations. IEEE Trans. Softw. Eng. 40(11), 1042–1060 (2014). doi:10.1109/TSE.2014.2339852 CrossRefGoogle Scholar
  6. 6.
    Cuadrado, J.S., Molina, J.G., Tortosa, M.M.: Rubytl: a practical, extensible transformation language. In: Rensink, A., Warmer, J. (eds.) Model Driven Architecture: Foundations and Applications, pp. 158–172. Springer, Berlin (2006)Google Scholar
  7. 7.
    Czarnecki, K., Helsen, S.: Feature-based survey of model transformation approaches. IBM Syst. J. 45(3), 621–645 (2006)CrossRefGoogle Scholar
  8. 8.
    Efftinge, S., Eysholdt, M., Köhnlein, J., Zarnekow, S., von Massow, R., Hasselbring, W., Hanus, M.: Xbase: implementing domain-specific languages for java. SIGPLAN Not. 48(3), 112–121 (2012). doi:10.1145/2480361.2371419 Google Scholar
  9. 9.
    Ehrig, H., Ehrig, K., De Lara, J., Taentzer, G., Varró, D., Varró-Gyapay, S.: Termination criteria for model transformation. In: International Conference on Fundamental Approaches to Software Engineering, pp. 49–63. Springer, Berlin (2005)Google Scholar
  10. 10.
    Fowler, M.: Domain-Specific Languages. Addison-Wesley Professional, Reading (2010)Google Scholar
  11. 11.
    Geiß, R., Kroll, M.: a fast, expressive, and general purpose graph rewrite tool. In: Schürr, A., Nagl, M., Zündorf, A. (eds.) Applications of Graph Transformations with Industrial Relevance, pp. 568–569. Springer, Berlin (2008)Google Scholar
  12. 12.
    Gelhausen, T., Derre, B., Geiß, R.: Customizing for Model Transformation. In: Proceedings of the Third International Workshop on Graph and Model Transformations, pp. 17–24. ACM, London (2008)Google Scholar
  13. 13.
    George, L., Wider, A., Scheidgen, M.: Type-safe model transformation languages as internal dsls in scala. In: Hu, Z., Lara, De.J. (eds.) Theory and Practice of Model Transformations, pp. 160–175. Springer, Berlin (2012)Google Scholar
  14. 14.
    Gorp, P.V., Rose, L.: The petri-nets to statecharts transformation case. In: Sixth Transformation Tool Contest (TTC 2013), EPTCS (2013)Google Scholar
  15. 15.
    Heidenreich, F., Johannes, J., Seifert, M., Wende, C.: JaMoPP: the Java model parser and printer. Technical Report TUD-FI09-10, Technische Universität Dresden, Fakultät Informatik (2009).
  16. 16.
    Heidenreich, F., Kopcsek, J., Aßmann, U.: Safe composition of transformations. J. Object Technol. 10, 1–20 (2011)CrossRefGoogle Scholar
  17. 17.
    Hein, C., Ritter, T., Wagner, M.: Model-driven tool integration with modelbus. In: Workshop Future Trends of Model-Driven Development (2009)Google Scholar
  18. 18.
    Hidaka, S., Tisi, M., Cabot, J., Hu, Z.: Feature-based classification of bidirectional transformation approaches. Softw. Syst. Model. (2015). doi:10.1007/s10270-014-0450-0 Google Scholar
  19. 19.
    Hinkel, G.: An approach to maintainable model transformations using internal DSLs. Master thesis, Karlsruhe Institute of Technology (2013)Google Scholar
  20. 20.
    Hinkel, G.: Change propagation in an internal model transformation language. In: Kolovos, D., Wimmer, M. (eds.) Theory and Practice of Model Transformations, pp. 3–17. Springer, Berlin (2015)Google Scholar
  21. 21.
    Hinkel, G.: NMF: A Modeling Framework for the .NET Platform. Tech. rep., Karlsruhe (2016).
  22. 22.
    Hinkel, G., Goldschmidt, T., Happe, L.: Tool support for model transformations: on solutions using internal languages. In: Modellierung 2016, Karlsruhe, Germany, 2–4 March 2016 (2016)Google Scholar
  23. 23.
    Hinkel, G., Groenda, H., Vannucci, L., Denninger, O., Cauli, N., Ulbrich, S.: A domain-specific language (DSL) for integrating neuronal networks in robot control. In: 2015 Joint MORSE/VAO Workshop on Model-Driven Robot Software Engineering and View-based Software-Engineering (2015)Google Scholar
  24. 24.
    Hinkel, G., Happe, L.: Using component frameworks for model transformations by an internal DSL. In: Proceedings of the 1st International Workshop on Model-Driven Engineering for Component-Based Software Systems Co-Located with ACM/IEEE 17th International Conference on Model Driven Engineering Languages & Systems (MoDELS 2014), CEUR Workshop Proceedings, vol. 1281, pp. 6–15. (2014)Google Scholar
  25. 25.
    Horn, T.: Model querying with funnyqt. In: Duddy, K., Kappel, G. (eds.) Theory and Practice of Model Transformations, pp. 56–57. Springer, Berlin (2013)Google Scholar
  26. 26.
    Horn, T.: The TTC 2013 flowgraphs case. In: Sixth Transformation Tool Contest (TTC 2013), EPTCS (2013)Google Scholar
  27. 27.
    Horv, A., et al.: Dynamic backward slicing of model transformations. In: 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation, pp. 1–10. IEEE (2012)Google Scholar
  28. 28.
    Hülsbusch, M., König, B., Rensink, A., Semenyak, M., Soltenborn, C., Wehrheim, H.: Showing full semantics preservation in model transformation-a comparison of techniques. In: International Conference on Integrated Formal Methods, pp. 183–198. Springer, Berlin (2010)Google Scholar
  29. 29.
    Jouault, F., Kurtev, I.: Transforming models with atl. In: Satellite Events at the MoDELS 2005 Conference, pp. 128–138. Springer, Berlin (2006)Google Scholar
  30. 30.
    Jung, R., Heinrich, R., Hasselbring, W.: GECO: a generator composition approach for aspect-oriented DSLs. In: Van Gorp, P., Engels, G. (eds.) Theory and Practice of Model Transformations: 9th International Conference, ICMT 2016, Held as Part of STAF 2016, Lecture Notes in Computer Science, vol. 9765, pp. 141–156. Springer, Cham (2016). doi:10.1007/978-3-319-42064-6_10
  31. 31.
    Kolovos, D.S., Paige, R.F., Polack, F.A.: The epsilon transformation language. In: Vallecillo, A., Gray J., Pierantonio, A. (eds.) Theory and Practice of Model Transformations, pp. 46–60. Springer, Berlin (2008)Google Scholar
  32. 32.
    Křikava, F., Collet, P., France, R.B.: Sigma: Scala internal domain-specific languages for model manipulations. In: Dingel, J., Schulte, W., Ramos, I., Abrahão, S., Insfran, E. (eds.) Model-Driven Engineering Languages and Systems, pp. 569–585. Springer, Berlin (2014)Google Scholar
  33. 33.
    Kusel, A., Schönböck, J., Wimmer, M., Kappel, G., Retschitzegger, W., Schwinger, W.: Reuse in model-to-model transformation languages: are we there yet? Softw. Syst. Model. 14, 1–36 (2013)Google Scholar
  34. 34.
    de Lara, J., Guerra, E.: From types to type requirements: genericity for model-driven engineering. Softw. Syst. Model. 12(3), 453–474 (2013)CrossRefGoogle Scholar
  35. 35.
    Mahnke, W., Leitner, S.H., Damm, M.: OPC Unified Architecture. Springer, Berlin (2009)CrossRefGoogle Scholar
  36. 36.
    Meyerovich, L.A., Rabkin, A.S.: Empirical analysis of programming language adoption. In: Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages and Applications, pp. 1–18. ACM (2013)Google Scholar
  37. 37.
    Mohagheghi, P., Fernandez, M.A., Martell, J.A., Fritzsche, M., Gilani, W.: MDE adoption in industry: challenges and success criteria. In: Chaudron, M.R.V. (ed.) Models in Software Engineering, pp. 54–59. Springer, Berlin (2009)Google Scholar
  38. 38.
    Mohagheghi, P., Gilani, W., Stefanescu, A., Fernandez, M.A.: An empirical study of the state of the practice and acceptance of model-driven engineering in four industrial cases. Empir. Softw. Eng. 18(1), 89–116 (2013)CrossRefGoogle Scholar
  39. 39.
    Murphy, G.C., Kersten, M., Findlater, L.: How are Java software developers using the Elipse IDE? IEEE Softw. 23(4), 76–83 (2006)CrossRefGoogle Scholar
  40. 40.
    Nickel, U., Niere, J., Zündorf, A.: The fujaba environment. In: Proceedings of the 22nd International Conference on Software Engineering, pp. 742–745. ACM, London (2000)Google Scholar
  41. 41.
    Object Management Group: Meta Object Facility (MOF) 2.0 Query/View/ Transformation Specification. (2011)
  42. 42.
    Olsen, G.K., Aagedal, J., Oldevik, J.: Aspects of reusable model transformations. In: Proceedings of the First European Workshop on Composition of Model Transformations (CMT 2006), Bilbao, Spain, pp. 21–26 (2006)Google Scholar
  43. 43.
    Rentschler, A.: Model transformation languages with modular information hiding. Ph.D. thesis, Karlsruhe Institute of Technology, Karlsruhe, Germany (2015). doi:10.5445/KSP/1000045910.
  44. 44.
    Rentschler, A., Noorshams, Q., Happe, L., Reussner, R.: Interactive visual analytics for efficient maintenance of model transformations. In: Duddy, K., Kappel, G. (eds) Theory and Practice of Model Transformations, pp. 141–157. Springer, Berlin (2013)Google Scholar
  45. 45.
    Rentschler, A., Werle, D., Noorshams, Q., Happe, L., Reussner, R.: Designing information hiding modularity for model transformation languages. In: Proceedings of the of the 13th International Conference on Modularity, pp. 217–228. ACM, London (2014)Google Scholar
  46. 46.
    Rivera, J.E., Ruiz-González, D., López-Romero, F., Bautista, J.M.: Wires*: a tool for orchestrating model transformations. In: A. Vallecillo, G. Sagardui (eds.) XIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2009), San Sebastián, Spain, September 8–11, 2009, pp. 158–161 (2009)Google Scholar
  47. 47.
    Robbes, R., Lanza, M.: How program history can improve code completion. In: 23rd IEEE/ACM International Conference on Automated Software Engineering, 2008. ASE 2008, pp. 317–326. IEEE (2008)Google Scholar
  48. 48.
    Schürr, A.: Specification of graph translators with triple graph grammars. In: Mayr, E.W., Schmidt, G., Tinhofer, G. (eds.) Graph-Theoretic Concepts in Computer Science, pp. 151–163. Springer, Berlin (1994)Google Scholar
  49. 49.
    Sendall, S., Kozaczynski, W.: Model transformation: the heart and soul of model-driven software development. IEEE Softw. 20(5), 42–45 (2003)CrossRefGoogle Scholar
  50. 50.
    Staron, M.: Adopting model driven software development in industry—a case study at two companies. In: Nierstrasz, O., Whittle, J., Harel, D., Reggio, G. (eds.) Model Driven Engineering Languages and Systems, pp. 57–72. Springer, Berlin (2006)Google Scholar
  51. 51.
    Stevens, P.: A landscape of bidirectional model transformations. In: Lämmel, R., Visser, J., Saraiva, J.A. (eds.) Generative and Transformational Techniques in Software Engineering II, Lecture Notes in Computer Science, vol. 5235, pp. 408–424. Springer, Berlin (2008). doi:10.1007/978-3-540-88643-3_10
  52. 52.
    Ujhelyi, Z., Bergmann, G., Hegedüs, Á., Horváth, Á., Izsó, B., Ráth, I., Szatmári, Z., Varró, D.: EMF-IncQuery: an integrated development environment for live model queries. Sci. Comput. Program. 98, 80–99 (2015)CrossRefGoogle Scholar
  53. 53.
    Vanhooff, B.: Loosely Coupled Transformation Chains. How to Enable Transformation Reuse with Traceability Information. Ph.D. thesis, Informatics Section, Department of Computer Science, Faculty of Engineering Science (2010). Berbers, Yolande (supervisor)
  54. 54.
    Varró, D., Pataricza, A.: Generic and meta-transformations for model transformation engineering. «UML» 2004–The Unified Modeling Language. Modeling Languages and Applications, pp. 290–304. Springer, Berlin (2004)Google Scholar
  55. 55.
    Wagelaar, D., Iovino, L., Di Ruscio, D., Pierantonio, A.: Translational semantics of a co-evolution specific language with the emf transformation virtual machine. In: International Conference on Theory and Practice of Model Transformations, pp. 192–207. Springer, Berlin (2012)Google Scholar
  56. 56.
    Wagelaar, D., Tisi, M., Cabot, J., Jouault, F.: Towards a general composition semantics for rule-based model transformation. In: Whittle, J., Clark, T., Kühne, T. (eds.) Model Driven Engineering Languages and Systems, pp. 623–637. Springer, Berlin (2011)Google Scholar
  57. 57.
    Wagelaar, D., Van Der Straeten, R., Deridder, D.: Module superimposition: a composition technique for rule-based model transformation languages. Softw. Syst. Model. 9(3), 285–309 (2010)CrossRefGoogle Scholar
  58. 58.
    Whittle, J., Hutchinson, J., Rouncefield, M., Burden, H., Heldal, R.: Industrial adoption of model-driven engineering: are the tools really the problem? In: Moreira, A., Schätz, B., Gray, J., Vallecillo, A., Clarke, P. (eds.) Model-Driven Engineering Languages and Systems, Lecture Notes in Computer Science, vol. 8107, pp. 1–17. Springer, Berlin (2013). doi:10.1007/978-3-642-41533-3_1
  59. 59.
    Trancón y Widemann, B., Lepper, M.: Paisley: pattern matching à la carte. In: Hu, Z., Lara, De.J. (eds.) Theory and Practice of Model Transformations, pp. 240–247. Springer, Berlin (2012)Google Scholar
  60. 60.
    Wider, A.: Implementing a bidirectional model transformation language as an internal dsl in scala. In: EDBT/ICDT Workshops, pp. 63–70 (2014)Google Scholar
  61. 61.
    Wijs, A., Engelen, L.: Efficient property preservation checking of model refinements. In: International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pp. 565–579. Springer, Berlin (2013)Google Scholar
  62. 62.
    Wimmer, M., Kappel, G., Kusel, A., Retschitzegger, W., Schönböck, J., Schwinger, W.: Fact or fiction–reuse in rule-based model-to-model transformation languages. In: Hu, Z., Lara, De.J. (eds.) Theory and Practice of Model Transformations, pp. 280–295. Springer, Berlin (2012)Google Scholar
  63. 63.
    Wimmer, M., Kappel, G., Kusel, A., Retschitzegger, W., Schönböck, J., Schwinger, W., Kolovos, D.S., Paige, R.F., Lauder, M., Schürr, A., et al.: Surveying rule inheritance in model-to-model transformation languages. J. Object Technol. 11(2), 3–1 (2012)Google Scholar
  64. 64.
    Zündorf, A., George, T., Lindel, S., Norbisrath, U.: Story driven modeling libary (sdmlib): an inline dsl for modeling and model transformations, the petrinet-statechart case. Sixth Transformation Tool Contest (TTC 2013), ser. EPTCS (2013)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2017

Authors and Affiliations

  • Georg Hinkel
    • 1
  • Thomas Goldschmidt
    • 2
  • Erik Burger
    • 3
  • Ralf Reussner
    • 3
  1. 1.FZI Forschungszentrum InformatikKarlsruheGermany
  2. 2.ABB Corporate ResearchLadenburgGermany
  3. 3.Karlsruhe Institute of TechnologyKarlsruheGermany

Personalised recommendations