笔记:Modular Language Product Lines:A Graph Transformation Approach
MODELS2022:Modular Language Product Lines:A Graph Transformation Approach
SoSyM2024:Modular language product lines: concept, tool and analysis
Abstraction
Modelling languages are intensively used in paradigms like modeldriven engineering to automate all tasks of the development process.These languages may have variants, in which case the need arises to deal with language families rather than with individual languages.However, specifying the syntax and semantics of each language variant separately is costly, hinders reuse across variants, and may yield inconsistent semantics between variants.
To attack this problem, we propose a novel, modular way to describe product lines of modelling languages. Our approach is compositional, enabling the incremental definition of language families by means of modules comprising meta-model fragments, graph transformation rules, and rule extensions. Language variants are configured by selecting the desired modules, which entails the composition of a language meta-model and a set of rules defining its semantics. This paper describes a theory able to check consistent semantics among all languages within the family, an implementation as an Eclipse plugin, and an evaluation reporting drastic specification size reduction w.r.t. an enumerative approach.
本文围绕着一个概念展开:元模型家族与元模型变体。
描述一个系统,元模型可能存在局部差异,包括表达相同含义但是结构不同,或者某些属性是否存在。由此引申出,在模型管理过程中,同样含义的模型操作,在实现过程中也存在微小的差异。本文认为,作为同一个元模型家族的MDE体系,不同模型之间因为微小的差异而不能关联在一起使用,是一种信息上的浪费。可以试图寻求元模型之间的类似“最大公约数”的表示法,“求同存异”,将一个元模型家族的最小不可拆视为一个单元(product),构建一个属于这个家族的树状结构(Language Product Line,LPL),对一系列类似的元模型和模型操作进行建模,同时LPL结构中通过逻辑操作符表达。
本文第三节讲这种概念。第四节讲LPL元模型部分的结构和(离散)数学模型。第五节讲在模型操作视角下,LPL的数学模型,大概含义就是构建了一种动作三元组,通过原子化操作规则(rule)来实现复杂操作的拼装组合。第六节讲工具支持,开发了一种名为Capone(Component-bAsed PrOduct liNEs)的工具,这个工具是基于EMF的,也使用了Henshin库和FeatureIDE库,展示效果如图所示。
本文数学推导较多,概念十分抽象,阅读难度较大。整体概念还是很扎实有趣的,严肃活泼。