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 runtime 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.

, , ,
ACM SIGPLAN International Conference on Software Language Engineering
Centrum Wiskunde & Informatica, Amsterdam (CWI), The Netherlands

Tikhonova, U, van der Storm, T, Stoel, J, & Degueule, T.F. (2018). Constraint-based run-time state migration for live modeling. In SLE 2018 - Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2018 (pp. 108–120). doi:10.1145/3276604.3276611