1、UML中的新元素-框架:
在 UML 2中,框架元件用於做爲許多其餘的圖元件的一個基礎,可是大多數人第一次接觸框架元件的狀況,是做爲圖的圖形化邊界。當爲圖提供圖形化邊界時,一個框架元件爲圖的標籤提供一致的位置。在 UML 圖中框架元件是可選擇的。
除了提供一個圖形化邊框以外,用於圖中的框架元件也有描述交互的重要的功能, 例如序列圖。在序列圖上一個序列接收和發送消息(又稱交互),能經過鏈接消息和框架元件邊界,創建模型(如圖 2 所見到)。
對於序列圖,圖的標籤由文字「sd」開始。當使用一個框架元件封閉一個圖時,圖的標籤須要按照如下的格式:圖類型 圖名稱。框架
UML 規範給圖類型提供特定的文本值。(舉例來講,sd表明序列圖,activity表明活動圖,use case表明用例圖)。異步
2、UML中的序列圖:
序列圖主要用於按照交互發生的一系列順序,顯示對象之間的這些交互。
在項目的需求階段,分析師能經過提供一個更加正式層次的表達,把用例帶入下一層次。那種狀況下,用例經常被細化爲一個或者更多的序列圖。
序列圖的主要用途之一,是把用例表達的需求,轉化爲進一步、更加正式層次的精細表達。用例經常被細化爲一個或者更多的序列圖。序列圖除了在設計新系統方面的用途外,它們還能用來記錄一個存在系統(稱它爲「遺產」)的對象如今如何交互。
序列圖的主要目的是定義事件序列,產生一些但願的輸出。重點不是消息自己,而是消息產生的順序;不過,大多數序列圖會表示一個系統的對象之間傳遞的什麼消息,以及它們發生的順序。圖按照水平和垂直的維度傳遞信息:垂直維度從上而下表示消息/調用發生的時間序列,並且水平維度從左到右表示消息發送到的對象實例。
1.生命線:
生命線畫做一個方格,一條虛線從上而下,經過底部邊界的中心(圖 3)。生命線名字放置在方格里。
UML 的生命線命名標準按照以下格式: 實體名:類名
生命線名稱帶下劃線。當使用下劃線時,意味着序列圖中的生命線表明一個類的特定實體,不是特定種類的實體(例如,角色)。序列圖的實例名稱有下劃線,而角色名稱沒有。
一個生命線能用來表現一個匿名的或未命名的實體。當在一個序列圖上,爲一個未命名的實例建模時,生命線的名字採用和一個命名實例相同的模式;可是生命線名字的位置留下空白,而不是提供一個例圖名字。
oop
3、UML中的約束:
約束的符號很簡單;格式是: 【Boolean Test】
4、UML中的新元素-組合碎片(變體方案、選擇項、循環):
一個組合碎片用來把一套消息組合在一塊兒,在一個序列圖中顯示條件分支。
1.變體:
變體用來指明在兩個或更多的消息序列之間的、互斥的選擇。一個變體的組合碎片元件使用框架來畫。單詞「alt」放置在框架的namebox裏。而後較大的長方形分爲 UML 2 所稱的操做元。 操做元被虛線分開。每一個操做元有一個約束進行測試,而這個約束被放置在生命線頂端的操做元的左上部。 若是操做元的約束等於「true」,而後那個操做元是要執行的操做元。
測試
圖 8做爲一個變體的組合碎片如何閱讀的例子,顯示序列從頂部開始,即bank對象獲取支票金額和賬戶結餘。此時,序列圖中的變體組合碎片接管。由於約束「[balance >= amount]」,若是餘額超過或等於金額,而後順序進行bank對象傳遞 addDebitTransaction 和 storePhotoOfCheck 消息給account對象。然而,若是餘額不是超過或等於金額,而後順序的過程就是bank傳遞addInsuffientFundFee 和 noteReturnedCheck 消息給account對象,returnCheck 消息給它自身。由於「else」約束,當餘額不大於或者等於金額時,第二個序列被調用。在變體的組合碎片中,不須要「else」約束;而若是一個操做元,在它上面沒有一個明確的約束,那麼將假定「else」約束。spa
2.選擇項:
一個選擇項用來爲簡單的「if then」表達式建模。(例如,若是架上的圈餅少於五個,那麼另外作兩打圈餅)。
選擇項組合碎片符號與變體組合碎片相似,除了它只有一個操做元而且永不能有「else」約束之外(它就是如此,沒有理由)。要畫選擇項組合,你畫一個框架。文字「opt」是被放置在框架的 namebox 裏的文本,在框架的內容區,選擇項的約束被放置在生命線頂端上的左上角。 而後選擇項的消息序列被放在框架的內容區的其他位置內。
注意:變體用於爲if then else建模,選擇項用於爲if then建模,由於只有一個分支,因此不能出現[else]
3.循環:設計
循環組合碎片表面很是相似選擇項組合碎片。你畫一個框架,在框架的 namebox 中放置文本「loop」。在框架的內容區中,一個生命線的頂部,循環約束被放置在左上角。而後循環的消息序列被放在框架內容區的其他部分中。在一個循環中,除了標準的布爾測試外,一個約束能測試二個特定的條件式。特定的約束條件式是寫做「minint = [the number]」(例如,「minint = 1」)的最小循環次數,或寫做「maxint = [the number]」(例如,「maxint = 5」)的最大循環次數。經過最小循環檢驗,循環必須運行至少指定次數,而循環執行次數不能達到約束指定的最大循環次數。
對象