![]() |
在軟件開(kāi)發(fā)過(guò)程中,無(wú)數(shù)組織依賴(lài) UML(統(tǒng)一建模語(yǔ)言)。然而,用于管理 UML 本身的軟件卻有著靈活性差以及難于使用的口碑。本文講述了丹麥開(kāi)發(fā)公司 Ideogramic ApS 是怎樣擴(kuò)展 XMI(針對(duì)諸如 UML 的元數(shù)據(jù)的 XML 規(guī)范),以及探討了“XML 化(XMLization)”的優(yōu)點(diǎn)及局限性。 UML(統(tǒng)一建模語(yǔ)言)是一種軟件建模表示法。這么說(shuō)通常意味著使用 UML 的建模者并不是通過(guò)編寫(xiě)計(jì)算機(jī)程序來(lái)開(kāi)始軟件開(kāi)發(fā)項(xiàng)目的。相反,他們相互討論,在索引卡上作記錄,繪制圖形,進(jìn)行少量的技術(shù)實(shí)踐,評(píng)審圖形以及進(jìn)行其它一些抽象概念的設(shè)計(jì),進(jìn)行這些工作是為了編寫(xiě)代碼時(shí)能獲得更高的工作效率。典型的 UML“工作產(chǎn)品”包括所獲取的位于一堆堆物理的記錄(索引)卡片上的類(lèi)概要,如同 圖 1中所示的圖形以及稱(chēng)為 用例(use case)的敘述,該用例描述了期望用戶(hù)將怎樣同交付的軟件產(chǎn)品交互。 簡(jiǎn)單地講,UML 的目的在于成為人類(lèi)工程學(xué)。它的成功基于這樣一個(gè)事實(shí):當(dāng)人們?cè)诎装迳蠒?shū)寫(xiě)或在小組內(nèi)通過(guò)討論解決問(wèn)題時(shí),他們表達(dá)有用想法和對(duì)事物的理解的效率特別高。 已經(jīng)證明這些方法同人們的表達(dá)方式非常吻合,但是他們本身不適宜于完成計(jì)算機(jī)化這一過(guò)程。雖然以數(shù)字化的方式獲取白板上的繪圖是可能的。但這么做的代價(jià)通常很昂貴,并且所產(chǎn)生的數(shù)據(jù)難于發(fā)送、控制版本、歸檔、驗(yàn)證、轉(zhuǎn)換。對(duì)于管理以源代碼或 HTML(它是 Web 頁(yè)面的基礎(chǔ))形式表示的數(shù)據(jù),計(jì)算機(jī)的基礎(chǔ)設(shè)施早已做好了準(zhǔn)備。 通過(guò)以文本方式提供“序列化”UML 數(shù)據(jù)的構(gòu)件,XML 消除了二者之間的部分差距?!癤ML 元數(shù)據(jù)交換(XMI)”是一項(xiàng)開(kāi)放的工業(yè)標(biāo)準(zhǔn),它將 XML 應(yīng)用到諸如 UML 的抽象系統(tǒng)。XMI 方法捕捉和表達(dá) UML 表達(dá)的 關(guān)系,而拋棄特定 UML 圖的大多數(shù)可視細(xì)節(jié)。這種將事物劃分成必不可少的內(nèi)容與可有可無(wú)的形式的做法增強(qiáng)了 UML 的可管理性。 本文研究了 XMI 對(duì)這個(gè) Ideogramic ApS 小開(kāi)發(fā)公司的影響。另外,還特別講述了如下問(wèn)題,即 XML 標(biāo)準(zhǔn)和一些逐漸成熟的工具(這些工具集成了市場(chǎng)上其它一些標(biāo)準(zhǔn))是如何使得一個(gè)組織能夠把精力集中在它自己的產(chǎn)品開(kāi)發(fā)上。 Ideogramic ApS 設(shè)計(jì)者可以使用任意多的常見(jiàn)輸入設(shè)備 — 先進(jìn)的電子白板、軌跡球等 — Ideogramic 的專(zhuān)利產(chǎn)品“手勢(shì)識(shí)別”算法將這些草圖轉(zhuǎn)換成 UML 圖。捕捉到這些結(jié)果,并將其表示成 XMI,然后加以調(diào)整,輸入到可視化建模工具(譬如,Rational Software Corporation 軟件公司的 Rational Rose)中。 這一過(guò)程是值得研究的,因?yàn)橹钡綆啄暌郧斑@一過(guò)程還不是很過(guò)硬。不同供應(yīng)商的產(chǎn)品之間的互操作性是如此之差,以致于那些具有好的 UML 想法的人,在想把該想法推向市場(chǎng)時(shí),都不得不隨之帶一套包羅萬(wàn)象的工具集。雖然 XMI 只實(shí)現(xiàn)了部分標(biāo)準(zhǔn)化,但是現(xiàn)在它已經(jīng)足以允許 Ideogramic 把精力集中在他們最拿手的地方:相信第三方的產(chǎn)品可以處理此結(jié)果。 工作示例
圖 1. 手勢(shì)識(shí)別產(chǎn)生的 UML 圖 ![]() 當(dāng)然,Ideogramic 的產(chǎn)品還包括許多工具,您可以選擇這些工具來(lái)以圖形方式精心制作這樣的圖形。盡管如此,我們所感興趣的是位于 XMI 中的缺省序列化。該產(chǎn)品事實(shí)上將圖 1 保存到 清單 1中所示的文檔實(shí)例中。 XMI 定義了一個(gè)“插頭”,該“插頭”允許 Ideogramic 同其它產(chǎn)品(譬如 Rational Rose 或其它的 UML 制圖工具)緊密結(jié)合。這使得 Ideogramic 能夠解脫出來(lái)把全部精力集中在精益求精地提高其“手勢(shì)識(shí)別”工具的獨(dú)特價(jià)值上。例如,一個(gè)組織向 Rational Rose 保證,它能夠?qū)⒖梢暬9ぞ吲c它的 Ideogramic UML 結(jié)合在一起。它之所以能有信心這么做是因?yàn)橐蕾?lài) XML 在這兩者之間來(lái)回傳遞信息。除了單向迭代之外,對(duì)往返迭代也是可能的,從而甚至逆向工程的 Rational 圖可以“流”回 Ideogramic,作為進(jìn)一步協(xié)作和細(xì)化的基礎(chǔ)。 有關(guān)于實(shí)現(xiàn)的現(xiàn)狀 Ideogramic 的解決方案是盡可能多地使用 XMI,并且在不能使用 XMI 的情況下定義擴(kuò)展。由于 UML、XMI以及其它市場(chǎng)化產(chǎn)品都在不斷地變化,因此維持版本的一致性是一項(xiàng)挑戰(zhàn),但是“手勢(shì)識(shí)別”是一項(xiàng)功能強(qiáng)大的技術(shù),在這方面作出努力是值得的。用 Hansen 的話說(shuō)就是:“所有這些為我們帶來(lái)了許多工作:使用不同工具進(jìn)行測(cè)試,產(chǎn)生可替代的實(shí)現(xiàn)方案等等,但是這些辛苦是值得的?!?/p> 下面的部分更進(jìn)一步研究了 Ideogramic 工程師所采取的步驟,他們采取這些步驟來(lái)在維持他們的產(chǎn)品實(shí)現(xiàn)的最佳靈活性的同時(shí)擴(kuò)展和促成 XMI。 對(duì) XMI 的功能擴(kuò)展
Ideogramic 通過(guò)編碼那些部分的,因而是無(wú)效 UML 的圖形來(lái)進(jìn)一步擴(kuò)展 XMI。在預(yù)備工作期間,“根除”同一個(gè)僅僅為一個(gè)端點(diǎn)定義的類(lèi)的聯(lián)系是很有價(jià)值的。Ideogramic 還允許在圖上進(jìn)行徒手畫(huà)。 從某些意義上來(lái)說(shuō),XMI 的體系結(jié)構(gòu)標(biāo)準(zhǔn)化產(chǎn)生作用使得 Ideogramic 的 UML 實(shí)現(xiàn)“Rational 化”。盡管本文幾乎專(zhuān)門(mén)將 XMI 作為一種 UML 序列化來(lái)進(jìn)行討論,但 XMI 的定義事實(shí)上比這要廣泛的多。嚴(yán)格的講,XMI 對(duì)從“對(duì)象管理集團(tuán)(OMG)元對(duì)象設(shè)施(MOF)”模型到大量的裝入器、保存器以及模式的映射進(jìn)行序列化。UML 僅僅是最受歡迎的 MOF 模型。 由于“手勢(shì)識(shí)別”的目標(biāo)是 XMI,所以在它與 UML 的細(xì)節(jié)方面結(jié)合的不是很緊密。從軟件工程的觀點(diǎn)上來(lái)說(shuō),“手勢(shì)識(shí)別”并不同某個(gè)特定方法學(xué)相聯(lián)系,Hansen 說(shuō):“我們的目標(biāo)不是支持任何特定已指定的過(guò)程。但是我們?cè)噲D提供能夠用于這些過(guò)程的商業(yè)對(duì)象表示法(Business Object Notation,BON)、極限編程(Extreme Programming)、Rational 統(tǒng)一過(guò)程(Rational Unified Process)的靈活工具”。事實(shí)上,Ideogramic 已經(jīng)開(kāi)始開(kāi)發(fā)基于手勢(shì)的建模工具,其目標(biāo)是 e-GIP Software AG 開(kāi)發(fā)的專(zhuān)用表示法。這種表示法,依次同 Jeffrey Conklin 開(kāi)發(fā)的“基于問(wèn)題的信息系統(tǒng)(Issue-Based Information System,gIBIS)”的圖形格式相聯(lián)系。 讀與寫(xiě) XMI
這是典型的、很常規(guī)的裝入和存儲(chǔ)代碼的 Ideogramic 實(shí)現(xiàn)。Hansen 說(shuō):“我們甚至編寫(xiě)了一些腳本,這些腳本可以用來(lái)生成最初的裝入和存儲(chǔ)的代碼,基于從
因而源代碼的類(lèi)結(jié)構(gòu)在很大程度上模仿了 UML 元模型。用 Hansen 的話說(shuō)就是:“將屬性映射到簡(jiǎn)單的屬性,將關(guān)聯(lián)和聚合映射到
這樣做的一個(gè)結(jié)果是唯一留給
結(jié)束語(yǔ) 在本文中,我演示了 Ideogramic ApS 是怎樣利用 XMI 來(lái)將其“手勢(shì)識(shí)別”產(chǎn)品連接到 Rational Software 的 UML 產(chǎn)品,因而對(duì)于開(kāi)發(fā)者社區(qū)來(lái)說(shuō),擴(kuò)大了雙方產(chǎn)品集的使用。同時(shí),我也講述了 Ideogramic 是怎樣擴(kuò)展 XMI 以滿(mǎn)足其特殊目標(biāo)。在某些情況下,該擴(kuò)展已經(jīng)被證明是十分簡(jiǎn)單而有效的,在其它一些情況下,它卻顯得既復(fù)雜又不全面。但無(wú)論那種狀況,這項(xiàng)努力已經(jīng)獲得一個(gè)極富創(chuàng)新性的小開(kāi)端,這一點(diǎn)是很清楚的。 盡管 UML 與 XMI 仍然不十分完善,但是它們都已足夠成熟,足以支持(包括 Ideogramic 的“手勢(shì)識(shí)別”在內(nèi))成功的商業(yè)產(chǎn)品。正如我相信在這篇實(shí)例研究中所顯示的那樣,最終結(jié)果實(shí)現(xiàn)非常象任何其它 XML 引擎以及特定的基于 DTD 的應(yīng)用程序。
|
聯(lián)系客服