Skip to main content

Compositional Modelling Languages with Analytics and Construction Infrastructures Based on Object-Oriented Techniques—The MontiCore Approach

  • Chapter
  • First Online:

Abstract

Composing modelling languages and analysis tools still require significant efforts to properly consider syntax and semantics as well as related analyses and syntheses. This composition ideally should be defined on individual language components that can be composed when needed. Only when model-based analysis infrastructures can be composed in accordance to their related language definitions and can be reused in a black-box fashion without modification, can we foster automation in language engineering and integration. In this chapter, we demonstrate object-oriented language engineering concepts that enable composing models of heterogeneous languages using the language workbench MontiCore. This composition includes the concrete syntax and abstract syntax as well as analysis infrastructures and analyses. We demonstrate in detail how the MontiCore infrastructure enables (de)composing languages and related model-based analysis techniques such that the analyses can be reused with other languages with minimal effort. Several of the provided techniques are based on adaptations of the well- known concepts of object-oriented development, such as inheritance and the extension and the visitor patterns. This can reduce the effort of engineering truly domain-specific modelling languages significantly.

This case-study chapter illustrates concepts introduced in Chap. 4 and addresses Challenge 1 in Chap. 3 of this book.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   159.00
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Kai Adam, Arvid Butting, Robert Heim, Oliver Kautz, Járôme Pfeiffer, Bernhard Rumpe, and Andreas Wortmann. Modeling Robotics Tasks for Better Separation of Concerns, Platform-Independence, and Reuse. Shaker, 2017. http://www.se-rwth.de/phdtheses/Modeling-Robotics-Tasks-for-Better-Separation-of-Concerns-Platform-Independence-and-Reuse.pdf.

  2. Kai Adam, Katrin Hölldobler, Bernhard Rumpe, and AndreasWortmann. “Modeling Robotics Software Architectures with Modular Model Transformations”. In: Journal of Software Engineering for Robotics 8.1 (2017), pp. 3–16. https://doi.org/10.1109/IRC.2017.16.

  3. Lorenzo Bettini. Implementing domain-specific languages with Xtext and Xtend. Packt Publishing Ltd, 2016.

    Google Scholar 

  4. Arvid Butting, Robert Eikermann, Oliver Kautz, Bernhard Rumpe, and Andreas Wortmann. “Systematic Composition of Independent Language Features”. In: Journal of Systems and Software 152 (2019), pp. 50–69.

    Google Scholar 

  5. Benoit Combemale, Olivier Barais, and Andreas Wortmann. “Language Engineering with the GEMOC Studio”. In: IEEE International Conference on Software Architecture Workshops. 2017, pp. 189–191. https://doi.org/10.1109/ICSAW.2017.61.

  6. Manuela Dalibor, Nico Jansen, Bernhard Rumpe, Louis Wachtmeister, and Andreas Wortmann. “Model-Driven Systems Engineering for Virtual Product Design”. In: First International Workshop on Multi-Paradigm Modelling for Cyber-Physical Systems, MPM4CPS. Sept. 2019, pp. 430–435. https://doi.org/10.1109/MODELS-C.2019.00069.

  7. Imke Drave, Timo Greifenberg, Steffen Hillemacher, Stefan Kriebel, Evgeny Kusmenko, Matthias Markthaler, Philipp Orth, Karin Samira Salman, Johannes Richenhagen, Bernhard Rumpe, Christoph Schulze, Michael Wenckstern, and Andreas Wortmann. “SMArDT modeling for automotive software testing”. In: Software: Practice and Experience 49.2 (2019), pp. 301–328. https://doi.org/10.1002/spe.2650.

  8. Robert Eikermann, Markus Look, Alexander Roth, Bernhard Rumpe, and Andreas Wortmann. “Architecting Cloud Services for the Digital me in a Privacy-Aware Environment”. In: Software Architecture for Big Data and the Cloud. 2017, pp. 207–226. https://doi.org/10.1016/B978-0-12-805467-3.00012-0.

  9. Sebastian Erdweg, Lennart CL Kats, Tillmann Rendel, Christian Kästner, Klaus Ostermann, and Eelco Visser. “Library-based Model-driven Software Development with SugarJ”. In: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion. 2011, pp. 17–18. https://doi.org/10.1145/2048147.2048156.

  10. Sebastian Erdweg, Tijs Van Der Storm, Markus Völter, Laurence Tratt, Remi Bosman, William R Cook, Albert Gerritsen, Angelo Hulshout, Steven Kelly, Alex Loh, et al. “Evaluating and comparing language workbenches: Existing results and benchmarks for the future”. In: Computer Languages, Systems & Structures 44 (2015), pp. 24–47. https://doi.org/10.1016/j.cl.2015.08.007.

  11. Robert France and Bernhard Rumpe. “Model-driven Development of Complex Software: A Research Roadmap”. In: Future of Software Engineering (May 2007), pp. 37–54. https://doi.org/10.1109/FOSE.2007.14.

  12. Florian Heidenreich, Jendrik Johannes, Sven Karol, Mirko Seifert, Michael Thiele, Christian Wende, and Claas Wilke. “Integrating OCL and textual modelling languages”. In: International Conference on Model Driven Engineering Languages and Systems. 2010, pp. 349–363. https://doi.org/10.1007/978-3-642-21210-9_34.

  13. Robert Heim, Pedram Mir Seyed Nazari, Bernhard Rumpe, and Andreas Wortmann. “Compositional Language Engineering using Generated, Extensible, Static Type Safe Visitors”. In: Conference on Modelling Foundations and Applications. 2016, pp. 67–82. https://doi.org/10.1007/978-3-319-42061-5_5.

  14. Robert Heinrich, Francisco Durán, Carolyn L. Talcott, and Steffen Zschaler (eds.) Composing Model-Based Analysis Tools. Springer, 2021. https://doi.org/10.1007/978-3-030-81915-6.

  15. Katrin Hölldobler, Pedram Mir Seyed Nazari, and Bernhard Rumpe. “Adaptable Symbol Table Management by Meta Modeling and Generation of Symbol Table Infrastructures”. In: Domain-Specific Modeling Workshop. 2015, pp. 23–30. https://doi.org/10.1145/2846696.2846700.

  16. Katrin Hölldobler and Bernhard Rumpe. MontiCore 5 Language Workbench Edition 2017. Shaker, 2017. http://www.se-rwth.de/phdtheses/MontiCore-5-Language-Workbench-Edition-2017.pdf.

  17. Katrin Hölldobler, Bernhard Rumpe, and Andreas Wortmann. “Software Language Engineering in the Large: Towards Composing and Deriving Languages”. In: Computer Languages, Systems & Structures 54 (2018), pp. 386–405.

    Google Scholar 

  18. Frádáric Jouault, Freddy Allilaire, Jean Bázivin, Ivan Kurtev, and Patrick Valduriez. “ATL: a QVT-like transformation language”. In: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications. 2006, pp. 719–720. https://doi.org/10.1145/1176617.1176691.

  19. Ted Kaminski, Lucas Kramer, Travis Carlson, and Eric Van Wyk. “Reliable and Automatic Composition of Language Extensions to C: The ableC Extensible Language Framework”. In: Proceedings of the ACM on Programming Languages 1 (Oct. 2017), 98:1–98:29. https://doi.org/10.1145/3138224.

  20. Anneke Kleppe. Software language engineering: creating domain-specific languages using metamodels. Pearson Education, 2008.

    Google Scholar 

  21. Dimitrios S Kolovos, Richard F Paige, and Fiona AC Polack. “The Epsilon transformation language”. In: International Conference on Theory and Practice of Model Transformations. 2008, pp. 46–60. https://doi.org/10.1007/978-3-540-69927-9_4.

  22. Lennart C. L. Kats and Eelco Visser. “The Spoofax Language Workbench. Rules for Declarative Specification of Languages and IDEs”. In: Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. 2010, pp. 444–463. https://doi.org/10.1145/1869459.1869497.

  23. Jörg Liebig, Rolf Daniel, and Sven Apel. “Feature-oriented Language Families: A Case Study”. In: Seventh International Workshop on Variability Modelling of Software intensive Systems, VaMoS. 2013, 11:1–11:8. https://doi.org/10.1145/2430502.2430518.

  24. Pedram Mir Seyed Nazari, Alexander Roth, and Bernhard Rumpe. “Management of Guided and Unguided Code Generator Customizations by Using a Symbol Table”. In: Domain-Specific Modeling Workshop. 2015, pp. 37–42. https://doi.org/10.1145/2846696. 2846702.

  25. Pedram Mir Seyed Nazari, Alexander Roth, and Bernhard Rumpe. “An Extended Symbol Table Infrastructure to Manage the Composition of Output-Specific Generator Information”. In: Modellierung 2016 Conference. Vol. 254. Mar. 2016, pp. 133–140. https://doi.org/dl.gi.de/20.500.12116/819.

    Google Scholar 

  26. Object Management Group. OMG Systems Modeling Language (OMG SysML), Version 1.3. 2012. https://www.omg.org/spec/SysML/1.4/.

  27. Object Management Group. UML 2.5. Tech. rep. formal/2015-03-01. Object Management Group, 2015.

    Google Scholar 

  28. Edoardo Vacchi and Walter Cazzola. “Neverlang: A framework for feature-oriented language development”. In: Computer Languages, Systems & Structures 43 (2015), pp. 1–40. https://doi.org/10.1016/j.cl.2015.02.001.

  29. Markus Voelter, Daniel Ratiu, Bernhard Schaetz, and Bernd Kolb. “mbeddr: an Extensible C-based Programming Language and IDE for Embedded Systems”. In: Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity. 2012, pp. 121–140. https://doi.org/10.1145/2384716.2384767.

  30. Markus Voelter. “Language and IDE Modularization and Composition with MPS”. In: International Summer School on Generative and Transformational Techniques in Software Engineering. 2011, pp. 383–430. https://doi.org/10.1007/978-3-642-35992-7_11.

  31. Guido H Wachsmuth, Gabriël D P Konat, and Eelco Visser. “Language Design with the Spoofax Language Workbench”. In: IEEE Software 31.5 (2014), pp. 35–43. https://doi.org/10.1109/MS.2014.100.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bernhard Rumpe .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Butting, A., Hölldobler, K., Rumpe, B., Wortmann, A. (2021). Compositional Modelling Languages with Analytics and Construction Infrastructures Based on Object-Oriented Techniques—The MontiCore Approach. In: Heinrich, R., Durán, F., Talcott, C., Zschaler, S. (eds) Composing Model-Based Analysis Tools. Springer, Cham. https://doi.org/10.1007/978-3-030-81915-6_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-81915-6_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-81914-9

  • Online ISBN: 978-3-030-81915-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics