笔记:Product Lines of Graphical Modelling Languages
Product Lines of Graphical Modelling Languages
Abstraction
Modelling languages are essential in many disciplines to express knowledge in a precise way. Furthermore, some domains require families of notations (rather than individual languages) that account for variations of a language. Some examples of language families include those to define automata, Petri nets, process models or software architectures. Several techniques have been proposed to engineer families of languages, but they often neglect the language’s concrete syntax, especially if it is graphical.
To fill this gap, we propose a modular method to build product lines of graphical modelling languages. Language features are defined in modules, which comprise both the abstract and graphical concrete syntax of the feature. A language variant is selected by choosing a valid configuration of modules, from which the abstract and concrete syntax of the variant is synthesised. Our approach permits composition and overriding of graphical elements (e.g., symbol styles, visualisation layers), the injection of pre-defined graphical styles into language families (e.g., to obtain a high-intensity contrast variant for accessibility), and the analysis of graphical conflicts at the product line level. We report on an implementation atop Eclipse/Sirius, and demonstrate its benefits by an evaluation which shows a substantial specification size reduction of our product line method with respect to a case-by-case specification approach.
本文是对MODELS2022年论文的延续,之前关注的是元模型和模型操作两件事,这篇是对模型家族在Sirius中的显示与操作问题做扩展。Sirius的图形编辑本质上是用.odesign文件控制的,因此本文提出了一种元模型,对这种映射关系做了建模,来支持家族模型结构到Sirius上的元素映射。
第二节都是在回顾Capone的概念和数学模型,工具上也是开发了扩展版的Capone-CS,也就是添加了对Sirius的支持。第三节专门讲元模型和对Sirius是如何映射的。第四、五节讨论了一些细节问题。第六节是对软件的简介,如图所示。