Skip to main content
Log in

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

  • Theme Section Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

Notes

  1. The choice of a textual languages such as Java or C\(^\sharp \) as host languages for a model transformation language inevitably leads to a textual model transformation language. Even from the early days on, there has always been a demand for graphical model transformation languages [49]. However, as the success of textual model transformation languages [29, 31], but also the experience with graphical languages [64] imply, textual model transformations may be better suited for certain kinds of problems.

  2. http://docs.oracle.com/javase/specs/jvms/se7/html/index.html.

  3. http://msdn.microsoft.com/en-us/library/8bs2ecf4.

  4. http://www.osgi.org.

  5. http://msdn.microsoft.com/en-us/library/hk5f40ct.

  6. Many external transformation languages also allow the integration of code written in other languages such as Java and therefore may include parts of an existing programming model.

  7. We see it as one of the base functionalities of a model transformation language that the trace is built up implicitly. The only question is whether the transformation developer sees the trace or not.

  8. For example, mappings in QVT operational are divided into init, population, and end sections.

  9. The usage of the IDE when writing model transformations may differ from the usage in regular programming tasks. Thus, the share of code completion commands could be lower. Nevertheless, we think that code completion in particular is also important for model transformation developers.

  10. Technologies such as Xtext may help by making it easier to implement code completion for an external DSL.

  11. https://eclipse.org/Xtext/.

  12. Technologies such as the modular compiler Roslyn (https://roslyn.codeplex.com) give internal languages the chance to enrich the host language compiler. In the contrary direction, technologies such as Xbase [8] make it possible to use general-purpose language compilers in external DSLs.

  13. The concept of transformation rule templates has originally been introduced by Varró [54]. However, since then, it has not been adopted very often.

  14. http://github.com/NMFCode/NMF.

  15. https://www.opcfoundation.org/UA/.

  16. The reason to compare the solution with a general-purpose code solution instead of for example an external model transformation solution is that this would have been the most likely alternative in that particular case.

  17. https://www.opcfoundation.org/.

  18. https://www.opcfoundation.org/UA/.

  19. An overview of certified SDKs from different vendors is available at https://opcfoundation.org/products.

  20. http://www.eclipse.org/xtend/.

  21. http://www.eclipse.org/xtend/.

  22. The approaches described here have been compiled in the related work section of [43] and have been adapted from there.

  23. https://eclipse.org/Xtext/documentation/306_mwe2.html, retrieved 1 August 2016.

References

  1. Barringer, H., Havelund, K.: TraceContract: A Scala DSL for Trace Analysis. Springer, Berlin (2011)

    Google Scholar 

  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)

  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)

  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)

  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

    Article  Google Scholar 

  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)

  7. Czarnecki, K., Helsen, S.: Feature-based survey of model transformation approaches. IBM Syst. J. 45(3), 621–645 (2006)

    Article  Google Scholar 

  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. 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)

  10. Fowler, M.: Domain-Specific Languages. Addison-Wesley Professional, Reading (2010)

    Google Scholar 

  11. Geiß, R., Kroll, M.: Grgen.net: 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)

  12. Gelhausen, T., Derre, B., Geiß, R.: Customizing GrGen.net for Model Transformation. In: Proceedings of the Third International Workshop on Graph and Model Transformations, pp. 17–24. ACM, London (2008)

  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)

  14. Gorp, P.V., Rose, L.: The petri-nets to statecharts transformation case. In: Sixth Transformation Tool Contest (TTC 2013), EPTCS (2013)

  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). ftp://ftp.inf.tu-dresden.de/pub/berichte/tud09-10.pdf

  16. Heidenreich, F., Kopcsek, J., Aßmann, U.: Safe composition of transformations. J. Object Technol. 10, 1–20 (2011)

    Article  Google Scholar 

  17. Hein, C., Ritter, T., Wagner, M.: Model-driven tool integration with modelbus. In: Workshop Future Trends of Model-Driven Development (2009)

  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. Hinkel, G.: An approach to maintainable model transformations using internal DSLs. Master thesis, Karlsruhe Institute of Technology (2013)

  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)

  21. Hinkel, G.: NMF: A Modeling Framework for the .NET Platform. Tech. rep., Karlsruhe (2016). http://nbn-resolving.org/urn:nbn:de:swb:90-537082

  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)

  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)

  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. CEUR-WS.org (2014)

  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)

  26. Horn, T.: The TTC 2013 flowgraphs case. In: Sixth Transformation Tool Contest (TTC 2013), EPTCS (2013)

  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)

  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)

  29. Jouault, F., Kurtev, I.: Transforming models with atl. In: Satellite Events at the MoDELS 2005 Conference, pp. 128–138. Springer, Berlin (2006)

  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. 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)

  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)

  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. de Lara, J., Guerra, E.: From types to type requirements: genericity for model-driven engineering. Softw. Syst. Model. 12(3), 453–474 (2013)

    Article  Google Scholar 

  35. Mahnke, W., Leitner, S.H., Damm, M.: OPC Unified Architecture. Springer, Berlin (2009)

    Book  Google Scholar 

  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)

  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)

  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)

    Article  Google Scholar 

  39. Murphy, G.C., Kersten, M., Findlater, L.: How are Java software developers using the Elipse IDE? IEEE Softw. 23(4), 76–83 (2006)

    Article  Google Scholar 

  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)

  41. Object Management Group: Meta Object Facility (MOF) 2.0 Query/View/ Transformation Specification. http://www.omg.org/spec/QVT/1.1/PDF/ (2011)

  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)

  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. http://www.ksp.kit.edu/9783731503460

  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)

  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)

  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)

  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)

  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)

  49. Sendall, S., Kozaczynski, W.: Model transformation: the heart and soul of model-driven software development. IEEE Softw. 20(5), 42–45 (2003)

    Article  Google Scholar 

  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)

  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. 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)

    Article  Google Scholar 

  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). https://lirias.kuleuven.be/handle/123456789/262244. Berbers, Yolande (supervisor)

  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)

  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)

  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)

  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)

    Article  Google Scholar 

  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. 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)

  60. Wider, A.: Implementing a bidirectional model transformation language as an internal dsl in scala. In: EDBT/ICDT Workshops, pp. 63–70 (2014)

  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)

  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)

  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. 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)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Georg Hinkel.

Additional information

Communicated by Dr. F. Ciccozzi, J. Carlson, P. Pelliccione and M. Tivoli.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Hinkel, G., Goldschmidt, T., Burger, E. et al. Using internal domain-specific languages to inherit tool support and modularity for model transformations. Softw Syst Model 18, 129–155 (2019). https://doi.org/10.1007/s10270-017-0578-9

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-017-0578-9

Keywords

Navigation