论文部分内容阅读
MDA是国际对象管理组织(OMG)为应对业务和技术的快速变化提出的一种开放、中立的系统开发方法和一组建模语言标准的集合。MDA以模型作为系统开发活动的主要制品,将一个应用或集成系统分离为表示商业和应用逻辑的平台无关的模型(PIMs)和表示平台技术的平台相关的模型(PSMs),通过模型转换实现PIMs到PSMs并最终到代码的(半)自动化生成,从而为解决各种互不兼容平台和中间件技术在系统集成和互操作方面存在的不足提供了新思路。
为实现MDA环境下以模型为中心的系统开发方法,元建模是极需研究的主题。元建模类似建模活动,它们之间的区别之一是建模的主题不同,元建模是对建模语言进行建模,以描述或定义建模语言的语法、语义和语用,为在MDA环境下定义和使用建模语言提供了理论和应用框架。元建模主要可分为两个刻面:元模型定义、模型组合与转换。元模型定义为模型组合与转换提供了词汇、结构和假设;模型组合使得来自相同或不同的元模型下的现有模型可通过组合方式构造出新的模型,它提供了一种领域知识设计件的重用途径;模型转换使得抽象模型可以被转换为更具体的模型、提供了构造新模型的另一种方式和为模型提供操作语义。但从目前的MDA几个重要标准如元对象设施(MOF)、统一建模语言(UML)、MOF查询/视图/转换(QVT)等来看,建模语言的定义和使用方面仍然存在一些问题,突出表现在:元模型定义的含糊性和循环定义、模型实例化术语的至少两种含义、多种元模型定义的交叉点问题、模型组合与转换缺乏统一考虑等。
本文认为仅使用图形、对象约束语言(OCL)和自然语言,不足以作为元建模活动的完备定义工具,没有具有良好语义基础、支持面向对象的中间文本语言作为元模型的定义、解释、推理、模型的组合与转换等活动的基准是导致上述问题的重要原因之一。具有良好语义基础的中间文本语言不仅仅提供了元模型的文本表示,更重要的是它的底层数学模型为元建模活动提供了坚实的理论基础。当元建模者带着该数学模型的意识进行元建模时,将有利于创建具有更清晰语义、更易推理和评价的建模语言。
在研究元建模理论、代数语义学的可执行代数规范基础上,本文提出了元建模的对象消息并发重写(OMCR)的方法。该方法以面向对象的可执行代数规范作为底层语义基础,为元模型形式化表示、模型检查、模型组合与转换等元建模活动提供了清晰的、具有可执行性的语义模型。
根植于代数项基础的值模型和类别基础的型模型,OMCR方法为元模型、元模型实例化和模型间的关系提供了更加准确、与实现无关的参照系。对MDA环境下的模型实例化关系术语的至少两种语义进行了划分,具体分为同层实例化关系和异层实例化关系,而不是笼统的实例化关系,这使得基于实例化关系的元模型定义技术具有了更明确的语义。通过重写逻辑的自反特性,对象级模型可被反射到上一元级并以元表示的形式而存在,由于重写逻辑的反射机制是无限的,因而为MOF、UML的元模型的循环定义提供了第二个参照系。通过观察和实例基础的证明显示出MDA4级元层次构架所存在的非完全反射和信息丢失问题,这为MDA4级元层次构架的未来改进提供了一种思路。
在等式逻辑和重写逻辑的基础上,OMCR方法统一模型组合与转换为模型操作。代数项重写系统对重写规则中变量绑定和传递等原则的规定,为模型操作中的模式变量的绑定原则提供了理论依据,有利于编写行为正确的重写规则。通过结合律与交换律(AC)并发重写,将模型操作表示为在模型的值空间中对象和消息两种代数项的对象配置(OC)重写和对象消息(OM)重写,两种重写规则间的协调通过消息传递实现。该计算模型即是OMCR计算模型的核心,它为结合规则基础的计算和对象/消息基础的计算提供了新的设计思路,使得OC和OM重写规则的可视化设计较容易通过UMLProfile或MOF领域的专用扩展实现,如扩展对象图以支持重写规则的定义。
在统一模型组合与转换为模型操作的基础上,OMCR方法将模型操作分为设计时模型操作和运行时模型操作,并指出运行时模型操作本质上是对模型的运行或模拟。以模型操作时是否存在相应的元模型为判定基准,运行时模型操作进一步分为模型模拟执行基础的级别和动态元建模基础的级别,并设计了相应的并发对象重写模型以定义这两种级别的计算模型。
在Maude可执行代数规范环境下为元模型形式化表示提供了三种风格的可执行代数规范以适应不同的元建模需要,开发了元模型到可执行代数规范映射算法、模型到代数项的双向映射算法、设计时模型检查的Bootstrap算法、模型组合与转换的并发对象重写模型等。通过可视化建模技术将可执行代数规范与元建模方法结合起来,提供了一个直观的面向对象的可执行代数规范的应用框架。