解析UML順序圖中分類器分層
UML順序圖是將交互關(guān)系表示為一個二維圖。縱向是時間軸,時間沿豎線向下延伸。橫向軸代表了在協(xié)作中各獨(dú)立對象的類元角色。類元角色用生命線表示。當(dāng)對象存在時,角色用一條虛線表示,當(dāng)對象的過程處于激活狀態(tài)時,生命線是一個雙道線。
UML順序圖中分類器分層
分層是一個通用的面向?qū)ο笤O(shè)計的方法,系統(tǒng)通常來說,總是組織成userinterface、process/controller、business、persistence、和system層(Ambler2001)。當(dāng)系統(tǒng)是以這種方式設(shè)計的時候,通常會加強(qiáng)同屬于一層的分類器合作,而降低不同層的分類器的耦合度。因此按類似的方式對你的UML順序圖進(jìn)行分層是有意義的。就這個使用情境的例子來說,一種分層的方法就是先注明人類角色,然后是表示情境的邏輯的controller類,然后是userinterface類,接著是business類,***是相關(guān)的技術(shù)類,它封裝了對數(shù)據(jù)庫和系統(tǒng)資源的訪問。以這種方式對你的UML順序圖分層,會使得UML順序圖更容易閱讀,也更容易發(fā)現(xiàn)分層的邏輯問題。圖1就采取這種方法。

圖⒈一次學(xué)生的注冊。
用和你的用例圖一致的名稱命名角色。
當(dāng)你在對一個使用情境建模時,你的UML順序圖一般會涉及一個或多個角色。為了保持一致性,顯示在UML順序圖中的角色的名稱應(yīng)該和用例圖上的相同。UML順序圖
用和你的類圖一致的名稱命名類。
UML順序圖中的類和類圖中的類是相同的,因此它們應(yīng)該有相同的名稱。
一個角色的名稱可以和類的名稱相同。
在圖1你可以看到一個命名為學(xué)生的角色和一個命名為學(xué)生的類。這樣做是合理的,因?yàn)檫@兩個分類器表示兩個不同的概念,角色表示在現(xiàn)實(shí)中的學(xué)生,而類則表示你正在構(gòu)建的商業(yè)應(yīng)用程序中的學(xué)生。
包含一個邏輯的敘述性描述。
圖1可以很難理解--特別是對于不熟悉閱讀UML順序圖人來說--因?yàn)樗呛芙咏趯?shí)際的源程序。在你模型中包含一個業(yè)務(wù)邏輯的描述是很常見的,特別當(dāng)該UML順序圖描述一個使用情境時,就像在在圖⒉的左邊看到的,這可以增加圖的可理解性,并且Rosenberg和Scott(1999)指出,這也為跟蹤用例和UML順序圖間的信息提供了重要的信息。

圖⒉在線定單付款。
在圖的最左邊放置人和組織角色。
對業(yè)務(wù)應(yīng)用軟件來說,在大多數(shù)的中,主要的角色是一個人或一個組織。這些角色經(jīng)常是該情境的發(fā)起人,同時也是UML順序圖的閱讀焦點(diǎn),因此它們應(yīng)該放在模型的"可看見的開始之處"。
在圖的最右邊放置反應(yīng)系統(tǒng)角色。
反應(yīng)系統(tǒng)角色是那些你與之交互的系統(tǒng),應(yīng)該放在圖的最右邊。因?yàn)樵谠S多的業(yè)務(wù)應(yīng)用軟件中,這些角色經(jīng)常被當(dāng)做"backendentities",也就是那些你的系統(tǒng)通過存取技術(shù)交互的系統(tǒng),例如CAPIs、CORBAIDL、消息隊列、或webservice。換句話說,把后端的系統(tǒng)放在圖***的位置。
在圖的最左邊放置系統(tǒng)角色。
先導(dǎo)系統(tǒng)角色是那些與你的系統(tǒng)交互的系統(tǒng),根據(jù)力爭從左到右排列消息和分類器層的原則,應(yīng)該放在圖的最左邊。
【編輯推薦】


















