笔记:Solving the Instance Model-View Update Problem in AADL
Solving the Instance Model-View Update Problem in AADL
Abstraction
The Architecture Analysis and Design Language (AADL) is a rich language for modeling embedded systems through several constructs such as component extension and refinement to promote modularity of component declarations. To ease processing AADL models, OSATE, the reference tool for AADL, defines another model (namely ‘instance’ model) computed from a base ‘declarative’ model/s. An instance model is a simple object tree where all information from the declarative model is flattened so that tools can easily use this information to analyze the system. However for modifications, they have to make changes in the complex declarative model since there is no automated backward transformation (deinstantiation) from instance to declarative models. Since the instance model is a ‘view’ of the declarative model, this is a view-update problem. In this paper, we propose the OSATE Declarative-Instance Mapping Tool (OSATE-DIM1 ), an Eclipse plugin for deinstantiation of AADL models implementing a solution of this view-update problem. We evaluate OSATE-DIM with a benchmark of existing AADL model processing tools and verify the correctness of our deinstantiation transformations. We also discuss how our approach could be useful for decompilation of Object-Oriented languages’ intermediate representations.
在写法上很受启发的一篇工程文章。作者修补了AADL工具OSATE的图形化显示同步问题,提出了OSATE-DIM工具并开源。
OSATE存在一个问题:修改图形之后对应的文本不能自动更新,也就是Instance model和Declarative model之间并不是天然的一一对应。Declarative model作为文本模型,能生成Instance model,但是如果直接修改Instance model,Declarative model不会发生变化。为解决这个问题,作者首先在2.1节介绍了AADL的元模型和类继承情况,然后在2.2节用数学语言介绍了两种不同的文本和图形映射关系,参考的是Lenses的框架(原文引用8),本文使用的是通过监控变化量,来反向修补模型变化的。3.1节提出假设条件,3.3节围绕一个案例做了几种转换分析,3.4节说明了避免冲突的措施。第4节介绍开发的工具,包括场景和选择参数配置。第5节评估,称其在两个例子上做了测试。第6节对一些问题做了讨论(没看太懂),介绍了相关工作,并无其他实验和量化。