Skip to main content
Log in

BXtendDSL at Work: Combining Declarative and Imperative Programming of Bidirectional Model Transformations

  • Original Research
  • Published:
SN Computer Science Aims and scope Submit manuscript

Abstract

Model transformations are a major driving force behind model-driven software development (MDSD), when typically an initial model is refined throughout the development process over several steps until eventually code is generated. Strict forward engineering processes require unidirectional model transformations, where an initial requirements model is refined through various model transformation steps. Roundtrip engineering on the other hand calls for bidirectional and incremental model transformations instead, where changes may be propagated back and forth while retaining manual modifications to the models involved. In this paper, we present BXtendDSL, a framework for bidirectional incremental model transformations. BXtendDSL combines two languages: a light-weight declarative language for defining correspondences between model elements, and an imperative language that allows to implement behavior that cannot be specified in the declarative language. We demonstrate our approach by a case study. We also include an evaluation of this case study that demonstrates conciseness, expressiveness, and scalability of our hybrid approach.

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

Similar content being viewed by others

Data Availability Statement

A sample workspace comprising Benchmarx and the examples discussed in this paper is provided as a zip archive via http://btn1x4.inf.uni-bayreuth.de/bxtenddsl/examples/Gantt2CPM.zip. Please make sure you have installed BXtendDSL in your Eclipse and also the Benchmarx connector for BXtendDSL available at: http://btn1x4.inf.uni-bayreuth.de/bxtenddsl/connector/.

Notes

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

References

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

    Article  Google Scholar 

  2. Czarnecki K, et al. Paige RF. (ed.) Bidirectional transformations: A cross-discipline perspective. (ed.Paige, R. F.) Proceedings of the Second International Conference on Theory and Practice of Model Transformations (ICMT 2009), Vol. 5563 of Lecture Notes in Computer Science, 260–283 (Springer-Verlag, Zurich, Switzerland, 2009).

  3. Czarnecki K, Helsen S. Feature-based survey of model transformation approaches. IBM Syst J. 2006;45(3):621–46. https://doi.org/10.1147/sj.453.0621.

    Article  Google Scholar 

  4. Hidaka S, Tisi M, Cabot J, Hu Z. Feature-based classification of bidirectional transformation approaches. Softw Syst Model. 2016;15(3):907–28.

    Article  Google Scholar 

  5. Schürr A, Tinhofer G. (ed.) Specification of Graph Translators with Triple Graph Grammars. (ed.Tinhofer, G.) Proceedings of the 20th International Workshop on Graph-Theoretic Concepts in Computer Science (WG 1994), Vol. 903 of LNCS, 151–163 (Springer-Verlag, Herrsching, Germany, 1994).

  6. Cicchetti A, Di Ruscio D, Eramo R, Pierantonio, A. Malloy, B., Staab, S. & van den Brand, M. (eds) JTL: A bidirectional and change propagating transformation language. (eds Malloy B, Staab S, van den Brand M.) Proceedings of the Third International Conference on Software Language Engineering (SLE 2010), Vol. 6563 of Lecture Notes in Computer Science, 183–202 (Springer-Verlag, Eindhoven, The Netherlands, 2010).

  7. Foster JN, Greenwald MB, Moore JT, Pierce BC, Schmitt A. Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem. ACM Transactions on Programming Languages and Systems 2007;29(3), 17:1–17:65.

  8. Anjorin A, et al. Benchmarking bidirectional transformations: theory, implementation, application, and assessment. Softw Syst Model. 2020;19(3):647–91. https://doi.org/10.1007/s10270-019-00752-x.

    Article  Google Scholar 

  9. Westfechtel B. Case-based exploration of bidirectional transformations in QVT relations. Softw Syst Model. 2019;17(3):989–1019. https://doi.org/10.1007/s10270-016-0527-z.

    Article  Google Scholar 

  10. Westfechtel B, Buchmann T, Damiani E, Spanoudakis G, Maciaszek LA. (eds) Incremental bidirectional transformations: Comparing declarative and procedural approaches using the families to persons benchmark. (eds Damiani E, Spanoudakis G, Maciaszek LA.) Evaluation of Novel Approaches to Software Engineering. ENASE 2018., Communications in Computer and Information Science, 98–118 (Springer, 2019).

  11. Buchmann T, Westfechtel B, Demirors O, Turetken O. (eds) Towards Incremental Round-Trip Engineering Using Model Transformations. (eds Demirors, O. & Turetken, O.) Proceedings of the 39th Euromicro Conference on Software Engineering and Advanced Applications (SEAA 2013), 130–133 (IEEE Conference Publishing Service, 2013).

  12. Greiner S, Buchmann T, Westfechtel B, Hammoudi S, Pires LF, Selic B, Desfray P. (eds) Bidirectional transformations with QVT-R: A case study in round-trip engineering UML class models and java source code. (eds Hammoudi S, Pires LF, Selic B, Desfray P.) MODELSWARD 2016 - Proceedings of the 4rd International Conference on Model-Driven Engineering and Software Development, Rome, Italy, 19-21 February, 2016, 15–27 (SciTePress, 2016). https://doi.org/10.5220/0005644700150027.

  13. Buchmann T, Westfechtel B. Using triple graph grammars to realize incremental round-trip engineering. IET Software 2016;10(6),173–181. http://digital-library.theiet.org/content/journals/10.1049/iet-sen.2015.0125.

  14. Buchmann T, Hammoudi S, Pires LF, Selic B. (eds) Bxtend - A framework for (bidirectional) incremental model transformations. (eds Hammoudi, S., Pires, L. F. & Selic, B.) Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2018, Funchal, Madeira - Portugal, January 22-24, 2018;336–345 (SciTePress, 2018). https://doi.org/10.5220/0006563503360345.

  15. Steinberg D, Budinsky F, Paternostro M, Merks E. EMF Eclipse Modeling Framework. 2nd ed. Boston, MA: The Eclipse Series (Addison-Wesley; 2009).

  16. Bank M, Kaske S, Buchmann T, Westfechtel B, Ali R, Kaindl H, Maciaszek LA. (eds) Incremental bidirectional transformations: Evaluating declarative and imperative approaches using the ast2dag benchmark. (eds Ali R, Kaindl H, Maciaszek LA.) Proceedings of the 15th International Conference on Evaluation of Novel Approaches to Software Engineering, ENASE 2020, Prague, Czech Republic, May 5-6, 2020;249–260 (SCITEPRESS, 2020). https://doi.org/10.5220/0009206602490260.

  17. Bank M, Buchmann T, Westfechtel B, Hammoudi S, Pires LF, Seidewitz E, Soley R. (eds) Combining a declarative language and an imperative language for bidirectional incremental model transformations. (eds Hammoudi S, Pires LF, Seidewitz E, Soley R.) Proceedings of the 9th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2021, Online Streaming, February 8-10, 2021;15–27 (SCITEPRESS, 2021). https://doi.org/10.5220/0010188200150027.

  18. Buchmann T, Bank M, Westfechtel B. BXtendDSL: A layered framework for bidirectional model transformations combining a declarative and an imperative language. J Syst Softw. 2022;189: 111288. https://doi.org/10.1016/j.jss.2022.111288.

    Article  Google Scholar 

  19. Fowler M. Domain-Specific Languages The Addison-Wesley signature series (Addison-Wesley, 2011). http://vig.pearsoned.com/store/product/1,1207,store-12521_isbn-0321712943,00.html.

  20. Kerzner H. Project Management: A Systems Approach to Planning, Scheduling, and Controlling. 6th ed. New York, NY: John Wiley & Sons; 1998.

    Google Scholar 

  21. Gamma E, Helm R, Johnson R, Vlissides J. Design Patterns - Elements of Reusable Object-Oriented Software. Upper Saddle River, NJ: Addison-Wesley; 1994.

    MATH  Google Scholar 

  22. Anjorin A et al, Eramo R, Johnson M. (eds) Benchmarx reloaded: A practical benchmark framework for bidirectional transformations. (eds Eramo, R. & Johnson, M.) Proceedings of the 6th International Workshop on Bidirectional Transformations co-located with The European Joint Conferences on Theory and Practice of Software, BX@ETAPS 2017, Uppsala, Sweden, April 29, 2017;1827 of CEUR Workshop Proceedings, 15–30 (CEUR-WS.org, 2017). http://ceur-ws.org/Vol-1827/paper6.pdf.

  23. OMG. Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification. Needham, MA, formal/2015-02-01 edn (2015).

  24. ikv++ technologies. medini QVT (2017). http://projects.ikv.de/qvt.

  25. Anjorin A, Buchmann T, Westfechtel B, García-Domínguez A, Hinkel G, Krikava F. (eds) The Families to Persons Case. (eds García-Domínguez, A., Hinkel, G. & Krikava, F.) Proceedings of the 10th Transformation Tool Contest (TTC 2017), co-located with the 2017 Software Technologies: Applications and Foundations (STAF 2017), Marburg, Germany, July 21, 2017;2026 of CEUR Workshop Proceedings, 27–34 (CEUR-WS.org, 2017).

  26. Anjorin A, Lauder M, Schürr A, Störrle H, et al. (eds) eMoflon: A Metamodelling and Model Transformation Tool. (eds Störrle, H. et al.) Joint Proceedings of the Co-located Events at the 8th European Conference on Modelling Foundations and Applications (ECMFA 2012), 348 (Technical University of Denmark (DTU), Copenhagen, Denmark, 2012). ISBN: 978-87-643-1014-6.

  27. Kindler E, Wagner R. Triple graph grammars: Concepts, extensions, implementations, and application scenarios. Tech. Rep. tr-ri-07-284, Software Engineering Group, Department of Computer Science, University of Paderborn (2007).

  28. Gelfond M, Lifschitz V, Kowalski RA, Bowen KA. (eds) The stable model semantics for logic programming. (eds Kowalski, R. A. & Bowen, K. A.) Logic Programming, Proceedings of the Fifth International Conference and Symposium, Seattle, Washington, USA, August 15-19, 1988;(2 Volumes),1070–1080 (MIT Press, 1988).

  29. Ko H, Zan T, Hu Z, Erwig M, Rompf T. (eds) BiGUL: a formally verified core language for putback-based bidirectional programming. (eds Erwig M, Rompf T.) Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2016, St. Petersburg, FL, USA, January 20 - 22, 2016;61–72 (ACM, 2016). https://doi.org/10.1145/2847538.2847544.

Download references

Funding

Not applicable.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Thomas Buchmann.

Ethics declarations

Conflicts of Interest

The authors declare no competing interests.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This article is part of the topical collection “Model-Driven Engineering and Software Development guest edited by Slimane Hammoudi and Luis Ferreira Pires.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Buchmann, T., Bank, M. & Westfechtel, B. BXtendDSL at Work: Combining Declarative and Imperative Programming of Bidirectional Model Transformations. SN COMPUT. SCI. 4, 50 (2023). https://doi.org/10.1007/s42979-022-01448-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s42979-022-01448-8

Keywords

Navigation