申云成,顧慶傳
(昭通學(xué)院 信息科學(xué)與技術(shù)學(xué)院,云南 昭通 657000)
?
UML構(gòu)造型類圖到XMI的映射方法研究
申云成,顧慶傳
(昭通學(xué)院 信息科學(xué)與技術(shù)學(xué)院,云南 昭通 657000)
[摘要]將UML模型信息轉(zhuǎn)換成XMI中間標(biāo)準(zhǔn)格式,能夠?qū)崿F(xiàn)模型到模型轉(zhuǎn)換,模型到代碼自動生成,加快系統(tǒng)開發(fā)進(jìn)度,提高軟件質(zhì)量。首先介紹了MDA,UML,XMI以及構(gòu)造類圖等基本概念,然后提出一種UML類圖到XMI的映射算法,并根據(jù)XMI模式定義和UML類圖映射規(guī)則對映射算法進(jìn)行具體描述。最后通過一個具體的構(gòu)造型類圖到XMI的映射實例進(jìn)行算法驗證。實例表明提出的算法是切實可行的。
[關(guān)鍵詞]UML;構(gòu)造型;類圖;XMI;映射
0引言
隨著計算機(jī)技術(shù)和軟件開發(fā)技術(shù)的發(fā)展,MDA的應(yīng)用越來越廣泛,數(shù)據(jù)交換和數(shù)據(jù)共享已經(jīng)變得越來越重要[1]?,F(xiàn)在,UML已經(jīng)成為一種非常重要的建模技術(shù),然而XML是一種用于數(shù)據(jù)存儲的簡單語言,同時也是一種很好的跨平臺技術(shù)。因此,研究如何用XMI來表示UML模型成為近年來比較熱門的方向。因此本文旨在研究如何用XMI來表示UML構(gòu)造類圖。
1基本概念
MDA是由OMG于2001年提出的新的軟件開發(fā)方法學(xué)[2]。模型是MDA的核心,它作為系統(tǒng)的抽象,比實現(xiàn)系統(tǒng)更容易獲得、理解和計算。MDA意識到自動化映射模型到代碼實現(xiàn)這個過程的重要性。MDA包含的核心標(biāo)準(zhǔn):MOF(Meta Object Facility,元對象機(jī)制),UML(Unified Modeling Language,統(tǒng)一建模語言),XMI(XML Metadata Interchange,XML元數(shù)據(jù)交換),CWM(Common Warehouse Metamodel,公共倉庫元模型)[3,4]。
UML作為一種建模語言,它的定義包括UML語義和UML表示法兩個部分。UML語義是描述基于UML的精確元模型定義。元模型為UML的所有元素在語法和語義上提供了簡單、一致、通用的定義性說明,使開發(fā)者能在語義上取得一致,消除了因人而異的最佳表達(dá)方法所造成的影響。UML表示法是定義UML符號的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法為系統(tǒng)建模提供了標(biāo)準(zhǔn)[5]。
XMI(XML Metadata Interchange)是由OMG(Object Management Group)規(guī)定的跨平臺模型信息元數(shù)據(jù)交換標(biāo)準(zhǔn)。XMI是根據(jù)MOF(Meta Object Facility)定義的元數(shù)據(jù)交換格式。XMI由兩個元素構(gòu)成:XML DTD產(chǎn)生規(guī)則和XML Document產(chǎn)生規(guī)則。
XMI雖然包含了XML DTD產(chǎn)生規(guī)則和XML Document產(chǎn)生規(guī)則,但是XMI并不是DTD也不是XSD。在XSD中,UML的屬性直接映射成XML文件中的XML元素和屬性。XSD模式能引用一組構(gòu)造型、標(biāo)記值和約束。
2UML類圖到XMI的映射規(guī)則
因為UML元模型是UML本身的描述,所以只需要按照相應(yīng)的構(gòu)造塊把UML元模型直接表示出來就可以得到XMI文檔。我們可以用表1[6]來顯示UML類模型到XMI的轉(zhuǎn)換對應(yīng)關(guān)系。
表1 UML類模型到XMI的轉(zhuǎn)換對應(yīng)關(guān)系
用偽代碼描述UML類模型到XMI的轉(zhuǎn)換算法如下:
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構(gòu)造型類圖到XMI的映射
UML提供了幾種擴(kuò)展機(jī)制,允許建模者在不用改變基本建模語言的情況下做一些通用的擴(kuò)展。這種擴(kuò)展的方法很可能不能滿足出現(xiàn)的多種要求,但是它以一種易于實現(xiàn)的簡單方式容納建模者對UML裁制的大部分要求。擴(kuò)展機(jī)制包括約束、標(biāo)記值和構(gòu)造型。
構(gòu)造型是在一個已定義的模型元素的基礎(chǔ)上構(gòu)造的一種新的模型元素。構(gòu)造型的信息內(nèi)容和形式與已存在的基本模型元素相同,但是含義和使用不同。構(gòu)造型建立在已存在的模型元素基礎(chǔ)上,構(gòu)造型元素的信息內(nèi)容與已存在的模型元素相同。這樣便可允許工具以相同的方式存儲和使用新元素和已存在的元素。構(gòu)造型元素可以有它自己的區(qū)別符號,并且這很容易由工具所支持。構(gòu)造型可以用標(biāo)記值來存儲不被基本模型元素所支持的附加特性。構(gòu)造型用雙尖括號內(nèi)的文字字符串表示,它可以放在表示基本模型元素的符號的里邊或旁邊。建模者也可以為特殊的構(gòu)造型創(chuàng)建一個符號,這個符號替代了原來的基本模型元素的符號。注意構(gòu)造型名稱不能和作用到相同的元素類型上的預(yù)定義關(guān)鍵字相同[7]。圖1顯示了以構(gòu)造類模型。表2顯示了構(gòu)造型(stereotype)構(gòu)造塊和它所表示的含義。
下面通過一個具體的構(gòu)造型類圖實例來了解構(gòu)造型類圖到XMI的映射。本文基于StarUML開源模型工具,創(chuàng)建了一個UML構(gòu)造型類圖,如圖2所示。圖2顯示了兩個構(gòu)造型類《entity》和《money》,一個普通類bankAccount,三個屬性,五個操作。其中,number和owner屬于類型為 string的普通屬性,balance屬于類型為double的《money》構(gòu)造型屬性。同樣,deposit(),withdraw(),getnumber() 和getowner()為普通操作類型,getbalance()為《money》構(gòu)造型操作。表3是圖2所示構(gòu)造型類所對應(yīng)的XMI文檔輸出,輸出的XMI根據(jù)各個元素劃分成不同的幾個部分。
表3 UML構(gòu)造型類圖部分元素及其對應(yīng)的XMI輸出
4小結(jié)
MDA的重要核心領(lǐng)域就是要實現(xiàn)信息的轉(zhuǎn)換。XMI作為數(shù)據(jù)交換的中間標(biāo)準(zhǔn)格式,起到至關(guān)重要的作用。因此,從UML模型到XMI的轉(zhuǎn)換成為非常重要的研究方向。本文提出了UML類圖到XMI的映射算法,并通過一個構(gòu)造型類圖到XMI的映射實例進(jìn)行驗證。進(jìn)一步的研究將包括UML模型其他類圖,用例圖,狀態(tài)圖等到XMI的映射研究以及XMI到UML模型的反向映射。
[參考文獻(xiàn)]
[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的層次軟件體系結(jié)構(gòu)模型研究與應(yīng)用[D].長沙:湖南大學(xué),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].昆明:昆明理工大學(xué),2010.
[責(zé)任編輯: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
[文獻(xiàn)標(biāo)識碼]A
[文章編號]1671-5330(2015)02-0036-04
[作者簡介]申云成(1979-),男,講師,博士研究生, 主要從事軟件工程和數(shù)據(jù)挖掘技術(shù)研究。
[收稿日期]2014-12-16