<p>Metamodels and models are artifacts that must evolve together to maintain consistency and validity within model-driven engineering ecosystems. However, developers often lack control over models created and managed by external clients, making it challenging to ensure model conformance when metamodels evolve in new versions of model-based applications. In this paper, we present an extended version of Edelta, a Java framework and DSL for the co-evolution and refactoring of EMF metamodels and models, which now enables metamodel developers to deliver applications together with migration code that updates clients’ models. Our approach supports complex scenarios involving mutually dependent metamodels and models and provides four strategies for integrating migration logic both within Eclipse-based applications and in standalone REST services. We demonstrate the effectiveness of our solution through two comprehensive examples where we apply the four migration strategies introduced. We describe automated testing methodologies for migrating code and discuss the approach in terms of usability and maintainability. With the proposed approach, clients’ models are transparently and reliably migrated to conform to new metamodel versions, regardless of their version age or the complexity of their dependencies.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Edelta: a versatile framework for migrating clients’ EMF models

  • Lorenzo Bettini,
  • Amleto Di Salle,
  • Ludovico Iovino

摘要

Metamodels and models are artifacts that must evolve together to maintain consistency and validity within model-driven engineering ecosystems. However, developers often lack control over models created and managed by external clients, making it challenging to ensure model conformance when metamodels evolve in new versions of model-based applications. In this paper, we present an extended version of Edelta, a Java framework and DSL for the co-evolution and refactoring of EMF metamodels and models, which now enables metamodel developers to deliver applications together with migration code that updates clients’ models. Our approach supports complex scenarios involving mutually dependent metamodels and models and provides four strategies for integrating migration logic both within Eclipse-based applications and in standalone REST services. We demonstrate the effectiveness of our solution through two comprehensive examples where we apply the four migration strategies introduced. We describe automated testing methodologies for migrating code and discuss the approach in terms of usability and maintainability. With the proposed approach, clients’ models are transparently and reliably migrated to conform to new metamodel versions, regardless of their version age or the complexity of their dependencies.