skip to main content
10.1145/3276604.3276611acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Constraint-based run-time state migration for live modeling

Published: 24 October 2018 Publication History

Abstract

Live modeling enables modelers to incrementally update models as they are running and get immediate feedback about the impact of their changes. Changes introduced in a model may trigger inconsistencies between the model and its run-time state (e.g., deleting the current state in a statemachine); effectively requiring to migrate the run-time state to comply with the updated model. In this paper, we introduce an approach that enables to automatically migrate such run-time state based on declarative constraints defined by the language designer. We illustrate the approach using Nextep, a meta-modeling language for defining invariants and migration constraints on run-time state models. When a model changes, Nextep employs model finding techniques, backed by a solver, to automatically infer a new run-time model that satisfies the declared constraints. We apply Nextep to define migration strategies for two DSLs, and report on its expressiveness and performance.

References

[1]
Erwan Bousse, Dorian Leroy, Benoît Combemale, Manuel Wimmer, and Benoit Baudry. 2018. Omniscient debugging for executable DSLs. Journal of Systems and Software 137 (2018), 261–288.
[2]
Erwan Bousse, Tanja Mayerhofer, Benoit Combemale, and Benoit Baudry. 2017. Advanced and efficient execution trace management for executable domain-specific modeling languages. Software & Systems Modeling (2017), 1–37.
[3]
Sebastian Burckhardt, Manuel Fähndrich, Peli de Halleux, Sean McDirmid, Michal Moskal, Nikolai Tillmann, and Jun Kato. 2013. It’s alive! continuous feedback in UI programming. In ACM SIG-PLAN Conference on Programming Language Design and Implementation, PLDI ’13, Seattle, WA, USA, June 16-19, 2013. 95–104.
[4]
Jordi Cabot, Robert Clarisó, and Daniel Riera. 2014. On the verification of UML/OCL class diagrams using constraint programming. Journal of Systems and Software 93 (2014), 1–23.
[5]
Benoît Combemale, Xavier Crégut, and Marc Pantel. 2012. A design pattern to build executable DSMLs and associated V&V tools. In Software Engineering Conference (APSEC), 2012 19th Asia-Pacific, Vol. 1. IEEE, 282–287.
[6]
Michelle L. Crane and Jürgen Dingel. 2008. Towards a UML virtual machine: implementing an interpreter for UML 2 actions and activities. In Proceedings of the 2008 conference of the Centre for Advanced Studies on Collaborative Research, October 27-30, 2008, Richmond Hill, Ontario, Canada. 8.
[7]
Leonardo de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems, C. R. Ramakrishnan and Jakob Rehof (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 337–340.
[8]
Dolev Dotan and Andrei Kirshin. 2007. Debugging and testing behavioral UML models. In Companion to the 22nd Annual ACM SIG-PLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2007, October 21-25, 2007, Montreal, Quebec, Canada. 838–839.
[9]
Ferhat Erata, Arda Goknil, Ivan Kurtev, and Bedir Tekinerdogan. 2018. AlloyInEcore: Embedding of First-Order Relational Logic into MetaObject Facility for Automated Model Reasoning. In Proceedings of the 26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 18).
[10]
J. Nathan Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, and Alan Schmitt. 2007. Combinators for bidirectional tree transformations: A linguistic approach to the viewupdate problem. ACM Trans. Program. Lang. Syst. 29, 3 (2007), 17.
[11]
D. Jackson. 2012. Software Abstractions - Logic, Language, and Analysis (revised ed.). MIT press. 336 pages.
[12]
Juraj Kubelka, Romain Robbes, and Alexandre Bergel. 2018. The Road to Live Programming: Insights from the Practice. In Proceedings of the 40th International Conference on Software Engineering (ICSE ’18). ACM, New York, NY, USA, 1090–1101.
[13]
Henry Lieberman and Christopher Fry. 1995. Bridging the gulf between code and behavior in programming. In Proceedings of the SIGCHI conference on Human factors in computing systems. ACM Press/AddisonWesley Publishing Co., 480–486.
[14]
Nuno Macedo and Alcino Cunha. 2013. Implementing QVT-R Bidirectional Model Transformations Using Alloy. In Fundamental Approaches to Software Engineering - 16th International Conference, FASE 2013, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2013, Rome, Italy, March 16-24, 2013. Proceedings. 297–311.
[15]
Nuno Macedo, Tiago Guimarães, and Alcino Cunha. 2013. Model repair and transformation with Echo. In 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013, Silicon Valley, CA, USA, November 11-15, 2013, Ewen Denney, Tevfik Bultan, and Andreas Zeller (Eds.). IEEE, 694–697.
[16]
Tanja Mayerhofer, Philip Langer, and Gerti Kappel. 2012. A runtime model for fUML. In Proceedings of the 7th Workshop on Models@ run. time. ACM, 53–58.
[17]
Sean McDirmid. 2013. Usable live programming. In ACM Symposium on New Ideas in Programming and Reflections on Software, Onward! 2013, part of SPLASH ’13, Indianapolis, IN, USA, October 26-31, 2013. 53–62.
[18]
Simon Van Mierlo, Yentl Van Tendeloo, and Hans Vangheluwe. 2017. Debugging Parallel DEVS. Simulation 93, 4 (2017), 285–306.
[19]
István Ráth, David Vago, and Dániel Varró. 2008. Design-time simulation of domain-specific models by incremental pattern matching. In IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2008, Herrsching am Ammersee, Germany, 15-19 September 2008, Proceedings. 219–222.
[20]
Patrick Rein, Stefan Ramson, Jens Lincke, Robert Hirschfeld, and Tobias Pape. 2019. Exploratory and Live, Programming and Coding - A Literature Study Comparing Perspectives on Liveness. Programming Journal 3, 1 (2019), 1.
[21]
Andy Schürr. 1994. Specification of Graph Translators with Triple Graph Grammars. In Graph-Theoretic Concepts in Computer Science, 20th International Workshop, WG ’94, Herrsching, Germany, June 16-18, 1994, Proceedings. 151–163.
[22]
Oszkár Semeráth, Csaba Debreceni, Ákos Horváth, and Dániel Varró. 2016. Incremental backward change propagation of view models by logic solvers. In Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems, SaintMalo, France, October 2-7, 2016. 306–316. http://dl.acm.org/citation. cfm?id=2976788
[23]
Friedrich Steimann, Jörg Hagemann, and Bastian Ulke. 2016. Computing Repair Alternatives for Malformed Programs Using Constraint Attribute Grammars. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016). ACM, New York, NY, USA, 711–730.
[24]
Ragnhild Van Der Straeten, Jorge Pinna Puissant, and Tom Mens. 2011. Assessing the Kodkod Model Finder for Resolving Model Inconsistencies. In Modelling Foundations and Applications - 7th European Conference, ECMFA 2011, Birmingham, UK, June 6 - 9, 2011 Proceedings (Lecture Notes in Computer Science), Robert B. France, Jochen Malte Küster, Behzad Bordbar, and Richard F. Paige (Eds.), Vol. 6698. Springer, 69–84.
[25]
Steven L. Tanimoto. 2013. A perspective on the evolution of live programming. In Proceedings of the 1st International Workshop on Live Programming, LIVE 2013, San Francisco, California, USA, May 19, 2013, Brian Burg, Adrian Kuhn, and Chris Parnin (Eds.). IEEE Computer Society, 31–34.
[26]
Tijs van der Storm. 2013. Semantic deltas for live DSL environments. In 1st International Workshop on Live Programming (LIVE). IEEE, 35–38.
[27]
Riemer van Rozen and Tijs van der Storm. 2017. Toward live domainspecific languages. Software & Systems Modeling (14 Aug 2017).
[28]
Dániel Varró and András Balogh. 2007. The model transformation language of the VIATRA2 framework. Sci. Comput. Program. 68, 3 (2007), 214–234.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SLE 2018: Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering
October 2018
219 pages
ISBN:9781450360296
DOI:10.1145/3276604
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 the author(s) 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].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 October 2018

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. DSL
  2. live modeling
  3. relational model finding
  4. run-time state migration

Qualifiers

  • Research-article

Conference

SLE '18
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)0
Reflects downloads up to 02 Feb 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media