使用UML設(shè)計XML模式方法解析
本節(jié)向大家介紹一下如何使用UML設(shè)計XML模式,主要包括補充框架,建模的價值和補充等內(nèi)容,希望通過本節(jié)的介紹你對使用UML設(shè)計XML模式方法有所掌握。
使用UML設(shè)計XML模式
統(tǒng)一建模語言(UnifiedModelingLanguage,UML)是一種業(yè)界標(biāo)準(zhǔn),當(dāng)以面向?qū)ο蟮姆椒?gòu)建軟件系統(tǒng)時,用它來對業(yè)務(wù)概念建模。就信息和命令的傳輸方面而言,近來XML已經(jīng)愈發(fā)成為實現(xiàn)這些系統(tǒng)的關(guān)鍵因素。XML模式用于定義和限制被交換XML的本質(zhì),因此它成為了人們注意的焦點。本文討論了UML在設(shè)計XML模式方面的用法,并為使用UML框架創(chuàng)建XML詞匯表提供了一種實用的方法。
在將UML框架用于構(gòu)造XML模式時,必須考慮三個問題:
◆UML和XML模式之間的互補性
◆如何擴展UML設(shè)計以捕獲模式提供的全部功能
◆根據(jù)UML圖設(shè)計XML模式的能力
為了有助于在本文中討論這兩種框架,我將使用一家虛擬公司:BALTICShipping作為示例。
BALTICShipping是一家國際性的運輸公司,專門從事美國到東歐的貨運業(yè)務(wù)。該公司希望創(chuàng)建一種機制,用于跟蹤從其紐約總部到各分公司(如位于愛沙尼亞塔林(Tallinn)的一個分公司)的裝運物情況(請參閱圖1)。當(dāng)產(chǎn)品起運時,總部通過電子方式以XML形式發(fā)送關(guān)于本次裝運物的信息。一旦貨物抵達目的地,分公司將以電子方式把確認信息發(fā)回給總部。
所有訂單和確認數(shù)據(jù)都以XML文檔形式交換,必須設(shè)計模式來概括文檔的結(jié)構(gòu)。用于對裝運訂單建模的業(yè)務(wù)構(gòu)造也用來與庫存跟蹤系統(tǒng)(InventoryTrackingSystem)交換信息,庫存跟蹤系統(tǒng)隨時都知道公司現(xiàn)有哪些包裝箱要交運。本文討論了構(gòu)造XML模式時使用UML的功效,這些XML模式定義了這些以XML格式進行數(shù)據(jù)傳輸?shù)臉I(yè)務(wù)構(gòu)造。
圖1.BALTICShipping工作流
補充框架
UML設(shè)計及其面向?qū)ο蟮慕?梢詾闃?gòu)建XML模式提供補充。您可以方便地用UML中的圖形符號來表示業(yè)務(wù)概念,并開始設(shè)計您的XML模式。
建模的價值
有關(guān)UML在創(chuàng)建XML模式時的優(yōu)點的討論假定了面向?qū)ο蠼5膬r值是已知的。在我上一篇文章“CreateflexibleandextensibleXMLschemas”中,我討論了使用面向?qū)ο蠓椒?gòu)建XML模式的重要性和價值。使用UML設(shè)計面向?qū)ο笙到y(tǒng)除了具有技術(shù)優(yōu)勢之外,UML還提供了一個公共媒介,業(yè)務(wù)團隊和技術(shù)團隊可以通過該媒介方便地交流看法。業(yè)務(wù)分析人員是軟件系統(tǒng)(尤其是一個包含特定于領(lǐng)域信息的系統(tǒng))中的關(guān)鍵協(xié)作者。由于業(yè)務(wù)分析人員參與設(shè)計XML文檔的過程,因此軟件架構(gòu)設(shè)計師和業(yè)務(wù)分析人員之間默契的合作對于項目的成功變得非常重要。UML的圖形符號使得技術(shù)人員和非技術(shù)人員很容易就諸如ShippingOrder的定義之類的業(yè)務(wù)概念達成一致,因此也就加速并促進了項目的完成。
互補
設(shè)想一下,BALTICShipping的業(yè)務(wù)經(jīng)理找到您,請您對一個XML模式建模,該模式將對在公司內(nèi)不同系統(tǒng)之間傳輸?shù)男畔⑦M行形式化。他與您坐下來,一起討論該領(lǐng)域的業(yè)務(wù)概念。您可以在紙上繪制一些草圖,但UML設(shè)計使用圖和符號對這些概念建模提供了一種更好的正式方法。
圖2中的UML圖里勾畫出了ShippingOrder的業(yè)務(wù)定義。BALTICShipping將ShippingOrder定義為包含ShippingId、Origin、Destination和Order。無論何時交換有關(guān)ShippingOrder的任何數(shù)據(jù),它都考慮這些必需的信息。此外,UML圖也用來表示組成Origin或Order的內(nèi)容。所顯示的Origin和Destination的類型與類型Address相同,BALTICShipping將具有下列特征的Address:Name、Street、City和Country存儲在其數(shù)據(jù)庫中。這些都是業(yè)務(wù)概念,數(shù)據(jù)庫模型、軟件程序以及供經(jīng)理和業(yè)務(wù)伙伴們閱讀的文檔中都用到了它們。這些概念還包括基數(shù)(Order可以包含許多Item)、繼承(Origin繼承Address的全部特征)以及依賴關(guān)系(Order依賴于其Item的詳細信息);UML圖捕獲了所有這些關(guān)系。由于您希望您的XML文檔攜帶ShippingOrder信息,因此下一步就是設(shè)計符合草擬的UML圖的XML模式。下面的模式表示UML圖(參閱圖2)到XML模式的映射。
在UML圖中(請參閱圖2),Address是一種抽象類型,單詞“Address”用斜體書寫以表示它是抽象類型。類型Origin和Destination從Address繼承了特征Name、Street、City和Country。為可重用類型創(chuàng)建藍圖被認為是一種好的面向?qū)ο笤O(shè)計。在XML模式中(請參閱清單2),我已經(jīng)通過使用關(guān)鍵字abstract="true"將類型Address指定為抽象類型。類型Origin和Destination模仿了我最初在UML設(shè)計圖中所勾畫的設(shè)計,這里我使用extensionbase="Address"來表明它們繼承了Address的特征。此外,我還捕獲了這樣一個業(yè)務(wù)模型:通過用代碼type="Item"maxOccurs="unbounded",Order可以包含許多Item。
如果您是從頭開始設(shè)計XML模式的,那么將很難只使用XML寫下對象類型。此外,要想向不熟悉XML模式術(shù)語的業(yè)務(wù)經(jīng)理解釋它們也幾乎是不可能的。根據(jù)UML圖,您可以有效地轉(zhuǎn)換公司的業(yè)務(wù)概念,然后使用您面前的這一可視化表示創(chuàng)建XML模式。以下是運用您創(chuàng)建的模式為一批從紐約運往塔林的草莓醬生成的實例文檔。
【編輯推薦】
- UML設(shè)計的九種圖例及其區(qū)別
- 使用UML設(shè)計數(shù)據(jù)庫應(yīng)用
- 實例講解UML對象圖使用
- 軟件設(shè)計過程中面向?qū)ο骍ML技術(shù)如何使用
- UML建?;A(chǔ)教程