Skip to main content
Log in

Localized model transformations for building large-scale transformations

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

Abstract

Model-driven engineering (MDE) exploits well-defined, tool-supported modelling languages and operations applied to models created using these languages. Model transformation is a critical part of the use of MDE. It has been argued that transformations must be engineered systematically, particularly when the languages to which they are applied are large and complicated—e.g., UML 2.x and profiles such as MARTE—and when the transformation logic itself is complex. We present an approach to designing large model transformations for large languages, based on the principle of separation of concerns. Specifically, we define a notion of localized transformations that are restricted to apply to a subset of a modelling language; a composition of localized transformations is then used to satisfy particular MDE objectives, such as the design of very large transformations. We illustrate the use of localized transformations in a concrete example applied to large transformations for system-on-chip co-design.

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

Similar content being viewed by others

Notes

  1. This is analogous to components in system design: a component has a precise interface and is used to encapsulate functionality for particular tasks.

  2. Unlike, e.g., in higher-order transformation-based approaches like http://www.eclipse.org/atl/atlTransformations/#KM32ATLCopier.

  3. We adopt the metamodel, model and conformance definitions established by Alanen et al. [1]. From these definitions, the union, the intersection and the difference are defined on both metamodels and models respectively as the union, the intersection or the difference of each set defining the metamodels or the models.

  4. https://gforge.inria.fr/frs/?group_id=768.

  5. The version that is used is available at: https://speedy.supelec.fr/Papyrus/svn/Papyrus/extensions/MARTE/head/org.marte.metamodel/model/. The metamodel provided in the profile standard specification is not directly implemented; it has been slightly modified to produce this version.

  6. Some metamodels from the initial version and of the current one are available online: http://www.lifl.fr/~etien/mmGaspard/.

  7. The ClassifierTypeExtension enables to extend some concepts similarly to the stereotype mechanism. It exists in the MARTE metamodel.

  8. The notion of port instance does not exist in Marte, it has been introduced by the MartePortInstance localized transformation in order to simplify the following treatments. The tiler2task localized transformation requiring the concept of PortInstance has to be executed after the MartePortInstance transformation.

References

  1. Alanen, M., Porres, I.: A metamodeling language supporting subset and union properties. Softw. Syst. Model. 7(1), 103–124 (2008)

    Article  Google Scholar 

  2. Aranega, V., Mottu, J.-M., Etien, A., Dekeyser, J.-L.: Traceability for mutation analysis in model transformation. In: Proceedings of the 2010 International Conference on Models in Software Engineering (2011)

  3. Aranega, V., Mottu, J.-M., Etien, A., Dekeyser, J.-L.: Using trace to situate errors in model transformations. In: Cordeiro, J., Ranchordas, A., Shishkov, B. (eds) Software and Data Technologies, vol. 50 of Communications in Computer and Information Science, pp. 137–149. Springer, Berlin (2011)

  4. Balasubramanian, D., Narayanan, A., Neema, S., Shi, F., Thibodeaux, R., Karsai, G.: A subgraph operator for graph transformation languages. ECEASST, 6 (2007)

  5. Balogh, A., Varró, D.: Advanced model transformation language constructs in the viatra2 framework. In: Proceedings of the 2006 ACM Symposium on Applied Computing, SAC ’06, pp. 1280–1287. ACM, New York (2006)

  6. Cleland-Huang, J., Berenbach, B., Clark, S., Settimi, R., Romanova, E.: Best practices for automated traceability. IEEE Comput. 40(6), 27–35 (2007)

    Article  Google Scholar 

  7. Cordy, J.: Eating our own dog food: DSLs for generative and transformational engineering. In: GPCE (2009)

  8. Cuadrado, J., Guerra, E., de Lara, J.: Generic model transformations: write once, reuse everywhere. In: Cabot, J., Visser, E., (eds.) ICMT, International Conference on Theory and Practice of Model Transformations, volume 6707 of Lecture Notes in Computer Science, pp. 62–77. Springer (2011)

  9. Czarnecki, K., Helsen, S.: Classification of model transformation approaches. In: Proceedings of the 2nd OOPSLA Workshop on Generative Techniques in the Context of the Model Driven Architecture (2003)

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

    Article  Google Scholar 

  11. de Lara, J., Guerra, E.: Reusable graph transformation templates. In: AGTIVE, volume 7233 of Lecture Notes in Computer Science, pp. 35–50. Springer (2012)

  12. Eaddy, M., Aho, A.V., Antoniol, G., Guéhéneuc, Y.-G.: Cerberus: tracing requirements to source code using information retrieval, dynamic analysis, and program analysis. In: ICPC, pp. 53–62 (2008)

  13. Epsilon: http://www.eclipse.org/epsilon/ (2013)

  14. Etien, A., Muller, A., Legrand, T., Blanc, X.: Combining independent model transformations. In: Proceedings of the ACM SAC, Software Engineering Track, pp. 2239–2345 (2010)

  15. Fleurey, F., Baudry, B., Muller, P.-A., Traon, Y.L.: Qualifying input test data for model transformations. Softw. Syst. Model. 8(2), 185–203 (2009)

    Google Scholar 

  16. Fleurey, F., Steel, J., Baudry, B.: Validation in model-driven engineering: testing model transformations. In: Model, Design and Validation, Workshop (Nov 2004)

  17. Gamatié, A., Le Beux, S., Piel, É., Etien, A., Ben Atitallah, R., Marquet, P., Dekeyser, J.: A model driven design framework for massively parallel embedded systems. ACM Transactions in Embedded Computing Systems (TECS). To Appear. Available as the RR-6614 research report entitled “A Model Driven Design Framework for High Performance Embedded Systems” (2011). http://hal.inria.fr/inria-00311115/en/

  18. Guerra, E., de Lara, J., Kolovos, D.S., Paige, R.F., dos Santos, O.M.: transML: a family of languages to model model transformations. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MoDELS 1. Lecture Notes in Computer Science, vol. 6394, pp. 106–120. Springer, Heidelberg (2010)

  19. Hemel, Z., Kats, L.C.L., Visser, E.: Code generation by model transformation. In: Proceedings of the 1st International Conference on Theory and Practice of Model Transformations, ICMT ’08, pp. 183–198. Springer, Berlin (2008)

  20. Mendez, D., Etien, A., Muller, A., Casallas, R.: Towards transformation migration after metamodel evolution. In: Model and Evolution Wokshop, Olso, Norway (Oct 2010)

  21. Mens, T., Czarnecki, K., Gorp, P.V.: A taxonomy of model transformations. In: Language Engineering for Model-Driven Software Development (2005)

  22. Mens, T., Taentzer, G., Runge, O.: Detecting structural refactoring conflicts using critical pair analysis. Electron. Notes Theor. Comput. Sci. 127(3), 113–128 (2005)

    Article  Google Scholar 

  23. Moha, N., Mahé, V., Barais, O., Jézéquel, J.-M.: Generic model refactorings. In: MoDELS, volume 5795 of Lecture Notes in Computer Science, pp. 628–643. Springer (2009)

  24. Oldevik, J.: Transformation composition modelling framework. In: Proceedings of the Distributed Applications and Interoperable Systems Conference, volume 3543 of Lecture Notes in Computer Science, pp. 108–114. Springer (2005)

  25. Olsen, G., Aagedal, J., Oldevik, J.: Aspects of reusable model transformations. In: Proceedings of the ECMDA Composition of Model Transformations Workshop, pp. 21–26 (2006)

  26. OMG: UML Profile for MARTE, Version 1.0 (Nov 2009)

  27. Pilgrim, J., Vanhooff, B., Schulz-Gerlach, I., Berbers, Y.: Constructing and visualizing transformation chains. In: ECMDA-FA ’08: Proceedings of the 4th European Conference on Model Driven Architecture, pp. 17–32. Springer, Berlin (2008)

  28. Rivera, J.E., Ruiz-Gonzalez, D., Lopez-Romero, F., Bautista, J., Vallecillo, A.: Orchestrating ATL model transformations. In: Proceedings of MtATL 2009, pp. 34–46. Nantes, France (2009)

  29. Rose, L.M., Guerra, E., de Lara, J., Etien, A., Kolovos, D.S., Paige, R.F.: Genericity for model management operations. Softw. Syst. Model. 12(1), 201–219 (2013)

    Google Scholar 

  30. Rose, L., Kolovos, D., Paige, R., Polack, F.: Model migration with Epsilon flock. In: Tratt, L., Gogolla, M. (eds) Theory and Practice of Model Transformations, Third International Conference, ICMT 2010, Malaga, Spain, June 28–July 2, 2010. Proceedings, volume 6142 of Lecture Notes in Computer Science, pp. 184–198. Springer (2010)

  31. Sanchez Cuadrado, J., Garcia Molina, J.: Approaches for model transformation reuse: factorization and composition. In: Proceedings of the International Conference on Model Transformation, volume 5063 of LNCS, pp. 168–182. Springer (2008)

  32. Schmidt, D.C.: Guest editor’s introduction: model-driven engineering. IEEE Comput. 39(2), 25–31 (2006)

    Article  Google Scholar 

  33. Sen, S., Moha, N., Baudry, B., Jézéquel, J.-M.: Meta-model pruning. In: ACM/IEEE 12th International Conference on Model Driven Engineering Languages and Systems (MODELS’09), Denver, Colorado, USA (Oct 2009)

  34. Sen, S., Moha, N., Mahé, V., Barais, O., Baudry, B., Jézéquel, J.-M.: Reusable model transformations. Softw. Syst. Model. 11(1), 111–125 (2012)

    Article  Google Scholar 

  35. Steel, J., Jézéquel, J.-M.: On model typing. J. Softw. Syst. Model. (SoSyM) 6(4), 401–414 (2007)

    Article  Google Scholar 

  36. Tisi, M., Martínez, S., Jouault, F., Cabot, J.: Refining models with rule-based model transformations. Rapport de recherche RR-7582, INRIA (2011)

  37. van Amstel, M., Lange, C., van den Brand, M.: Metrics for analyzing the quality of model transformations. In: 12th ECOOP Workshop on Quantitative Approaches on Object Oriented Software Engineering (2008)

  38. Vanhoof, B., Berbers, Y.: Breaking up the transformation chain. In: Proceedings of the Best Practices for Model-Driven Software Development at OOPSLA 2005, San Diego, California, USA (2005)

  39. Vanhooff, B., Ayed, D., Berbers, Y.: A framework for transformation chain development processes. In: Proceedings of the ECMDA Composition of Model Transformations Workshop, pp. 3–8 (2006)

  40. Wagelaar, D., Van Der Straeten, R., Deridder, D.: Module superimposition: a composition technique for rule-based model transformation languages. Softw. Syst. Model. (2009). Online First

  41. Wagelaar, D.: Composition techniques for rule-based model transformation languages. In: Vallecillo, A., Gray, J., Pierantonio, A. (eds.) Theory and Practice of Model Transformations, First International Conference, ICMT, volume 5063 of Lecture Notes in Computer Science, pp. 152–167. Springer, Berlin (2008)

    Google Scholar 

  42. Weisemöller, I., Schürr, A.: Formal definition of mof 2.0 metamodel components and composition. In: MoDELS, pp. 386–400 (2008)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Anne Etien.

Additional information

Communicated by Dr. Jim Steel.

Appendices

Appendices

1.1 A Overview of the Gaspard transformations

1.1.1 A.1 ComputeFunction

Transformation Description: Introduce the concepts relative to procedural languages

Main Used Concepts: AssemblyPart, StructuredComponent, DataAllocate, TilerTask, ShapeSpecification

Main Introduced Concepts: FunctionCall, TilerComputation, Process, Instruction, Synchro

1.1.2 A.2 ExplicitAllocation

Transformation Description: Explicits the association of each application part on the processing units, according to the association of other elements in the application hierarchy

Main Used Concepts: AssemblyPart, StructuredComponent, Distribute, Allocation

Main Introduced Concepts: \(\varnothing \)

1.1.3 A.3 GlobalSynchronization

Transformation Description: Establishes a graph of tasks for the complete application from the local graphs of tasks

Main Used Concepts: AssemblyPart, StructuredComponent, Distribute, ClassifierTypeExtension, HW_Resource

Main Introduced Concepts: GlobalGraph, Task, TaskDependency

Main Removed Concepts: Graph, Node, IntraDependency, ExtraDependency

1.1.4 A.4 HybridConception

Transformation Description: Distinguishes the hosts and devices in case of GPU architecture and builds the functions and variables accordingly.

Main Used Concepts: AssemblyPart, StructuredComponent, Distribute, ClassifierTypeExtension, HW_Resource, Allocate, FlowPort, PortPart, TilerTask

Main Introduced Concepts: HybridApp, HostSide, DeviceSide, Kernel, Function, Variable

1.1.5 A.5 Tiler2task

Transformation Description: Replace the connectors between a component and an inner repeated part by a task managing the data (TilerTask); these connectors inevitably having a Tiler topology.

Main Used Concepts: AssemblyPart, StructuredComponent, PortConnector, FlowPort, PortPart, InteractionPort, Tiler, PortConnectorEnd, PartConnectorEnd, ShapeSpecification, Allocate, Distribute

Main Introduced Concepts: TilerTask, LinkTopologyTask

Main Removed Concepts: Tiler

1.1.6 A.6 MartePortInstance

Transformation Description: Introduce into the MARTE metamodel the concept of PortInstance corresponding to an instance of port associated with a part

Main Used Concepts: AssemblyPart, StructuredComponent, FlowPort, InteractionPort, AssemblyConnector, Tiler, ShapeSpecification, Allocate

Main Introduced Concepts: PortPart, PortConnector, PortConnectorEnd, PartConnectorEnd

1.1.7 A.7 MemoryMapping

Transformation Description: Maps the data into memory: create the variables and allocate address spaces

Main Used Concepts: AssemblyPart, StructuredComponent, PortConnector, PortConnectorEnd, PartConnectorEnd, PortPart, ShapeSpecification, Allocate, Distribute, HW_RAM, TilerTask

Main Introduced Concepts: MemoryMap, DataAllocate

1.1.8 A.8 pThread

Transformation Description: Transforms MARTE elementary tasks into threads and the connectors into buffers

Main Used Concepts: AssemblyPart, FlowPort, ShapeSpecification, TilerTask, DataAllocate, GlobalGraph, Task, TaskDependency

Main Introduced Concepts: Buffer, Thread, Function, DataAccess

1.1.9 A.9 Scheduling

Transformation Description: Schedules the tasks from the global graph

Main Used Concepts: GlobalGraph, Task, TaskDependency, AssemblyPart, StructuredComponent, ClassifierTypeExtension, HW_Resource

Main Introduced Concepts: \(\varnothing \)

1.1.10 A.10 Synchronization

Transformation Description: Associates, to each application component, a local graph of tasks corresponding to its parts and specify if the dependencies between tasks are spatial or temporal

Main Used Concepts: AssemblyPart, StructuredComponent, Distribute, ClassifierTypeExtension, HW_Resource, PortConnector, PortConnectorEnd, PartConnectorEnd, PortPart

Main Introduced Concepts: Graph, Node, IntraDependency, ExtraDependency

1.1.11 A.11 SystemC

Transformation Description: Traduce the MARTE architecture into concepts of the SystemC language

Main Used Concepts: AssemblyPart, StructuredComponent, FlowPort,ClassifierTypeExtension, HW_Resource, PortPart, PortConnector, PortConnectorEnd, PartConnectorEnd

Main Introduced Concepts: Module, Socket, Process, Port, Bind, Main Channel, ScThread

1.1.12 A.12 SystemCPA

Transformation Description: Establishes the links between pThread concepts corresponding to the application part and the systemC ones corresponding to the architecture part.

Main Used Concepts: Module, Main, AssemblyPart, StructuredComponent,ScThread, Function, DataAllocate, Distribute, DataAccess, FlowPort, PortPart

Main Introduced Concepts: \(\varnothing \)

1.1.13 A.13 TilerMapping

Transformation Description: Maps the tiler task onto processing units according to the mapping of the nearer tasks.

Main Used Concepts: GlobalGraph, Task, TaskDependency, AssemblyPart, Distribute

Main Introduced Concepts: \(\varnothing \)

1.2 B Excerpt of the tiler2task Transformation

figure e

Rights and permissions

Reprints and permissions

About this article

Cite this article

Etien, A., Muller, A., Legrand, T. et al. Localized model transformations for building large-scale transformations. Softw Syst Model 14, 1189–1213 (2015). https://doi.org/10.1007/s10270-013-0379-8

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-013-0379-8

Keywords

Navigation