UML2.0如何規(guī)范改善結(jié)構(gòu)建模的性能
本節(jié)向大家介紹一下UML2.0規(guī)范改善了結(jié)構(gòu)建模的性能,主要包括順序框圖和時序框圖等內(nèi)容,相信通過本節(jié)的學(xué)習(xí)你對改善結(jié)構(gòu)建模的性能有一定的認(rèn)識。下面讓我們一起來看一下具體介紹。
UML2.0規(guī)范改善了結(jié)構(gòu)建模的性能
UML2.0完全建立在UML1.x基礎(chǔ)之上,大多數(shù)的UML1.x模型在UML2.0中都可用。但UML2.0在結(jié)構(gòu)建模方面有一系列重大的改進,包括結(jié)構(gòu)類、精確的接口和端口、拓展性、交互片斷和操作符以及基于時間建模能力的增強。當(dāng)然還有時序框圖,但如果你不使用這些功能,也就不用擔(dān)心這些特性,因為僅使用類框圖、順序框圖和狀態(tài)框圖仍可建立非常復(fù)雜的實時嵌入式系統(tǒng)。
順序框圖
對順序框圖進行修改主要是要達到兩個目標(biāo):改進“規(guī)格性”(定義事務(wù)的能力)和“拓展性”。最明顯的改變在后一個目標(biāo)中得到體現(xiàn)。順序框圖可以被分解成“交換片段”,而這些片段既可以表示在同一個或者另外的順序框圖中。
雖然UML2.0的順序框圖看起來與UML1.x的非常相像,例如它們都有生命線(lifeline)、消息等,但兩者也有很明顯的不同。其中一個不同是在框圖右上角有一個5邊形的盒子(見圖4),它是交互片斷的“操作符”。在這個框圖中,我們看到“sd例子”。操作符sd是該片斷的名字。在這個大框圖中,還可以看到嵌套的另一個順序框圖,它的名字是“alt”,是“alternative”的縮寫(If/Then/Else),它作用于被嵌套的片斷。如果監(jiān)視點(Guard)的值為“TRUE”,則這個片斷的上半部分被執(zhí)行;相反地,如果“else”監(jiān)視點的值為“TRUE”,則執(zhí)行下部分片斷。這個標(biāo)記比起UML1.x中的分支標(biāo)記更加有效,同時還注意到了遞歸性。交互片斷也可以包含一些嵌套的交互片斷,而它們都有適用于自已整個(嵌套的)片斷的操作符。
這些操作符包括:Sd――命名順序框圖;ref――引用“交互片斷”;loop――重復(fù)交互片斷;alt――選擇;par――并發(fā)(平行)區(qū)域;seq――部分順序(缺省值);strict――嚴(yán)格排序;assert――必需的;opt――可選的“模板”;neg――“不可能發(fā)生”或有問題的規(guī)范。ref操作符允許引用在單獨框圖中定義的交互片段.
生命線也可以按照圖5所示進行分解。這時實例線“ServiceBase”可以分解成另一個框圖(圖5右下角中的小框圖)。消息的進入或退出點被稱作“門(gate)”,它們能讓工具確保順序框圖之間的兼容性和一致性.
時序框圖
順序框圖是觀察服務(wù)要求順序的一個有效方法,但它還只是觀察時間相關(guān)動作的一個次優(yōu)方法。為了更詳細(xì)表達時序,我開發(fā)時序框圖,它們現(xiàn)在已經(jīng)被UML2.0所采用并只做了很小修改。圖6表示了一個簡單的時序框圖,豎軸表示狀態(tài),橫軸表示時間。豎軸方向的值通常是離散的,比如狀態(tài)和一些枚舉類型的值。時序框圖中離散值的數(shù)軸很常見,所有重要離散情況都可以使用,甚至是邏輯值或數(shù)學(xué)表達式。時序框圖也包含順序框圖中的其它元素,例如門、消息和約束。
圖7顯示了多個實例在時間上的協(xié)調(diào)關(guān)系,實例由虛線隔開。連續(xù)值有兩種表現(xiàn)形式。缺省形式如圖8的下半部分所示,值被保持直到它被改變。選取它作為缺省值是因為大多數(shù)離散系統(tǒng)都是嚴(yán)格據(jù)此工作的。對于值可在其中連續(xù)變化的物理過程和系統(tǒng)工程環(huán)境,可替代的形式可能更加適合。
其它資料
UML2.0的內(nèi)容遠(yuǎn)比前面介紹的要多??赡茏钪匾囊稽c是,UML1.x模型在大部分情況下都將繼續(xù)有效。這里對內(nèi)部元模型結(jié)構(gòu)做了大量重新設(shè)計、再設(shè)計工作,并且隨著對技術(shù)細(xì)節(jié)不斷地推敲,這一工作還將繼續(xù)。許多細(xì)小而重要的(對于某些人)的變化正在發(fā)生,如關(guān)聯(lián)性(association)、關(guān)聯(lián)子集、合并動作、活動等。雖然UML的基本性質(zhì)和表現(xiàn)力沒有變化,但仍有必要提及以下三件重大事項。
第一,交互框圖將活動框圖和順序框圖結(jié)合在一起,使活動框圖成為了一系列順序框圖的“主框圖”。這樣人們就可以建立一個順序框圖的”地圖”,從而很容易地在其中瀏覽.
第二,在UML1.x中,活動框圖和狀態(tài)框圖具有同樣的語義。換句話說,它們表達同樣的事情,但用了不同的標(biāo)記。在UML2.0中,活動框圖是基于Petri網(wǎng)絡(luò)令牌語義,而不是基于有限狀態(tài)自動控制,因此更具有表現(xiàn)力。雖然它對計算算法不是很重要,但是對過程建模很有幫助。
第三,UML2.0包含了表示結(jié)構(gòu)元素(對象)之間數(shù)據(jù)流動的流程框圖(FlowDiagrams)。它與協(xié)作框圖(collaborationdiagram)中的信息流動類似,但不完全相同。對于那些希望構(gòu)建數(shù)據(jù)流框圖式模型的建模者,可按照圖9的UML方式進行建模。
本文小結(jié)
UML2.0是完全建立在UML1.x基礎(chǔ)之上,大多數(shù)的UML1.x模型在UML2.0中都可用。但UML2.0在結(jié)構(gòu)建模方面有一系列重大的改進,包括結(jié)構(gòu)類、精確的接口和端口、拓展性、交互片斷和操作符以及基于時間建模能力的增強。當(dāng)然還有時序框圖,但如果你不使用這些功能,也就不用擔(dān)心這些特性,因為僅使用類框圖、順序框圖和狀態(tài)框圖仍可建立非常復(fù)雜的實時嵌入式系統(tǒng)。
【編輯推薦】
- UML2.0與UML1.x的異同
- UML之父稱UML2.0版將簡化大型開發(fā)
- 如何繪制UML用例圖
- UML中各種UML圖形的建立步驟簡明介紹
- UML2.0使模型驅(qū)動的開發(fā)更加容易