[1] Georg Hinkel, Thomas Goldschmidt, Erik Burger, and Ralf Reussner. Using Internal Domain-Specific Languages to inherit Tool Support and Modularity for Model Transformations. Software & Systems Modeling, 18(1):129–155, 2019, Springer Berlin / Heidelberg. [ bib | DOI | http | .pdf ]
[2] Georg Hinkel and Erik Burger. Change Propagation and Bidirectionality in Internal Transformation DSLs. Software & Systems Modeling, 18(1):249–278, 2019, Springer Berlin / Heidelberg. [ bib | DOI | http | .pdf ]
[3] Georg Hinkel. NMF: A multi-platform Modeling Framework. In Theory and Practice of Model Transformations: 11th International Conference, ICMT 2018, Arend Rensink and Jesús Sánchez Cuadrado, editors, June 2018, pages 184–194. Springer International Publishing, Cham. June 2018. [ bib | DOI | .pdf | Abstract ]
For its promises in terms of increased productivity, Model-driven engineering (MDE) is getting applied increasingly often in both industry and academia. However, most tools currently available are based on the Eclipse Modeling Framework (EMF) and hence based on the Java platform whereas tool support for other platforms is limited. This leads to a language and tool adoption problem for developers of other platforms such as .NET. As a result, few projects on the .NET platform adopt MDE. In this paper, we present the .NET Modeling Framework (NMF), a tool set for model repositories, model-based incrementalization, model transformation, model synchronization and code generation that is now available for a multitude of different operating systems, including Windows, Linux, Android, iOS and Mac. The framework makes intensive use of the C# language as host language for model transformation and synchronization languages, whereas the model repository serialization is compatible with EMF. This solves the language adoption problem for C# programmers and creates a bridge to the EMF platform.
[4] Georg Hinkel, Kiana Busch, and Robert Heinrich. Refinements and Structural Decompositions in Generated Code. In Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development, Funchal, Portugal, January 22–24, 2018. [ bib | .pdf | Abstract ]
Todays systems are often represented by abstract domain models to cope with an increased complexity. To both ensure suitable analyses and validity checks, it is desirable to model the system in multiple levels of abstraction simultaneously. Doing so, it is often desirable to model that one association is a refinement of another to avoid duplication of concepts. Existing approaches that support refinements request metamodelers to use new modeling paradigms or have less efficient model representations than commonly-used technologies such as EMF with Ecore. In this paper, we propose a non-invasive extension to support refinements and structural decompositions in Ecore-like meta-metamodels, show how these extension can be supported by code generation and show that the fulfillment of refinements can be guaranteed by the underlying type system.
[5] Georg Hinkel. The TTC 2017 Outage System Case for Incremental Model Views. In Proceedings of the 10th Transformation Tool Contest, a part of the Software Technologies: Applications and Foundations (STAF 2017) federation of conferences, Antonio Garcia-Dominguez, Georg Hinkel, and Filip Krikava, editors, Marburg, Germany, July 21, 2017, CEUR Workshop Proceedings. CEUR-WS.org. July 2017. [ bib | .pdf ]
[6] Georg Hinkel. An NMF solution to the Smart Grid Case at the TTC 2017. In Proceedings of the 10th Transformation Tool Contest, a part of the Software Technologies: Applications and Foundations (STAF 2017) federation of conferences, Antonio Garcia-Dominguez, Georg Hinkel, and Filip Krikava, editors, Marburg, Germany, July 21, 2017, CEUR Workshop Proceedings. CEUR-WS.org. July 2017. [ bib | .pdf ]
[7] Georg Hinkel. An NMF solution to the Families to Persons case at the TTC 2017. In Proceedings of the 10th Transformation Tool Contest, a part of the Software Technologies: Applications and Foundations (STAF 2017) federation of conferences, Antonio Garcia-Dominguez, Georg Hinkel, and Filip Krikava, editors, Marburg, Germany, July 21, 2017, CEUR Workshop Proceedings. CEUR-WS.org. July 2017. [ bib | .pdf ]
[8] Georg Hinkel. An NMF solution to the State Elimination Case at the TTC 2017. In Proceedings of the 10th Transformation Tool Contest, a part of the Software Technologies: Applications and Foundations (STAF 2017) federation of conferences, Antonio Garcia-Dominguez, Georg Hinkel, and Filip Krikava, editors, Marburg, Germany, July 21, 2017, CEUR Workshop Proceedings. CEUR-WS.org. July 2017. [ bib | .pdf ]
[9] Georg Hinkel. An NMF solution to the Class Responsibility Assignment Case. In Proceedings of the 9th Transformation Tool Contest, a part of the Software Technologies: Applications and Foundations (STAF 2015) federation of conferences, Antonio Garcia-Dominguez, Filip Krikava, and Louis Rose, editors, Vienna, Austria, July 8, 2016, CEUR Workshop Proceedings. CEUR-WS.org. July 2016. [ bib | .pdf | Abstract ]
This paper presents a solution to the Class Responsibility Assignment (CRA) case at the Transformation Tool Contest (TTC) 2016 using the .NET Modeling Framework (NMF). The goal of this case was to find a class model with high cohesion but low coupling for a given set of attributes and methods with data dependencies and functional dependencies. The degree in which a given class model fulfills these properties is measured through the CRA-Index. We propose a generalpurpose code solution and discuss how this solution can benefit from incrementality. In particular, we show what steps are necessary to create an incremental solution using NMF Expressions and discuss its performance.
[10] Georg Hinkel and Thomas Goldschmidt. Tool Support for Model Transformations: On Solutions using Internal Languages. In Modellierung 2016, Karlsruhe, Germany, March 2–4, 2016. [ bib | slides | .pdf | Abstract ]
Model-driven engineering (MDE) has proven to be a useful approach to cope with todays ever growing complexity in the development of software systems, yet it is not widely applied in industry. As suggested by multiple studies, tool support is a major factor for this lack of adoption. 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 languages such as provided by IntelliJ or Visual Studio. In this paper, we propose an approach to leverage existing tool support for model transformation using internal model transformation languages and investigate design decisions and their consequences for inherited tool support. The findings are used for the design of an internal model transformation language on the .NET platform.
[11] Georg Hinkel. NMF: A Modeling Framework for the .NET Platform. Technical report, Karlsruhe Institute of Technology, Karlsruhe, 2016. [ bib | http | .pdf ]
[12] Georg Hinkel. Deep Modeling through Structural Decomposition. Technical report, Karlsruhe Institute of Technology, Karlsruhe, 2016. [ bib | http | .pdf ]
[13] Georg Hinkel and Lucia Happe. An NMF Solution to the TTC Train Benchmark Case. In Proceedings of the 8th Transformation Tool Contest, a part of the Software Technologies: Applications and Foundations (STAF 2015) federation of conferences, Louis Rose, Tassilo Horn, and Filip Krikava, editors, L'Aquila, Italy, July 24, 2015, volume 1524 of CEUR Workshop Proceedings, pages 142–146. CEUR-WS.org. July 2015. [ bib | .pdf ]
[14] Georg Hinkel. An NMF Solution to the Java Refactoring Case. In Proceedings of the 8th Transformation Tool Contest, a part of the Software Technologies: Applications and Foundations (STAF 2015) federation of conferences, Louis Rose, Tassilo Horn, and Filip Krikava, editors, L'Aquila, Italy, July 24, 2015, volume 1524 of CEUR Workshop Proceedings, pages 95–99. CEUR-WS.org. July 2015. [ bib | .pdf ]
[15] Georg Hinkel. Change Propagation in an Internal Model Transformation Language. In Theory and Practice of Model Transformations: 8th International Conference, ICMT 2015, Held as Part of STAF 2015, L'Aquila, Italy, July 20-21, 2015. Proceedings, Dimitris Kolovos and Manuel Wimmer, editors, 2015, pages 3–17. Springer International Publishing, Cham. 2015. [ bib | DOI | slides | http | .pdf | Abstract ]
Despite good results, Model-Driven Engineering (MDE) has not been widely adopted in industry. According to studies by Staron and Mohaghegi, the lack of tool support is one of the major reasons for this. Although MDE has existed for more than a decade now, tool support is still insufficient. An approach to overcome this limitation for model transformations, which are a key part of MDE, is the usage of internal languages that reuse tool support for existing host languages. On the other hand, these internal languages typically do not provide key features like change propagation or bidirectional transformation. In this paper, we present an approach to use a single internal model transformation language to create unidirectional and bidirectional model transformations with optional change propagation. In total, we currently provide 18 operation modes based on a single specification. At the same time, the language may reuse tool support for C#. We validate the applicability of our language using a synthetic example with a transformation from finite state machines to Petri nets where we achieved speedups of up to 48 compared to classical batch transformations.
[16] Georg Hinkel and Lucia Happe. 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), 2014, volume 1281 of CEUR Workshop Proceedings, pages 6–15. CEUR-WS.org. 2014. [ bib | slides | .pdf | Abstract ]
To increase the development productivity, possibilities for reuse, maintainability and quality of complex model transformations, modularization techniques are indispensable. Component-Based Software Engineering targets the challenge of modularity and is well-established in languages like Java or C# with component models like .NET, EJB or OSGi. There are still many challenging barriers to overcome in current model transformation languages to provide comparable support for component-based development of model transformations. Therefore, this paper provides a pragmatic solution based on NMF Transformations, a model transformation language realized as an internal DSL embedded in C#. An internal DSL can take advantage of the whole expressiveness and tooling build for the well established and known host language. In this work, we use the component model of the .NET platform to represent reusable components of model transformations to support internal and external model transformation composition. The transformation components are hidden behind transformation rule interfaces that can be exchanged dynamically through configuration. Using this approach we illustrate the possibilities to tackle typical issues of integrity and versioning, such as detecting versioning conflicts for model transformations.
[17] Georg Hinkel. An approach to maintainable model transformations using an internal DSL. Master's thesis, Karlsruhe Institute of Technology, October 2013. [ bib | .pdf | Abstract ]
In recent years, model-driven software development (MDSD) has gained popularity among both industry and academia. MDSD aims to generate traditional software artifacts from models. This generation process is realized in multiple steps. Thus, before being transformed to software artifacts, models are transformed into models of other metamodels. Such model transformation is supported by dedicated model transformation languages. In many cases, these are entirely new languages (external domain-specific languages, DSLs) for a more clear and concise representation of abstractions. On the other hand, the tool support is rather poor and the transformation developers hardly know the transformation language. A possible solution for this problem is to extend the programming language typically used by developers (mostly Java or C#) with the required abstractions. This can be achieved with an internal DSL. Thus, concepts of the host language can easily be reused while still creating the necessary abstractions to ease development of model transformations. Furthermore, the tool support for the host language can be reused for the DSL. In this master thesis, NMF Transformations is presented, a framework and internal DSL for C#. It equips developers with the ability to specify model transformations in languages like C# without having to give up abstractions known from model transformation standards. Transformation developers get the full tool support provided for C#. The applicability of NMF Transformations as well as the impact of NMF Transformations to quality attributes of model transformations is evaluated in three case studies. Two of them come from the Transformation Tool Contests 2013 (TTC). With these case studies, NMF Transformations is compared with other approaches to model transformation. A further case study comes from ABB Corporate Research to demonstrate the advantages of NMF Transformations in an industrial scenario where aspects like testability gain special importance.
[18] Georg Hinkel, Thomas Goldschmidt, and Lucia Happe. An NMF solution for the petri nets to state charts case study at the TTC 2013. In Proceedings Sixth Transformation Tool Contest, TTC 2013, Budapest, Hungary, 19-20 June, 2013., 2013, pages 95–100. [ bib | DOI | http | .pdf | Abstract ]
Software systems are getting more and more complex. Model-driven engineering (MDE) offers ways to handle such increased complexity by lifting development to a higher level of abstraction. A key part in MDE are transformations that transform any given model into another. These transformations are used to generate all kinds of software artifacts from models. However, there is little consensus about the transformation tools. Thus, the Transformation Tool Contest (TTC) 2013 aims to compare different transformation engines. This is achieved through three different cases that have to be tackled. One of these cases is the Petri Net to State Chart case. A solution has to transform a Petri Net to a State Chart and has to derive a hierarchical structure within the State Chart. This paper presents the solution for this case using NMF Transformations as transformation engine.
[19] Georg Hinkel, Thomas Goldschmidt, and Lucia Happe. An NMF solution for the flowgraphs case at the TTC 2013. In Proceedings Sixth Transformation Tool Contest, TTC 2013, Budapest, Hungary, 19-20 June, 2013., 2013, pages 37–42. [ bib | DOI | http | .pdf | Abstract ]
Software systems are getting more and more complex. Model-driven engineering (MDE) offers ways to handle such increased complexity by lifting development to a higher level of abstraction. A key part in MDE are transformations that transform any given model into another. These transformations are used to generate all kinds of software artifacts from models. However, there is little consensus about the transformation tools. Thus, the Transformation Tool Contest (TTC) 2013 aims to compare different transformation engines. This is achieved through three different cases that have to be tackled. One of these cases is the Flowgraphs case. A solution has to transform a Java code model into a simplified version and has to derive control and data flow. This paper presents the solution for this case using NMF Transformations as transformation engine.