申云成,顾庆传
(昭通学院 信息科学与技术学院,云南 昭通 657000)
UML构造型类图到XMI的映射方法研究
申云成,顾庆传
(昭通学院 信息科学与技术学院,云南 昭通 657000)
[摘要]将UML模型信息转换成XMI中间标准格式,能够实现模型到模型转换,模型到代码自动生成,加快系统开发进度,提高软件质量。首先介绍了MDA,UML,XMI以及构造类图等基本概念,然后提出一种UML类图到XMI的映射算法,并根据XMI模式定义和UML类图映射规则对映射算法进行具体描述。最后通过一个具体的构造型类图到XMI的映射实例进行算法验证。实例表明提出的算法是切实可行的。
[关键词]UML;构造型;类图;XMI;映射
0引言
随着计算机技术和软件开发技术的发展,MDA的应用越来越广泛,数据交换和数据共享已经变得越来越重要[1]。现在,UML已经成为一种非常重要的建模技术,然而XML是一种用于数据存储的简单语言,同时也是一种很好的跨平台技术。因此,研究如何用XMI来表示UML模型成为近年来比较热门的方向。因此本文旨在研究如何用XMI来表示UML构造类图。
1基本概念
MDA是由OMG于2001年提出的新的软件开发方法学[2]。模型是MDA的核心,它作为系统的抽象,比实现系统更容易获得、理解和计算。MDA意识到自动化映射模型到代码实现这个过程的重要性。MDA包含的核心标准:MOF(Meta Object Facility,元对象机制),UML(Unified Modeling Language,统一建模语言),XMI(XML Metadata Interchange,XML元数据交换),CWM(Common Warehouse Metamodel,公共仓库元模型)[3,4]。
UML作为一种建模语言,它的定义包括UML语义和UML表示法两个部分。UML语义是描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。UML表示法是定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准[5]。
XMI(XML Metadata Interchange)是由OMG(Object Management Group)规定的跨平台模型信息元数据交换标准。XMI是根据MOF(Meta Object Facility)定义的元数据交换格式。XMI由两个元素构成:XML DTD产生规则和XML Document产生规则。
XMI虽然包含了XML DTD产生规则和XML Document产生规则,但是XMI并不是DTD也不是XSD。在XSD中,UML的属性直接映射成XML文件中的XML元素和属性。XSD模式能引用一组构造型、标记值和约束。
2UML类图到XMI的映射规则
因为UML元模型是UML本身的描述,所以只需要按照相应的构造块把UML元模型直接表示出来就可以得到XMI文档。我们可以用表1[6]来显示UML类模型到XMI的转换对应关系。
表1 UML类模型到XMI的转换对应关系
用伪代码描述UML类模型到XMI的转换算法如下:
For each class in Model
Print class information in XMI
For each attribute in class
Print attribute information in XMI
next
For each operation in class
Print operation information in XMI
Next
For each association in class
Print association information in XMI
Next
If exist attribute stereotype then
Print the class attribute stereotype
Endif
If exist operation stereotype then
Print the class operation stereotype
endif
If exist class stereotype then
Print the stereotype of the class
Print the stereotype of the class
endif
next
3构造型类图到XMI的映射
UML提供了几种扩展机制,允许建模者在不用改变基本建模语言的情况下做一些通用的扩展。这种扩展的方法很可能不能满足出现的多种要求,但是它以一种易于实现的简单方式容纳建模者对UML裁制的大部分要求。扩展机制包括约束、标记值和构造型。
构造型是在一个已定义的模型元素的基础上构造的一种新的模型元素。构造型的信息内容和形式与已存在的基本模型元素相同,但是含义和使用不同。构造型建立在已存在的模型元素基础上,构造型元素的信息内容与已存在的模型元素相同。这样便可允许工具以相同的方式存储和使用新元素和已存在的元素。构造型元素可以有它自己的区别符号,并且这很容易由工具所支持。构造型可以用标记值来存储不被基本模型元素所支持的附加特性。构造型用双尖括号内的文字字符串表示,它可以放在表示基本模型元素的符号的里边或旁边。建模者也可以为特殊的构造型创建一个符号,这个符号替代了原来的基本模型元素的符号。注意构造型名称不能和作用到相同的元素类型上的预定义关键字相同[7]。图1显示了以构造类模型。表2显示了构造型(stereotype)构造块和它所表示的含义。
下面通过一个具体的构造型类图实例来了解构造型类图到XMI的映射。本文基于StarUML开源模型工具,创建了一个UML构造型类图,如图2所示。图2显示了两个构造型类《entity》和《money》,一个普通类bankAccount,三个属性,五个操作。其中,number和owner属于类型为 string的普通属性,balance属于类型为double的《money》构造型属性。同样,deposit(),withdraw(),getnumber() 和getowner()为普通操作类型,getbalance()为《money》构造型操作。表3是图2所示构造型类所对应的XMI文档输出,输出的XMI根据各个元素划分成不同的几个部分。
表3 UML构造型类图部分元素及其对应的XMI输出
4小结
MDA的重要核心领域就是要实现信息的转换。XMI作为数据交换的中间标准格式,起到至关重要的作用。因此,从UML模型到XMI的转换成为非常重要的研究方向。本文提出了UML类图到XMI的映射算法,并通过一个构造型类图到XMI的映射实例进行验证。进一步的研究将包括UML模型其他类图,用例图,状态图等到XMI的映射研究以及XMI到UML模型的反向映射。
[参考文献]
[1]Object Management Group. MDA Specifications[EB/OL]. http://www.omg.org/mda/specs.htm.July, 2002.
[2]Anneke Kleppe, Jos Warmer, Wim Bast.解析MDA[M].北京:人民邮电出版社,2004. 5-17.
[3]MartinSoukup. ModelDrivenArchitecture: liance.org/proceedings/xml04/papers/200/MDA_Feasibility.Xml, 2004.
[4]David Frankel. Software Industrialization. A Perspective on MDA[R/OL]. http:// www.Peoplewarecn.com/webcast/DavidFrankelSoftwareIndust rialization.Pdf, 2003.
[5]刘征驰,基于UML的层次软件体系结构模型研究与应用[D].长沙:湖南大学,2004.19-20.
[6]Timothy J.Grose , Gary C.Doney, Stephen A.Brodsky. Mastering XMI:Java Programming with XMI,XML and UML[M]. Wiley Computer Publishing, 2002:3-116.
[7]申云成.UML模型到XMI的映射方法研究[D].昆明:昆明理工大学,2010.
[责任编辑:D]
Study on UML Stereotype Class Diagram Mapping to XMI
SHEN Yuncheng , GU Qingchuan
(College of Information Science and Technology, Zhaotong University, Zhaotong 657000, China)
Abstract:Transforming the UML model information into XMI standard format can realize transformation between models and generating code from model automatically, speed up the progress of system development and improve the quality of software. Firstly this paper introduces some basic concepts, such as MDA, UML, XMI, Stereotype Class diagram,then it proposes a method of UML Stereotype Class diagram mapping to XMI, and represented the mapping algorithm according to XMI schema definition and the mapping rules for UML Stereotype Class diagrams. Finally it verifies the algorithm by using a specific example of the UML Stereotype Class diagram mapping to XMI. The example shows that the algorithm is feasible.
Key words:UML; Stereotype; Class diagram; XMI; mapping
[中图分类号]TP301.6
[文献标识码]A
[文章编号]1671-5330(2015)02-0036-04
[作者简介]申云成(1979-),男,讲师,博士研究生, 主要从事软件工程和数据挖掘技术研究。
[收稿日期]2014-12-16