模型驱动架构的研究及工具实现.doc

上传人:sccc 文档编号:5196675 上传时间:2023-06-13 格式:DOC 页数:8 大小:158KB
返回 下载 相关 举报
模型驱动架构的研究及工具实现.doc_第1页
第1页 / 共8页
模型驱动架构的研究及工具实现.doc_第2页
第2页 / 共8页
模型驱动架构的研究及工具实现.doc_第3页
第3页 / 共8页
模型驱动架构的研究及工具实现.doc_第4页
第4页 / 共8页
模型驱动架构的研究及工具实现.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《模型驱动架构的研究及工具实现.doc》由会员分享,可在线阅读,更多相关《模型驱动架构的研究及工具实现.doc(8页珍藏版)》请在三一办公上搜索。

1、精品论文模型驱动架构的研究及工具实现王持响 北京邮电大学电子工程学院,北京(100876) E-mail: buptwcx摘要:本文首先分析了传统软件开发模式所面对的困难,引入了新的软件开发模式-MDA。然后全面的介绍了 MDA 的相关理论及技术,并深入的阐述了 OMG 定义的 MDA 的四个核 心标准:UML,MOF,CWM,XML。在对目前现存的一些开源组件进行了分析比较的基 础上,本文自主创新,设计实现了一个 MDA 转换工具 P&C MDA。为了验证这个工具的可 行性,进行了一个实例验证。在本论文工作的实践过程中,深入掌握了 MDA 开发方法的知 识,积累了实际经验,验证了 MDA 在

2、加快系统开发进程、提高软件应变能力等方面的作用。 本文最后,对整个系统的开发过程进行了总结,指出了开发过程中体验到的不足之处和为完 善 MDA 思想的需要进行探索的可能方向。关键词:MDA;转换;P&C MDA中图分类号:TP311.521.引 言计算机硬件技术的日益进步往往伴随着软件应用领域的蓬勃发展。虽然现在可以创建比 以前更复杂更庞大的系统,但也不得不面临随之而来的各种各样的问题:程序员对于需求的 不断变更而疲惫不堪;文档的补充和维护困难重重;软件的质量和复用度差强人意;异构平 台的整合需求也迫在眉睫。下面从传统的软件开发模式谈起,分析了他们优缺点,逐渐的引 出新型的软件开发模式。软件开

3、发模式的发展1,从最初的曾经风靡一时的面向过程的开发模式,到面向对象的 开发模式直到现在逐步占据舞台的面向方面的开发模式,可以说每一种开发模式都顺应了当 时软件设计的需要,但是随着人们对开发模式的应用和理解的深入,它们的弊端也就日益显 现,从而才促进了开发模式的进步。面向过程的开发模式,简要的讲就是将复杂的问题分解成简单的问题,然后再逐个解决。 它的缺点就是代码松散凌乱,代码之间的调用非常复杂。面向对象(Object Oriented)的开发模式,顾名思义,它的核心思想就是对象。世间万 物都是由对象组成,因此我们解决问题时可以以对象为单位,将表示事物属性的数据和事物 特性的动作封装起来组成系统

4、单元。这种面向对象的思想使得人们可以从非常自然的角度来 分析和计算现实世界的问题,它很好地解决了对象的数据抽象和封装,以其显著的优势二十 多年来获得了极大的发展,直到现在,面向对象思想依然是整个程序开发行业的支柱。自上个世纪末,特别是 Internet 应用的普及以来,软件需求与日俱增、软件复杂度越来 越高,软件设计遇到前所未有的挑战。开发人员在应 OO 方法过程中也越来越多地发现了其 局限性。由于一些设计环节跨越多个功能模块,难以清晰地捕获,只能在实现时将其散乱地 分布在各个相关模块中。从而导致软件的开发过程变得复杂,也使得设计模型和代码变得难 以理解和维护。这引起人们对分离关注点这一软件工

5、程的基本原则的重视,以解决横切关注 点的分离和处理问题。面向方面程序设计 AOP(Aspect-oriented programming)正是为解决上述问题而提出的一 种新的方法。AOP 是实现分散关注的编程方法,它将“关注”封装在方面模块中。尽量将基 本业务逻辑和完成特殊目的的关注点,如同步、日志、实时控制等分离开来,增强程序中不 同信息的模块化、局部化,使得它们更容易编写、理解、重用和修改,获得更利于重用和维- 8 -护的软件。在程序设计方法逐步发展的同时,软件开发方法学也在不断进步。同样是在面向方面出 现的 1997 年,另一个具有重要意义的软件理论- 模型驱动架构 MDA(Model

6、Driven architecture)的开始萌芽2。MDA 是对象管理组织(Object Manage Group)3提出的一种以模型为中心的软件开发 方法学,它改变了传统的以代码为中心的软件开发模式,将建模用作一种编程语言而不仅仅是设计语言。MDA 使用建模语言来代替编程语言来进行软件开发,使用模型转换技术产出 代码。它将软件系统的模型分离为平台无关模型(PIM)和平台相关模型(PSM),同时又通过 转换规则将它们统一起来,以这样的方式试图去摆脱需求变更带来的困境并带来设计层次的交换和重用。平台无关模型是对系统高层次的抽象,其中不包括任何与实现技术相关的信息,平台相关模型是与特定平台相关的

7、模型,包含了特定实现平台的信息。在 MDA 框架中首先 使用平台无关的建模语言来建立平台无关模型,然后根据特定平台和实现语言的映射规则, 将 PIM 转换以生成 PSM,再由 PSM 生成应用程序代码和测试框架。MDA 是一种基于 UML 及其它工业标准如 XMI,CWM,MOF 等的一个框架,支持了 模型的可视化、存储、交换。MDA 可以创建出机器可读的、高度抽象的模型。这些模型独立于特定的技术实现,以标准化的方式存储,因此,它们可以被重复访问,也可以自动转化为代码框架、测试工具、集成化代码以及特定于平台的部署描述。 作为未来软件开发方法的框架,MDA 一经提出便受到广泛的关注,它的发展极为

8、迅速。几年来,MDA 的理论研究和规范的制订都取得了极大的成功,工具支持也日益增多,包括微软、IBM 到各种中小型工具纷纷提供支持。MDA 的应用研究己经极其广泛。 目前国外已经出现了不少优秀的工具和平台以支持 MDA 方法。如法国公司 Softeam 的Objecteering 工具,它是第一个完全支持 MDA 方法的 CASE 工具。其它公司如 TogetherSoft 的 Together ControlCenter,Rational 的 Rational XDE,Interactive Objects Software 的 ArcStyler,Compuware 的 OptimlJ 都

9、采用了 MDA 思想。国内金蝶软件的 BOS 基础平台、上海普元公司的 EOS 应用软件平台、北京凯科思特公 司的 KCOM 商业工程企业应用平台都声称其实现了 MDA 方法。目前 MDA 依然处在发展中,PIM ( PIM, Platform Independent Model,平台无关的模型) 到 PSM(PSM, Platform Specific Model,平台相关的模型)的定义尚未标准化,分析设计人员 需手工将 PIM 转换成 PSM,使用 MDA 工具来辅助手工转换。2.模型驱动架构 MDA2.1 MDA 的核心概念MDA 中的核心概念4有模型、抽象、视角、平台相关、平台无关、映

10、射。1、模型 模型是对系统的一部分结构、功能或行为的形式的规约,是用精确定义的语言对系统(或系统的一部分)做出的描述。首先,模型是一种系统规约,这种规约可以是对结构的规约或 者是对系统功能或系统行为的规约;其次,这种规约必须是形式的,即必须使用一种严格定 义没有歧义的语言。所以一个模型必须和一种严格定义了语法和语义的建模语言绑定在一 起。使用 UML 进行建模可以得到相当精确的模型,这些模型表达了系统各个层面的特征, 在类似的系统开发中可以得到重用。2、抽象、视角一个客观系统的规约可以处于不同层面上。一个系统的任何规约都只是从一个特定的角 度描述这个系统的某个层面,都是对这个客观系统的某种程度

11、上的抽象。这种特定的角度(或 抽象的程度)就是视角。抽象是省略掉无关的细节。3、平台无关模型和平台相关模型在 MDA 中,平台指的是和系统的基础功能无关的技术细节平台无关模型(PIM, Platform Independent Model)对系统的结构和功能进行抽象的规约, 不带有具体实现的技术细节。这种模型描述系统独立于任何实现平台的结构和功能特征。而 包括特定技术细节的模型,就是平台相关模型(PSM,Platform Specific Model)。这种模型描 述建立在特定技术基础之上的系统结构和功能特征。4、映射映射(mapping)是一种规约,它包含规则以及其它一些信息,用于从 PIM

12、 中生成 PSM 。2.2 MDA 的四个核心标准2.2.1CWM(Common Warehouse Meta-model,公共仓库元模型)CWM 定义了一个元模型,用来表述数据仓库和业务分析领域中的业务和技术元数据, 它是在异构的,不同厂商软件系统中交换元数据实例的基础。遵循 CWM 元模型标准的系统 可以通过一致的元模型格式交换元数据。CWM 包含有一系列的元模型,它们能表述数据资源 (data resources)、分析器 (analysis)、 数据仓库管理(warehouse management)以及典型数据仓库/业务智能环境。数据资源元模型能 对遗留和非遗留数据资源建模,包括关系

13、数据库、面向记录的数据库以及基于 XMI 和对象 的数据资源。CWM 的分析器中定义了一个元模型,用于数据交换、OLAP、信息可视化报 告、业务专门用语和数据挖掘。数据仓库管理部分包括表述标准数据仓库过程的元模型、活 动跟踪和安排。基本的元模型支持不同通用元素和服务的规格说明,如数据类型、类型系统 映射、抽象主键和索引、表达式、业务信息和基于构件的软件实施。CWM 表述了在软件系统之间交换元数据的基于模型的方法。产品间相互基于 JZEE 平 台的 MDA 模型转换研究共享的元数据用与一个或多个 CWM 元模型一致的数据模型表示。 一个产品输出元数据时,根据 CWM 的标准,用自己内部的元数据结

14、构表示模型。类似地, 当产品输入元数据时,根据与 CWM 标准一致的模型,将其映射到自己内部的元数据中。 CWM 所提供的元模型足以对整个数据仓库建模。通过使用遵循 CWM 标准的工具,可以从 数据仓库模型中直接生成一个数据仓库实例。这个工具的不同部分可以给不同需要的工具使 用。CWM 模型要有较高的类属性和对共享元数据的外部表述。对于不符合 CWM 格式的元 数据,可以通过 CWM 提供的标准扩展机制,向核心 CWM 元模型扩展。2.2.2 UML(Unified Mode Language,统一建模语言)UMI 是一种为离散系统建模的图形化语言。虽然我们没必要将 UML 与特定的应用领域

15、和建模过程绑在一起,但它却最广泛的应用在面向对象软件设计领域中。现在,UML 己经 MOF、XMI 构成了 OMG 元数据体系结构的基础之一(CWM 是领域相关的扩展)。UML 中不同的建模元素能对静态和动态方面建模。UML 静态模型包括类、属性、操作 和接口。类之间标准的关系有继承泛化、关联、依赖和包含,这些都能用 UML 类图建模。对于系统中动态语义的建模,可以用顺序图和协作图。状态机可以用于对象内部活动的描述。UML 中的用例图描述面向对象分析和外部系统行为的建模。UML 还提供了包、构件等概念, 并且可以将其配置到分布计算体系结构的结点中。UML 由元模型形式化定义,这个元模型是用 U

16、ML 循环定义的。这种元模型循环定义 使得 UML 基于一个小的元素集合。MDA 中的模型基本上是用 UML 来表示的,CWM 同样也是用 UML 描述的。UML 虽 然是定义 CWM 的符号基础,但 CWM 同时也扩展了核心 UML 元模型的子集,添加了数据 仓库和业务分析领域的概念。构建基于 CWM 的数据仓库模型时,与其它的建模语言(如文 本的)相比,使用可视化的建模语言更容易操作和理解复杂的元数据结构。另外,由于 UML 元模型较精确地定义了 UML 语言 UML 的语义虽然不够精确,但与其它可视化建模语一言 相比,它在语义精确度和符合的可读性上有较好的折衷),因此可视化的 UML 模

17、型向其它的 形式化规约转换的自动化程度相对较高。这就方便了在不同平台和不同工具间的 CWM 模型 的交换。2.2.3 MOF(Meta-Object Facility,元对象设施)MOF 是 OMG 的一个标准,用来给元模型规格说明定义通用、抽象的语言。MOF 是元-元模型的一个例子,或者是元模型的模型。MOF 从根本上是支持面向对象的概念的,它为 离散系统的面向对象定义了基本的元素、语法和元模型结构。MOF 可以看作是 CWM 和 UMIJ 元模型的通用模型。MOF 的规格说明提供了:(1)一般的 MOF 对象及其关联的抽象模型; (2)任一基于 MOF 的元模型到与语言无关的接口(CORB

18、A IDL 中定义)的映射规则。通过一 个给定的元模型的这些接口,可以对任意基于这些元模型的模型进行访问和修改;(3)基于 MOF 元模型元素的生存周期语义、构成语义和闭包语义的定义规则;(4)一种反射接口 (Reflective Interface)结构。定义了对基于 MOF 元模型的显示和操作,而它们的映射接口是 未知的。MOF 用另一种方法实现不同领域的不同元模型之间的互操作。基于 MOF 的应用不用 关心某个模型实例接口所涉及的领域知识,而可以使用反射接口的一般操作对模型进行读取 和更新。MOF 被 OMG 作为表述元模型的标准,CWM 元模型也是遵循这一标准进行设计的,这 就使得 C

19、WM 能使用其它基于 MOF 的 OMG 的规格说明。特别的,它允许使用 XMI 交换设 计仓库元数据,这些元数据是用 CWM 元模型表述的:它还允许使用 XML 和其它编程语言 对基于 CWM 元模型的数据仓库元数据进行编程访问。2.2.4 XMI(XML Metadata Interchange,XML 元数据交换)XMI 的目标是以串行化的方式进行模型间的交换。由于 MOF 是 OMG 己采用的基于 JZEE 平台的 MDA 模型转换研究用的表述元数据的标准,那么,自然的,XMI 的目标是 MOF 元数据的交换,即符合 MOF 元模型的元数据。实际上,XMI 有两种映射:一个是 MOF

20、元模型和 XML 的 DTD:另一个是 MOF 元数据和 XML 文档。XMI 可以看作是一个与中间 件技术无关的通用元数据交换格式。任何能对 XMI 流进行编码和解码的元数据库或工具之 间可以进行元数据交换。CWM 用 XMI 作为它的交换机制,这意味着 XMI 强大的功能和灵活性可以用于数据仓 库元数据及 CWM 模型的交换上,CWM 不需要对 XMI 进行任何扩展。CWM 模型标准的DTD 是用 XMI 的 DTD 产生规则生成的。这样,可以用 XMI 的文档生成规则将数据仓库元数据编码成 XML 文档。CWM 元模型标准的 XML 文档也是用基于 MOF DTD 的 XMI 文档 生成

21、规则产生的。3.MDA 转换工具 P&C MDA 的设计开发3.1 转换工具 P&C MDA 开发环境和开发语言的选择Eclipse 是由 IBM 为主发起人5,并联合了众多软件工具开发厂商(Borland,Rational, Ret Hat,Together Soft,HP,Sybase 等)共同推动的通用开发环境 IDE 的开放源码项目。Eclipse 本身是一个开放的,通用的,可扩展的集成开发环境。通过集成各种插件,Eclipse 不仅可以成为几乎所有语言(Java2,C,C+,Cobol 等)的集成开 发环境,而且由于它本身是源代码开放的,开发者可以自己独立地开发工具,与其它标准工 具

22、无缝地集成。更吸引人的是,由于 Eclipse 平台是一个开放式结构,它能开发处理各种内 容的插件,包括 Java 文件,Web 内容,EJB 视频等任何格式的文件。Java 语言是一种网络编程语言6,因为问世比较晚,所以避免了许多其他编程语言的缺 点,并且很好的继承了其他编程语言的优点,总的来说它的优势可以从以下几个方面来阐述:1.平台无关性平台无关性是指 Java 能运行于不同的平台。Java 引进虚拟机 原理,并运行于虚拟机, 实现不同平台的 Java 接口之间。使用 Java 编写的程序能在世界范围内共享。Java 的数据类 型与 机器无关,Java 虚拟机(Java Virtual

23、Machine)是建立在硬件和操作系统之上,实现 Java 二进制代码的解释执行功能, 提供于不同平台的接口的。2.安全性Java 的编程类似 C+,学习过 C+的读者将很快掌握 Java 的精髓。Java 舍弃了 C+的 指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过 指针侵入系统。Java 对程序提供了安全管理器,防止程序的非法访问。3.面向对象Java 吸取了 C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简 洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然 后通过上述特性反复利用。程序员只需把主要精力用

24、在类和接口的设计和应用上。Java 提供 了众多的一般对象的类,通过继承即可使用父类的方法。在 Java 中,类的继承关系是单一 的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java 提供的 Object 类及 其子类的继承关系如同一棵倒立的树形,根类为 Object 类,Object 类功能强大,经常会使 用到它及其它派生的子类。4.分布式Java 建立在扩展 TCP/IP 网络平台上。库函数提供了用 HTTP 和 FTP 协议传送和接受信 息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。5.健壮性Java 致力于检查程序在编译和运行时的错误。类型检查帮助检查出许

25、多开发早期出现的 错误。Java 自己操纵内存减少了内存出错的可能性。Java 还实现了真数组,避免了覆盖数据 的可能,这些功能特征大大提高了开发 Java 应用程序的周期。并且 Java 还提供了 Null 指针 检测、数组边界检测、异常出口、Bytecode 校验等功能。基于以上考虑,该转换工具拟基于 Windows 平台开发,开发语言为 java,开发环境为Eclipse。3.2 转换工具 P&C MDA 功能简介该工具的主要功能是读取已经编写好的 XML 文件和对应的 XSLT 样式表,利用工具进 行 XML 文件基于 XSLT 转换规则的转换,转换生成的文档为 HTML 格式。3.3

26、 转换工具 P&C MDA 的组成由该转换工具的主要功能可知它应该主要分为以下几个模块:XSLT 处理器(Processor)、 模板(Template)、转换模块(Transform)、输出模块(Serialize)、库(LIB)。各个模块的主要功能介绍如下:1.XSLT 处理器(Processor):XSLT 样式表(Stylesheet)的处理器。2.模板(Template):定义了一系列 XSLT 样式表的类。3.转换模块(Transformer):负责实时的转换和结果树的产生。4.输出模块(Serializer):串行化输出结果。5.库(LIB):包含了所有可能用到的 lib 类。3

27、.4 转换工具 P&C MDA 工具的系统结构图TemplateProcessorTransformerSerializerLIB图 1 P&C MDA 工具3.5 转换工具 P&C MDA 工具的 Applet 界面图 2 P&C MDA 工具界面3.6 转换工具 P&C MDA 的使用步骤第一步:将需要转换的 XML 文件和相应的 XSL 转换规则文件放入制定的目录下; 第二步:打开转换工具的 Applet 界面,选择文件名和需要显示的结果类型; 第三步:点击 Transform 按钮进行转换。3.7 转换工具在 MDA 过程中的作用MDA 的过程可以说是从平台无关模型向平台相关模型的一个

28、转换过程,在这里 XML 文件就是平台无关模型的一种,而 XSL 文件就是转换规则,最后的 HMTL 文件是平台相关 模型的一种。因此,转换工具这里充当的是一个平台的角色,给 MDA 的转换提供了一个平 台。4.结束语4.1 本文的总结本文首先系统的对 MDA 已有的一些理论,标准进行了研究,并对 MDA 的四个核心标 准进行了深入的阐述。为了验证 MDA 在软件开发方面的优越性,研制开发了一个 P&C MDA 转换工具,为 MDA 的进一步实用化提供了一个实现途径。在转换工具的开发过程中,遇见了各种各样的问题,主要包括以下几个方面:第一,工 具开发设计的语言范围很广泛,其中有 Java,Ja

29、va script,XML,XSLT,HTML,需要补充的 知识很多;第二,在工具的应用的范围和功能上,还有比较大的缺陷,例如不能在转换工具 上来编写 XML 和 XSL 文件等;第三,转换工具还没有独立的软件界面。这个工具的开发只是 MDA 思想在软件开发应用上的一个尝试,MDA 要想在软件开发 上进一步的发挥更大的作用还需要我们不断的努力。然而 MDA 在提高软件开发效率,软件移植性方面的功效已经日益显现,可以说它能很好的解决软件开发方面出现的一系列问题。本 MDA 工具支持 XML 的文件输入,而 XML文件在表示 UML 类图方面的技术问题业已解决,因此本工具完全支持从 UML 类图向

30、平台 相关模型的转换,该转换可以直接生成平台相关模型中大部分代码,极大的提高城站效率, 这在大型系统开发中尤其具有重大意义。综上所述,可以预见 MDA 必然是软件开发的主流趋势,而本文的研究对 MDA 的进一 步开发应用具有重要的参考意义。5.致谢首先要感谢我的导师,感谢她三年来给我的关心和指导。还要感谢带我的博士,正是他 们孜孜不倦的教诲才让我从三年的研究生学习中找定了自己的方向,让自己有一个准确的职 业生涯定位。感谢我的家人对我的默默的支持,我衷心祝福他们身体健康,快乐,幸福!参考文献1 OMG, Object Management Group,http:/www.omg.org,2005

31、. 2 3 杨芙清.软件工程技术发展思索.软件学报,2005.1,16(23):1-7.4 王赟华,陈蔚薇.模型驱动开发方法的应用研究 计算机工程 2006 年 13 期. 5 陈刚.Eclipse 从入门到精通,清华大学出版社,2005 年 6 月.6 Brute Tate,“轻量级开发的成功秘诀”,DeveloperWorks,2005 年 8 月 15 日The Research and the Tools Implement of Model DrivenArchitectureWang ChixiangBeijing University of Posts and Telecommu

32、nications, Beijing (100876)AbstractThis paper analyzes the difficulties of traditional modes of software development and proposes the newmode of software development. Then this paper introduces theories and technologies of MDA totally and introduces us four core standards of MDA definition by OMG ex

33、tensively: UML, MOF, CWM, XML. Then I develop a transformation tool-P&C MDA in the basis of comparison of extant technologies and validate it with an example. In the practice of this paper, I grasp the knowledge to develop MDA, accumulate actual experience and validate the functions of MDA in the aspects of speeding up the develop of system and increasing the strain capacities of software. Finally, this paper summarize the develop process of the whole system, point out the shortcoming of the tool and possible directions to develop MDA .Keywords: MDA; Transformation; P&C MDA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号