摘 要:
关键词:
引言
模型驱动架构(Model Driven Architecture,MDA)是由对象管理组织定义的一个软件开发框架。它吸收了快速原型法的原型思想、极限编程的快速思想,继承了流行的RUP开发过程的分析、设计思想。在此基础上,继续提升模型的抽象层次,使得模型与系统的最终实现紧密地结合在一起。
MDA将软件系统的模型分为平台无关模型PIM(Platform-Independent Model)和平台相关模型PSM(Platform-Specific Model),同时又能通过转换规则将它们统一起来,以这样的方式来解决需求变更所带来的问题。PIM是对工作流程的高层次抽象,其中不包括与实现技术相关的信息,PSM是跟特定平台相关的模型,在需求分析阶段要使用平台无关的建模语言,来针对业务过程搭建平台无关模型PIM。然后,在低层次设计阶段PIM将被转换成一个或多个平台相关模型PSM,这个翻译的过程一般是自动实现的,它将用到这种技术所提供的种种架构,比如EJB,数据库模型,COM组件等等。之后,在编码和测试阶段根据特定平台和实现语言的映射规则,自动生成应用程序代码和测试框架。MDA的出现,为提高软件开发效率,增强软件的可移植性,协同工作能力和可维护性,以及文档编制的便利性指明了解决之道。
1.MDA的两个重要模型
在MDA中,软件开发过程是由软件系统的建模行为驱动的。下面介绍MDA中的两个重要模型:
1.1平台独立模型(PIM)
MDA定义的第一模型是具有高抽象层次,独立于任何实现技术的模型,我们把这类模型叫做平台独立模型,PIM描述支撑某些业务的软件系统。
1.2平台相关模型
平台相关模型PSM是为某种特定实现技术量身定做的。在PSM中使用这种技术中可用的实现构造来描述系统。
2.四个核心规范
2.1 UML
UML是MDA存在的基础,使用MDA技术创建的所有应用程序都基于标准化的,平台独立的UML模型。UML被MDA用来描述各种模型。它并不是为MDA而生,但是作为目前最为风行的建模语言,UML已经占据了全球建模语言领域90%的市场份额,成为了建模语言事实上的标准。它是MDA的基础,也是MDA最有力的武器。
2.2 MOF
MOF(Meta Object Facility,元对象机制)是比UML更高层次的抽象,它的目的是为了描述UML的扩展或者其他未来可能出现的类UML的建模语言。
2.3 XMI
XMI(XMI Based Metadata Interchange)是基于XMI的元数据交换。它通过标准化的XML文档格式和DTD(Document type Definitions)为各种模型定义了一种基于XML的数据交换格式。
2.4 CWM
CWM(Common Warehouse Meta Model,公共仓库院内模型)提供了一种数据格式交换的技术,在任意级别的模型上都可以使用CWM来描述两种数据模型之间的映射规则。
3. MDA开发过程(基于MDA的网上购物系统的研究)
3.1需求分析阶段
在MDA软件生命周期中,需求分析和PIM模型设计对后续的工作起着指导性的作用,并对软件产品的最终交付具有评价、审定、鉴定的作用。不充分、不全面的需求分析会导致系统的功能不完善,质量和寿命也都将受到影响,因此在需求上多花些时间是完全必要的。
3.1.1 系统需求
(1) 订单由多个订单项组成,每个订单项对应一种类型的产品。任一时刻,一个用户至多有一个处于未支付的状态的订单。当用户完成某次支付后,没有订单处于未支付的状态。下次用户再次购物,添加第一个订单项时,系统会为用户新建一个未购买状态的订单,然后创建一个订单项挂到当前未购买的订单下。
(2) 能够增加和修改订单。增加订单在前面已经提及,修改订单是通过增删订单项来完成的。
3.1.2 性能需求
(1) 融变换工具和代码生成器为一体,给出从PIM到PSM(包括SQL、JAVA、JSP三个部分)的直接转换。将源代码自动编译,再将包含所有必需文件的目录结构打包,形成一个能够直接部署的包文件,方便用户部署。
(2) 重视界面各类操作的方便性、可靠性、正确性。在输入数据时,用户能以最简便、可靠的方式完成输入,并保证输入数据的正确性,对输入数据进行合法性检查和限制。
3.2 系统设计阶段
MDA的软件开发是利用了可视化的标准建模语言UML,并依赖于三个关键观点:模型驱动、迭代和增量开发。设计阶段分为总体设计和详细设计两个过程,PSM是与具体的系统实现平台相关的模型,尽管PSM模型本身也是使用UML语言进行描述的,但它在图中表示的模型都是各个平台所专有的,具有各个平台的基本特征。
3.2.1 总体设计形成PIM
平台无关模型PIM是系统的原型表示,它主要采用了标准建模语言UML来表示其构成。由于UML本身表示能力的限制,在表示系统约束方面又引入了OCL(Object Constraint Language)对象约束语言,在表示UML行为模型的语义上引入了AS(Action Semantics)动作语义。平台无关模型PIM的形成是在需求分析所形成的用例视图基础上,首先对系统的各个用例进行扩展,形成“扩展用例”。对每个用例,还要建立活动图和顺序图或协作图,来描述模块的工作流程和揭露系统的内部运作过程。然后从系统的业务概念模型和各个视图模型中分析出系统所需要的基本的类,绘制类图。类图展示了一组类、接口及它们之间的关系,在高层给出类的主要职责,在低层给出类的属性和操作。系统可有多个类图,单个类图仅表达了系统的一个方面。分析完所有的用例并为每个用例创建类图后,就需要结合各种不同的分析类来得到一个统一的分析类模型,即系统的PIM模型。在系统PIM模型形成后,可以将其转换到一个或者多个平台相关模型PSM,PSM是针对所选择的实现技术、平台,对系统度身定做的模型。
3.3 系统代码形成阶段
在系统特定平台模型PSM形成后,MDA中另一个重要的步骤就是将每个PSM都转换到代码。由于PSM模型中已经包含了大量的特定平台信息和业务属性信息,所以PSM与具体的系统实现代码模型已经很接近,因此这种转换应该是比较直接的。从PSM模型自动生成的代码分为两部分:第一部分是由代码生成器维护,不能修改,这既是为了保证协作各方的基础框架的一致性,又是为了维护形成的一系列系统设计模型的规范性和一致性;第二部分是由开发人员维护,因此可以自由修改,这保证了系统开发的灵活性和实现细节上的多样性。
4.结束语
MDA软件开发过程中的主要产品是一系列不同抽象层次的系统模型,在对模型进行不断细化后,通过模型之间的转换而最终形成应用系统。这种把模型作为系统本身的一部分,将模型贯穿于系统开发全过程的思想,提升了模型的作用,增加了模型的可移植性和互操作性。可见,MDA的应用将带来开发时间减少、开发成本降低、代码质量提高、代码复用提高,以及与应用需求更好的吻合等诸多优点。