溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用UML設(shè)計(jì)XML模式

發(fā)布時(shí)間:2021-12-04 10:08:29 來源:億速云 閱讀:283 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“如何使用UML設(shè)計(jì)XML模式”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何使用UML設(shè)計(jì)XML模式”這篇文章吧。

使用UML設(shè)計(jì)XML模式

統(tǒng)一建模語言(UnifiedModelingLanguage,UML)是一種業(yè)界標(biāo)準(zhǔn),當(dāng)以面向?qū)ο蟮姆椒?gòu)建軟件系統(tǒng)時(shí),用它來對(duì)業(yè)務(wù)概念建模。就信息和命令的傳輸方面而言,近來XML已經(jīng)愈發(fā)成為實(shí)現(xiàn)這些系統(tǒng)的關(guān)鍵因素。XML模式用于定義和限制被交換XML的本質(zhì),因此它成為了人們注意的焦點(diǎn)。本文討論了UML在設(shè)計(jì)XML模式方面的用法,并為使用UML框架創(chuàng)建XML詞匯表提供了一種實(shí)用的方法。
在將UML框架用于構(gòu)造XML模式時(shí),必須考慮三個(gè)問題:

◆UML和XML模式之間的互補(bǔ)性

◆如何擴(kuò)展UML設(shè)計(jì)以捕獲模式提供的全部功能

◆根據(jù)UML圖設(shè)計(jì)XML模式的能力
為了有助于在本文中討論這兩種框架,我將使用一家虛擬公司:BALTICShipping作為示例。

BALTICShipping是一家國(guó)際性的運(yùn)輸公司,專門從事美國(guó)到東歐的貨運(yùn)業(yè)務(wù)。該公司希望創(chuàng)建一種機(jī)制,用于跟蹤從其紐約總部到各分公司(如位于愛沙尼亞塔林(Tallinn)的一個(gè)分公司)的裝運(yùn)物情況(請(qǐng)參閱圖1)。當(dāng)產(chǎn)品起運(yùn)時(shí),總部通過電子方式以XML形式發(fā)送關(guān)于本次裝運(yùn)物的信息。一旦貨物抵達(dá)目的地,分公司將以電子方式把確認(rèn)信息發(fā)回給總部。

所有訂單和確認(rèn)數(shù)據(jù)都以XML文檔形式交換,必須設(shè)計(jì)模式來概括文檔的結(jié)構(gòu)。用于對(duì)裝運(yùn)訂單建模的業(yè)務(wù)構(gòu)造也用來與庫(kù)存跟蹤系統(tǒng)(InventoryTrackingSystem)交換信息,庫(kù)存跟蹤系統(tǒng)隨時(shí)都知道公司現(xiàn)有哪些包裝箱要交運(yùn)。本文討論了構(gòu)造XML模式時(shí)使用UML的功效,這些XML模式定義了這些以XML格式進(jìn)行數(shù)據(jù)傳輸?shù)臉I(yè)務(wù)構(gòu)造。

圖1.BALTICShipping工作流

如何使用UML設(shè)計(jì)XML模式

補(bǔ)充框架

UML設(shè)計(jì)及其面向?qū)ο蟮慕?梢詾闃?gòu)建XML模式提供補(bǔ)充。您可以方便地用UML中的圖形符號(hào)來表示業(yè)務(wù)概念,并開始設(shè)計(jì)您的XML模式。

建模的價(jià)值

有關(guān)UML在創(chuàng)建XML模式時(shí)的優(yōu)點(diǎn)的討論假定了面向?qū)ο蠼5膬r(jià)值是已知的。在我上一篇文章“CreateflexibleandextensibleXMLschemas”中,我討論了使用面向?qū)ο蠓椒?gòu)建XML模式的重要性和價(jià)值。使用UML設(shè)計(jì)面向?qū)ο笙到y(tǒng)除了具有技術(shù)優(yōu)勢(shì)之外,UML還提供了一個(gè)公共媒介,業(yè)務(wù)團(tuán)隊(duì)和技術(shù)團(tuán)隊(duì)可以通過該媒介方便地交流看法。業(yè)務(wù)分析人員是軟件系統(tǒng)(尤其是一個(gè)包含特定于領(lǐng)域信息的系統(tǒng))中的關(guān)鍵協(xié)作者。由于業(yè)務(wù)分析人員參與設(shè)計(jì)XML文檔的過程,因此軟件架構(gòu)設(shè)計(jì)師和業(yè)務(wù)分析人員之間默契的合作對(duì)于項(xiàng)目的成功變得非常重要。UML的圖形符號(hào)使得技術(shù)人員和非技術(shù)人員很容易就諸如ShippingOrder的定義之類的業(yè)務(wù)概念達(dá)成一致,因此也就加速并促進(jìn)了項(xiàng)目的完成。

互補(bǔ)

設(shè)想一下,BALTICShipping的業(yè)務(wù)經(jīng)理找到您,請(qǐng)您對(duì)一個(gè)XML模式建模,該模式將對(duì)在公司內(nèi)不同系統(tǒng)之間傳輸?shù)男畔⑦M(jìn)行形式化。他與您坐下來,一起討論該領(lǐng)域的業(yè)務(wù)概念。您可以在紙上繪制一些草圖,但UML設(shè)計(jì)使用圖和符號(hào)對(duì)這些概念建模提供了一種更好的正式方法。

如何使用UML設(shè)計(jì)XML模式

圖2中的UML圖里勾畫出了ShippingOrder的業(yè)務(wù)定義。BALTICShipping將ShippingOrder定義為包含ShippingId、Origin、Destination和Order。無論何時(shí)交換有關(guān)ShippingOrder的任何數(shù)據(jù),它都考慮這些必需的信息。此外,UML圖也用來表示組成Origin或Order的內(nèi)容。所顯示的Origin和Destination的類型與類型Address相同,BALTICShipping將具有下列特征的Address:Name、Street、City和Country存儲(chǔ)在其數(shù)據(jù)庫(kù)中。這些都是業(yè)務(wù)概念,數(shù)據(jù)庫(kù)模型、軟件程序以及供經(jīng)理和業(yè)務(wù)伙伴們閱讀的文檔中都用到了它們。這些概念還包括基數(shù)(Order可以包含許多Item)、繼承(Origin繼承Address的全部特征)以及依賴關(guān)系(Order依賴于其Item的詳細(xì)信息);UML圖捕獲了所有這些關(guān)系。由于您希望您的XML文檔攜帶ShippingOrder信息,因此下一步就是設(shè)計(jì)符合草擬的UML圖的XML模式。下面的模式表示UML圖(參閱圖2)到XML模式的映射。

在UML圖中(請(qǐng)參閱圖2),Address是一種抽象類型,單詞“Address”用斜體書寫以表示它是抽象類型。類型Origin和Destination從Address繼承了特征Name、Street、City和Country。為可重用類型創(chuàng)建藍(lán)圖被認(rèn)為是一種好的面向?qū)ο笤O(shè)計(jì)。在XML模式中(請(qǐng)參閱清單2),我已經(jīng)通過使用關(guān)鍵字abstract="true"將類型Address指定為抽象類型。類型Origin和Destination模仿了我最初在UML設(shè)計(jì)圖中所勾畫的設(shè)計(jì),這里我使用extensionbase="Address"來表明它們繼承了Address的特征。此外,我還捕獲了這樣一個(gè)業(yè)務(wù)模型:通過用代碼type="Item"maxOccurs="unbounded",Order可以包含許多Item。

如果您是從頭開始設(shè)計(jì)XML模式的,那么將很難只使用XML寫下對(duì)象類型。此外,要想向不熟悉XML模式術(shù)語的業(yè)務(wù)經(jīng)理解釋它們也幾乎是不可能的。根據(jù)UML圖,您可以有效地轉(zhuǎn)換公司的業(yè)務(wù)概念,然后使用您面前的這一可視化表示創(chuàng)建XML模式。以下是運(yùn)用您創(chuàng)建的模式為一批從紐約運(yùn)往塔林的草莓醬生成的實(shí)例文檔。

以上是“如何使用UML設(shè)計(jì)XML模式”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

uml
AI