申云成,顧慶傳
(昭通學院 信息科學與技術學院,云南 昭通 657000)
?
UML構造型類圖到XMI的映射方法研究
申云成,顧慶傳
(昭通學院 信息科學與技術學院,云南 昭通 657000)
[摘要]將UML模型信息轉換成XMI中間標準格式,能夠實現(xiàn)模型到模型轉換,模型到代碼自動生成,加快系統(tǒng)開發(fā)進度,提高軟件質量。首先介紹了MDA,UML,XMI以及構造類圖等基本概念,然后提出一種UML類圖到XMI的映射算法,并根據XMI模式定義和UML類圖映射規(guī)則對映射算法進行具體描述。最后通過一個具體的構造型類圖到XMI的映射實例進行算法驗證。實例表明提出的算法是切實可行的。
[關鍵詞]UML;構造型;類圖;XMI;映射
0引言
隨著計算機技術和軟件開發(fā)技術的發(fā)展,MDA的應用越來越廣泛,數據交換和數據共享已經變得越來越重要[1]?,F(xiàn)在,UML已經成為一種非常重要的建模技術,然而XML是一種用于數據存儲的簡單語言,同時也是一種很好的跨平臺技術。因此,研究如何用XMI來表示UML模型成為近年來比較熱門的方向。因此本文旨在研究如何用XMI來表示UML構造類圖。
1基本概念
MDA是由OMG于2001年提出的新的軟件開發(fā)方法學[2]。模型是MDA的核心,它作為系統(tǒng)的抽象,比實現(xiàn)系統(tǒng)更容易獲得、理解和計算。MDA意識到自動化映射模型到代碼實現(xiàn)這個過程的重要性。MDA包含的核心標準:MOF(Meta Object Facility,元對象機制),UML(Unified Modeling Language,統(tǒng)一建模語言),XMI(XML Metadata Interchange,XML元數據交換),CWM(Common Warehouse Metamodel,公共倉庫元模型)[3,4]。
UML作為一種建模語言,它的定義包括UML語義和UML表示法兩個部分。UML語義是描述基于UML的精確元模型定義。元模型為UML的所有元素在語法和語義上提供了簡單、一致、通用的定義性說明,使開發(fā)者能在語義上取得一致,消除了因人而異的最佳表達方法所造成的影響。UML表示法是定義UML符號的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法為系統(tǒng)建模提供了標準[5]。
XMI(XML Metadata Interchange)是由OMG(Object Management Group)規(guī)定的跨平臺模型信息元數據交換標準。XMI是根據MOF(Meta Object Facility)定義的元數據交換格式。XMI由兩個元素構成:XML DTD產生規(guī)則和XML Document產生規(guī)則。
XMI雖然包含了XML DTD產生規(guī)則和XML Document產生規(guī)則,但是XMI并不是DTD也不是XSD。在XSD中,UML的屬性直接映射成XML文件中的XML元素和屬性。XSD模式能引用一組構造型、標記值和約束。
2UML類圖到XMI的映射規(guī)則
因為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提供了幾種擴展機制,允許建模者在不用改變基本建模語言的情況下做一些通用的擴展。這種擴展的方法很可能不能滿足出現(xiàn)的多種要求,但是它以一種易于實現(xiàn)的簡單方式容納建模者對UML裁制的大部分要求。擴展機制包括約束、標記值和構造型。
構造型是在一個已定義的模型元素的基礎上構造的一種新的模型元素。構造型的信息內容和形式與已存在的基本模型元素相同,但是含義和使用不同。構造型建立在已存在的模型元素基礎上,構造型元素的信息內容與已存在的模型元素相同。這樣便可允許工具以相同的方式存儲和使用新元素和已存在的元素。構造型元素可以有它自己的區(qū)別符號,并且這很容易由工具所支持。構造型可以用標記值來存儲不被基本模型元素所支持的附加特性。構造型用雙尖括號內的文字字符串表示,它可以放在表示基本模型元素的符號的里邊或旁邊。建模者也可以為特殊的構造型創(chuàng)建一個符號,這個符號替代了原來的基本模型元素的符號。注意構造型名稱不能和作用到相同的元素類型上的預定義關鍵字相同[7]。圖1顯示了以構造類模型。表2顯示了構造型(stereotype)構造塊和它所表示的含義。
下面通過一個具體的構造型類圖實例來了解構造型類圖到XMI的映射。本文基于StarUML開源模型工具,創(chuàng)建了一個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的重要核心領域就是要實現(xiàn)信息的轉換。XMI作為數據交換的中間標準格式,起到至關重要的作用。因此,從UML模型到XMI的轉換成為非常重要的研究方向。本文提出了UML類圖到XMI的映射算法,并通過一個構造型類圖到XMI的映射實例進行驗證。進一步的研究將包括UML模型其他類圖,用例圖,狀態(tài)圖等到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