skip to main content
10.1145/3412841.3441999acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Evolving domain-specific languages depending on external libraries

Published:22 April 2021Publication History

ABSTRACT

Like any software, domain-specific languages (DSLs) are subject to regularly evolve. One reason to evolve a DSL is when the external libraries it (or its code generator) depends on evolve as well. In current practice, every time a change or addition occurs in the external library, the language engineer has to manually adapt and rebuild the DSL accordingly. In this paper, we propose an approach to evolve DSLs automatically when changes occur in the external libraries they depend on. This provides a seamless evolution to the domain user by reducing the inconsistencies that may arise between the metamodel of the DSL and the generated artifacts. We evaluate the feasibility of our approach on a case study of generating modeling editors where the input/output interactions with the editor are performed through Arduino devices. We show how the DSL can evolve automatically when new Arduino devices and their APIs are available.

References

  1. [n. d.]. https://curl.haxx.se/. Last access: 22-09-2020.Google ScholarGoogle Scholar
  2. [n. d.]. https://httpie.org/. Last access: 22-09-2020.Google ScholarGoogle Scholar
  3. [n. d.]. https://www.hurl.it/. Last access: 22-09-2020.Google ScholarGoogle Scholar
  4. [n. d.]. https://arduinomodules.info/. Last access: 22-07-2020.Google ScholarGoogle Scholar
  5. [n. d.]. https://www.arduino.cc/reference/en/language/functions/usb/mouse/. Last access: 22-07-2020.Google ScholarGoogle Scholar
  6. [n. d.]. http://duinoedu.com/dl/lib/grove/EDU_RFID125_Grove/. Last access: 22-07-2020.Google ScholarGoogle Scholar
  7. [n. d.]. https://github.com/Seeed-Studio/RFID_Library. Last access: 22-07-2020.Google ScholarGoogle Scholar
  8. A Abouzahra, A Sabraoui, and K Afdel. 2020. Model composition in Model Driven Engineering: A systematic literature review. Information and Software Technology 125 (2020).Google ScholarGoogle Scholar
  9. E Batot, W Kessentini, H Sahraoui, and M Famelis. 2017. Heuristic-Based Recommendation for Metamodel-OCL Coevolution. In MODELS. IEEE, 210--220.Google ScholarGoogle Scholar
  10. L Bettini. 2016. Implementing Domain Specific Languages with Xtext and Xtend - Second Edition (2nd ed.). Packt Publishing.Google ScholarGoogle Scholar
  11. B E Cossette and R J Walker. 2012. Seeking the ground truth: a retroactive study on the evolution and migration of software libraries. In Foundations of Software Engineering. 1--11.Google ScholarGoogle Scholar
  12. C Daly. 2004. Emfatic language reference. IBM alphaWorks (2004).Google ScholarGoogle Scholar
  13. A Demuth, R E Lopez-Herrejon, and A Egyed. 2013. Supporting the Co-evolution of Metamodels and Constraints through Incremental Constraint Management. In MODELS, Vol. 8107. Springer, 287--303.Google ScholarGoogle Scholar
  14. D Di Ruscio, L Iovino, and A Pierantonio. 2013. Managing the Coupled Evolution of Metamodels and Textual Concrete Syntax Specifications. In SEAA. IEEE, 114--121.Google ScholarGoogle Scholar
  15. D Di Ruscio, R Lämmel, and A Pierantonio. 2010. Automated Co-evolution of GMF Editor Models. In SLE. Springer, 143--162.Google ScholarGoogle Scholar
  16. D Dig and R Johnson. 2006. How do APIs evolve? A story of refactoring. Journal of software maintenance and evolution: Research and Practice 18, 2 (2006), 83--107.Google ScholarGoogle ScholarCross RefCross Ref
  17. J Dingel, Z Diskin, and A Zito. 2008. Understanding and improving UML package merge. Software and Systems Modeling 7 (2008), 443--467.Google ScholarGoogle ScholarCross RefCross Ref
  18. M Fokaefs, R Mikhaiel, N Tsantalis, E Stroulia, and A Lau. 2011. An Empirical Study on Web Service Evolution. In International Conference on Web Services. IEEE, 49--56.Google ScholarGoogle Scholar
  19. D Harel and B Rumpe. 2004. Meaningful Modeling: What's the Semantics of "Semantics"? IEEE Computer 37, 10 (2004), 64--72.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R Hebig, D E Khelladi, and R Bendraou. 2016. Approaches to Co-Evolution of Metamodels and Models: A Survey. IEEE Transactions on Software Engineering 43, 5 (2016), 396--414.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. R Koçi, X Franch, P Jovanovic, and A Abelló. 2019. Classification of Changes in API Evolution. In Enterprise Distributed Object Computing Conference. IEEE, 243--249.Google ScholarGoogle Scholar
  22. D S Kolovos et al. 2017. Eugenia: towards disciplined and automated development of GMF-based graphical model editors. Software and Systems Modeling 16 (2017), 229--255.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J Li, Y Xiong, X Liu, and L Zhang. 2013. How Does Web Service API Evolution Affect Clients?. In International Conference on Web Services. IEEE, 300--307.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. L Luhunu and E Syriani. 2017. Comparison of the expressiveness and performance of template-based code generation tools. In SLE. ACM, 206--216.Google ScholarGoogle Scholar
  25. R C Martin. 2000. Design principles and design patterns. Object Mentor 1, 34 (2000), 597.Google ScholarGoogle Scholar
  26. Bart Meyers and Hans Vangheluwe. 2011. A Framework for Evolution of Modelling Languages. Science of Computer Programming 76, 12 (2011), 1223--1246.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. D Moody. 2009. The "Physics" of Notations: Toward a Scientific Basis for Constructing Visual Notations in Software Engineering. IEEE Transactions on software engineering 35, 6 (2009), 756--779.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. R F Paige, N Matragkas, and L M Rose. 2016. Evolving models in Model-Driven Engineering: State-of-the-art and future challenges. Journal of Systems and Software 111 (2016), 272--280.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. T Parr and K Fisher. 2011. LL(*): The Foundation of the ANTLR Parser Generator. ACM Sigplan Notices 46, 6 (2011), 425--436.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. R Rai. 2013. Socket.IO Real-time Web Application Development. Packt Publishing Ltd.Google ScholarGoogle Scholar
  31. Philipp et al. Rohlfshagen. 2018. Pac-Man Conquers Academia: Two Decades of Research Using a Classic Arcade Game. IEEE Transactions on Games 10, 3 (2018), 233--256.Google ScholarGoogle ScholarCross RefCross Ref
  32. L M Rose, R F Paige, D S Kolovos, and F AC Polack. 2008. The epsilon generation language. In ECMDA-FA (LNCS), Vol. 5095. Springer, 1--16.Google ScholarGoogle Scholar
  33. R Smith, T Koeppe, J Maurer, and D Perchik. 2020. Working Draft, Standard for Programming Language C++. ISO/IEC JTC1/SC22/WG21 document N 4861 (2020).Google ScholarGoogle Scholar
  34. M et al. Voelter. 2013. DSL Engineering - Designing, Implementing and Using Domain-Specific Languages. dslbook.org.Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    SAC '21: Proceedings of the 36th Annual ACM Symposium on Applied Computing
    March 2021
    2075 pages
    ISBN:9781450381048
    DOI:10.1145/3412841

    Copyright © 2021 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 22 April 2021

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Acceptance Rates

    Overall Acceptance Rate1,650of6,669submissions,25%
  • Article Metrics

    • Downloads (Last 12 months)10
    • Downloads (Last 6 weeks)1

    Other Metrics

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader