




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MDA专题报告 PIM到PSM的转换uPIM简介 uPSM简介uPIM到PSM的转换 PIM简介平台无关模型(Platform Independent Model 简称PIM) 它包含了我们对系统的所有规约,但是独立于任何实现平台。PIM模型获取和表达了我们建立的系统的所有业务需求,即PIM描述了除去细节的系统结构和功能,是从平台无关的角度得到的系统视图。它不是一个模糊地规约,而是被表示为精确的可执行UML(xUML)模型。 每个PIM描述系统的一个域(domain,表示系统中一个独立的主题事务),这些域组合起来就得到了一个对我们所需要的系统的完全的,可执行的描述。 用XUML将PIM表示成可
2、执行模型的好处是不用考虑具体的实现平台,使对模型的测试变得相对容易。 使用: PIM通常应用在MDA( 模型驱动架构)方法中。MDA方法是模型驱动工程(Model Driven engineering)的OMG(国际对象组织)实现版本。它的主要思路是能够使用MTL(Model Translation Language 模型转换语言)实现从PIM到PSM(Platform-specific Model 平台相关模型)的转换。可以使用一种兼容最新QVT(查询/视图/转换 QVT)标准的语言来实现,比如VIATRA(Visual Automated Model Transformations 可视化
3、自动转换模型)或者ATL(ATLAS Transformation Language)来实现。PSM简介平台相关模型(Platform specific model 简称PSM) PSM也用于描述系统,但它包含了最终实现平台的全部知识,也就是说PSM是在特定实现平台上系统功能的描述,建立在PIM之上,由PIM加入与平台相关的信息后转换得到的是实现代码生成的直接基础。PSM对于某一系统的具体实现是必不可少的。 例子 举例,假设要实现一个在线商城。系统需要存放关于用户、物品、信用卡等信息。设计人员可能会考虑使用Oracle 数据库来实现这一想法。设计人员需要使用Oracle的SQL语句来表达关系模
4、型中的概念(比如用户的概念)。这个明确的Oracle关系模型就是平台相关模型。 使用 PSM最常见于MDA(模型驱动架构)方法中,MDA是OMG(国际对象组织)对MDE(Model Driven Engineering)方法的具体实现。它的主体思路是应该能够通过使用MTL(Model Translation Language)实现从PIM到PSM的实现。 PSM有两种主要的表示方式:用UML表示的设计模型;用某一种语言描述的具体实现(又被称为平台相关实现PSI) 。PIM到PSM的转换u 模型转换 模型转换规则:源模型中一个或一些模型元素如何变幻为目标模型中一个或一 些模型元素的描述。模型转换
5、定义:一组转换规则的集合,这些规则共同描述了源模型如何转换为目标模型,无论源模型和目标模型是否属于同一个层次,也不管是否使用同种模型描述语言。模型转换:按照模型转换定义从源模型到目标模型的自动生成。源模型变换规则变换工具目标模型PIM到PSM的转换uMDA的开发过程:首先使用平台无关的建模语言(如UML)搭建PIM,然后根据基于特定平台的变换规则将PIM转换为PSM,最终生成应用程序代码和测试框架。MDA开发流程与传统软件开发流程的根本不同点在于:模型之间的转换由工具执行完成而不是手工,特别PIM到PSM转换过程的自动化成为整个开发过程的关键。因此,要实现PIM到PSM的自动转换,除了需要一定
6、的自动转换工具的支持外,根据特定平台明确定义的转换规则必不可少。一个定义良好的变换规则必须包含下列信息: (1)源语言和目标语言的引用 (2)可选变换参数 (3)来自源语言元模型的模型元素和来自目标语言元模型的模型元素 (4)变换方向标记(支持双向变换还是单向变换) (5)变换条件(包括源语言条件和目标语言条件) (6)源语言和目标语言变换映射集合。PIM到PSM的模型转换过程:在MDA中,PIM到PSM模型转换采用的是基于元模型间映射的模型转换方法,根据该方法的特点,模型转换规则定义经历了以下几个过程:(1)PIM元模型定义,该模型即为业务过程类元模型;(2)PSM元模型定义(3)模型转换规
7、则定义。解释:元模型是关于模型的模型,是关于如何建立模型、模型的语义或模型之间如何集成和互操作等信息的描述,是对某一特定领域建模环境的规范定义,它定义了该领域的语法和语义,能够表示该领域内的所有或部分系统。PIM到PSM模型转换工具PIM到PSM模型转换工具主要由模型转换控制器、规则匹配模块、规则执行引擎及信息操作转换引擎。模型转换控制器是控制PIM到PSM模型转换有序进行的调度器,它选择模型元素,调用规则匹配模块从规则库中选取匹配的规则集,将模型元素及规则集输入到模型执行引擎中进行模型元素转换。当规则执行引擎遇到信息操作转换引擎标记时,则将该标记及相关的参数收集起来返还给模型转换控制器,模型
8、转换控制器则调用模型转换引擎完成转换。主要的PIM到PSM模型转换方法1、手动转换方法 程序员使用可以访问和操作模型的API对源模型进行转换,到目标模型的方法。JMI就是一组专门用来对模型进行访问和操作的Java API。2、基于元模型的转换方法 变换过程由一个工具生成的变换引擎来完成,此变换引擎使用一对MOF模型来创建一个特定的变换引擎。3、以结构为驱动的模型转换方法 以结构为驱动的模型转换方法明显的分为两个阶段:第一个阶段是为目标模型创建相关的多层体系结构,第二个阶段是在目标模型中设置属性和索引。在整体的框架中确定了调度和应用的策略,用户只需要关心如何提供转换的规则。4、基于XSLT的模型
9、转换方法 XSTL(Extensible Stylesheet Language Transformations)是扩展样式表语言转换的缩写。其中XML和XMI是利用XSLT进行模型转换的基础。XMI通常作为模型的存储形式,因此XSLT成为了一种实用的模型转换语言。5、基于模式的模型转换方法 基于模式的模型转换就适合于完成模型进化,它的基本思想是实用设计模式定义转换规则,从而得到更加符合设计的目标模型。每条规则包括一个设计模式,可以采用模式的源模型元素以及一组约束。如果规约约束被满足,执行规则后就能得到包含模式实例的目标模型元素。6、混合的模型转换方法 可以充分利用其他各种方式的优点,同时避免其缺点,因此是一种比较灵活的方式。总 结MDA的出现可以极大地改变软件开发方式的潜力,使人们的关注焦点由代码转移到模型上来,特别是PIM模型的编写上。从PIM到PSM的映射本身也被表示为一个UML模型。因为PSM是由PIM通过映射直接变换过来的,因此我们不必维护和修改PSM,当业务需求有变化时,这些变化将在PIM中反映出来并在PIM中测试。从PIM到PSM的自动转换,使得需求和业务规则可以以一种抽象的、与实现无关的和形式化的方式来完全详述,并且可以被转换成为多种不同的实现。目标代码不需要直接人工维护,消除了传统开发过程所特有的冗余性。参考文献 1、李祥,基于MDA的PIM到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论