[Journal First] A Posteriori Typing for Model-Driven Engineering: Concepts, Analysis, and Applications

J. de Lara, E. Guerra
{"title":"[Journal First] A Posteriori Typing for Model-Driven Engineering: Concepts, Analysis, and Applications","authors":"J. de Lara, E. Guerra","doi":"10.1145/3180155.3182545","DOIUrl":null,"url":null,"abstract":"Model-Driven Engineering (MDE) is a software engineering paradigm where models are actively used to specify, test, simulate, analyse and maintain the systems to be built, among other activities. Models can be defined using general-purpose modelling languages like the UML, but for particular domains, the use of domain-specific languages is pervasive. Either way, models must conform to a meta-model which defines their abstract syntax. In MDE, the definition of model management operations – often typed over project-specific meta-models – is recurrent. However, even if two operations are similar, they must be developed from scratch whenever they are applied to instances of different meta-models. This is so as operations defined (i.e., typed) over a meta-model cannot be directly reused for another. Part of this difficulty of reuse is because classes in meta-models are used in two ways: as templates to create objects and as static classifiers for them. These two aspects are inherently tied in most meta-modelling approaches, which results in unnecessarily rigid systems and hinders reusability of MDE artefacts. To enhance flexibility and reuse in MDE, we propose an approach to decouple object creation from typing [1]. The approach relies on standard mechanisms for object creation, and proposes the notion of a posteriori typing as a means to retype objects and enable multiple, partial, dynamic typings. A posteriori typing enhances flexibility because it allows models to be retyped with respect to other meta-models. Hence, we distinguish between creation meta-models used to construct models, and role meta-models into which models are retyped. This permits unanticipated reuse, as a model management operation defined for a role meta-model can be reused as-is with models built using a different creation meta-model, once such models are reclassified. Moreover, our approach permits expressing some types of bidirectional model transformations by reclassification. The transformations defined as reclassifications have better performance than the equivalent ones defined with traditional transformation languages, because reclassification does not require creating new objects. In [1], we propose two mechanisms to define a posteriori typings: type-level (mappings between meta-models) and instance-level (set of model queries). The paper presents the underlying theory and type correctness criteria of both mechanisms, defines some analysis methods, identifies practical restrictions for retyping specifications, and demonstrates the feasibility of the approach by an implementation atop our meta-modelling tool MetaDepth. We also explore application scenarios of a posteriori typing (to define transformations, for model transformation reuse, and to improve transformation expressiveness by dynamic type change), and present an experiment showing the potential performance gains when expressing transformations as retypings. The tool is available at http://metadepth.org/. A catalogue of transformations expressed as retypings, and retypings bridging recurring meta-model heterogeneities, are available at http://miso.es/aposteriori/. [1] Juan de Lara and Esther Guerra. 2017. A posteriori typing for model-driven engineering: Concepts, analysis, and applications. ACM Trans. Softw. Eng. Methodol. 25, 4 (2017), 31:1–31:60. https://doi.org/10.1145/3063384","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"18 1","pages":"1136-1136"},"PeriodicalIF":0.0000,"publicationDate":"2018-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3180155.3182545","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Model-Driven Engineering (MDE) is a software engineering paradigm where models are actively used to specify, test, simulate, analyse and maintain the systems to be built, among other activities. Models can be defined using general-purpose modelling languages like the UML, but for particular domains, the use of domain-specific languages is pervasive. Either way, models must conform to a meta-model which defines their abstract syntax. In MDE, the definition of model management operations – often typed over project-specific meta-models – is recurrent. However, even if two operations are similar, they must be developed from scratch whenever they are applied to instances of different meta-models. This is so as operations defined (i.e., typed) over a meta-model cannot be directly reused for another. Part of this difficulty of reuse is because classes in meta-models are used in two ways: as templates to create objects and as static classifiers for them. These two aspects are inherently tied in most meta-modelling approaches, which results in unnecessarily rigid systems and hinders reusability of MDE artefacts. To enhance flexibility and reuse in MDE, we propose an approach to decouple object creation from typing [1]. The approach relies on standard mechanisms for object creation, and proposes the notion of a posteriori typing as a means to retype objects and enable multiple, partial, dynamic typings. A posteriori typing enhances flexibility because it allows models to be retyped with respect to other meta-models. Hence, we distinguish between creation meta-models used to construct models, and role meta-models into which models are retyped. This permits unanticipated reuse, as a model management operation defined for a role meta-model can be reused as-is with models built using a different creation meta-model, once such models are reclassified. Moreover, our approach permits expressing some types of bidirectional model transformations by reclassification. The transformations defined as reclassifications have better performance than the equivalent ones defined with traditional transformation languages, because reclassification does not require creating new objects. In [1], we propose two mechanisms to define a posteriori typings: type-level (mappings between meta-models) and instance-level (set of model queries). The paper presents the underlying theory and type correctness criteria of both mechanisms, defines some analysis methods, identifies practical restrictions for retyping specifications, and demonstrates the feasibility of the approach by an implementation atop our meta-modelling tool MetaDepth. We also explore application scenarios of a posteriori typing (to define transformations, for model transformation reuse, and to improve transformation expressiveness by dynamic type change), and present an experiment showing the potential performance gains when expressing transformations as retypings. The tool is available at http://metadepth.org/. A catalogue of transformations expressed as retypings, and retypings bridging recurring meta-model heterogeneities, are available at http://miso.es/aposteriori/. [1] Juan de Lara and Esther Guerra. 2017. A posteriori typing for model-driven engineering: Concepts, analysis, and applications. ACM Trans. Softw. Eng. Methodol. 25, 4 (2017), 31:1–31:60. https://doi.org/10.1145/3063384
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
[j]模型驱动工程的后验分类:概念、分析和应用
模型驱动工程(MDE)是一种软件工程范例,其中模型被积极地用于指定、测试、模拟、分析和维护要构建的系统,以及其他活动。可以使用像UML这样的通用建模语言来定义模型,但是对于特定的领域,使用特定于领域的语言是普遍的。无论哪种方式,模型都必须符合定义其抽象语法的元模型。在MDE中,模型管理操作的定义(通常在特定于项目的元模型上键入)是反复出现的。然而,即使两个操作是相似的,当它们应用于不同元模型的实例时,也必须从头开始开发。这是因为在一个元模型上定义的(例如,键入的)操作不能直接用于另一个元模型。重用的困难部分是因为元模型中的类以两种方式使用:作为创建对象的模板和作为对象的静态分类器。这两个方面在大多数元建模方法中是固有地联系在一起的,这会导致不必要的刚性系统,并阻碍MDE工件的可重用性。为了增强MDE中的灵活性和重用性,我们提出了一种将对象创建与类型分离的方法[1]。该方法依赖于对象创建的标准机制,并提出了后验类型化的概念,作为重新类型化对象和支持多个、部分和动态类型的方法。后验类型增强了灵活性,因为它允许模型相对于其他元模型重新类型化。因此,我们区分了用于构造模型的创建元模型,以及将模型重新类型化的角色元模型。这允许意外重用,因为为角色元模型定义的模型管理操作可以与使用不同创建元模型构建的模型按原样重用,一旦这些模型被重新分类。此外,我们的方法允许通过重新分类来表达某些类型的双向模型转换。定义为重分类的转换比使用传统转换语言定义的等效转换具有更好的性能,因为重分类不需要创建新对象。在[1]中,我们提出了两种机制来定义后验类型:类型级(元模型之间的映射)和实例级(模型查询集)。本文介绍了这两种机制的基本理论和类型正确性标准,定义了一些分析方法,确定了重类型规范的实际限制,并通过在元建模工具MetaDepth上的实现演示了该方法的可行性。我们还探讨了后验类型的应用场景(定义转换,用于模型转换重用,并通过动态类型更改来改进转换的表达性),并提供了一个实验,展示了将转换表示为重类型时的潜在性能增益。该工具可在http://metadepth.org/上获得。表示为重类型的转换目录,以及桥接反复出现的元模型异构的重类型,可在http://miso.es/aposteriori/上获得。[1][参考文献]。模型驱动工程的后验类型:概念、分析和应用程序。ACM反式。Softw。Eng。方法学报,25,4(2017),31:1 - 31:1 . 60。https://doi.org/10.1145/3063384
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Launch-Mode-Aware Context-Sensitive Activity Transition Analysis A Combinatorial Approach for Exposing Off-Nominal Behaviors Perses: Syntax-Guided Program Reduction Fine-Grained Test Minimization From UI Design Image to GUI Skeleton: A Neural Machine Translator to Bootstrap Mobile GUI Implementation
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1