In model-driven engineering, the bidirectional transformation of models plays a crucial role in facilitating the use of editors that operate at different levels of abstraction. This is particularly important in the context of industrial-grade low-code platforms like OutSystems, which feature a comprehensive ecosystem of tools that complement the standard integrated development environment with domain-specific builders and abstract model viewers. We introduce CHAMELEON, a tool that enables the dynamic definition of a live bidirectional model transformation in a declarative manner by leveraging simple and intuitive component patterns. Through this approach, we can gradually define the view and synthesis paths to an abstract model built on top of a low-code metamodel. We devise a standard parser-generating technique for tree-like models that builds upon extended grammar definitions with constraints and name binders. We allow for a greater overlap of model patterns that can still be disambiguated for a clear lens-like behaviour of the transformation. CHAMELEON is evaluated in the fragment of the OutSystems language targeting the definition of user interfaces. To assess performance we used a large set of real OutSystems applications, with approximately 200K UI widgets, and a database of curated widget patterns. We found a worst-case processing time of 92ms for complete models in our benchmark, which is still suitable for the operation of an interactive model editor.
翻译:摘要:在模型驱动工程中,模型的双向转换在促进不同抽象层级编辑器协同工作中发挥着关键作用。这一特性对于OutSystems等工业级低代码平台尤为重要——这类平台拥有由领域特定构建器和抽象模型浏览器组成的完整工具生态系统,可补充标准集成开发环境的功能。我们提出CHAMELEON工具,通过利用简洁直观的组件模式,以声明式方式实现实时双向模型转换的动态定义。基于该方法,我们能够逐步构建从低代码元模型派生的抽象模型的视图路径与合成路径。针对树状模型,我们设计了一种基于扩展语法定义(含约束条件与名称绑定器)的标准解析器生成技术。该技术允许模型模式存在更大程度的重叠,同时仍能通过类似透镜的清晰行为对转换过程进行消歧。我们在针对用户界面定义的OutSystems语言片段上对CHAMELEON进行了评估。性能测试采用包含约20万UI组件的大型真实OutSystems应用集合及经过整理的组件模式数据库。基准测试表明,完整模型的最差处理时间为92毫秒,仍能满足交互式模型编辑器的运行需求。