1-用例圖
概述
展現了一組用例、參與者以及他們之間的關係。
用例圖從使用者角度描述系統的靜態使用情況,用於建立需求模型。
用例特徵
- 保證用例能夠正確捕捉功能性需求,判斷用例是否準確的依據。
用例是動賓段譽
用例是相互獨立的
用例是由使用者參與者啟動的
用例要有可觀測的執行結果
一個用例是一個單元
參與者 Actor
- UML中,參與者使用一個小人表示:
參與者為系統外部與系統直接互動的人或事務,於系統外部與系統發生互動作用
參與者是角色而不是具體的人
代表參與者在與系統打交道時所扮演的角色
系統實際運作中,一個實際使用者可能對應系統的多個參與者。不同角色也可以只對應一個參與者,從而代表同一參與者的不通例項
用例 Use Case
系統外部可見的一個系統功能單元。系統的功能由系統單元所提供,並通過一系列系統單元與一個或多個參與者之間交換的訊息所表達。
系統單元用橢圓表示,橢圓中的文字簡述系統功能:
關係 Relationship
常見關係型別有關聯、泛化、包含和擴充套件
關聯 Association
表示參與者與用例之間的通訊,任何一方都可傳送或接受訊息。
箭頭指向:指向訊息接收方:
子系統 SubSystem
- 用來展示系統的一部分功能(緊密聯絡)
泛化 Inheritance
繼承關係,子用例和父用例相似,但表現出更特別的行為;子用例將繼承父用例的所有結構、行為和關係。子用例可以使用父用例的一段行為,也可以過載它。父用例通常是抽象。。
箭頭指向:指向父用例
2-類圖
- 描述系統中的類,以及各個類之間的關係的靜態試圖。
- 表示類、介面以及它們之間的協作關係,用於程式設計階段。
注意:
- 抽象類或抽象方法用斜體表示
- 如果是介面,則在類名上方加 <<Interface>>
- 欄位和方法返回值的資料型別非必需
- 靜態類或靜態方法加下劃線
類圖例項:
類圖中的事務及解釋
如圖,類圖從上到下分為三部分,分別為類名、屬性和操作
- 屬性:如果有屬性,則每一個屬性都必須有一個名字,另外還可以有其它的描述資訊,如可見性、資料型別、預設值等
- 操作:如果有操作,則每一個操作也都有一個名字,其它可選的資訊包括可見性、引數的名字、引數型別、引數預設值和操作的返回值的型別等
類圖中的六種關係
1.實現關係 implements (類實現介面)
- 用空心三角虛線表示
2.泛化關係 extends (表示一般與特殊的關係) is-a
- 用空心三角實線表示
3.組合關係 (整體與部分的關係) contains-a
- 實心菱形實現表示
eg.有頭類、身體類與人類類三個類,則人類類中應包含頭類及身體類這兩個屬性,則人類類與頭類和身體的關係即為組合關係。
注: 在組合關係中,整體物件可以控制部分物件的生命週期,一旦整體物件不存在,部分物件也將不存在,部分物件不能脫離整體物件而存在。例如,頭和嘴的關係,沒有了頭,嘴也就不存在了。
4.聚合關係 (整體與部分的關係) has-a
- 空心菱形實線表示
eg.BusDriver類有Hat類與Clothes屬性,BusDriver類沒了Hat與Clothes仍可存在
注:聚合關係也是通過成員物件來實現的,其中成員物件是整體物件的一部分,但是成員物件可以脫離整體物件而獨立存在。
5.關聯關係(一般關聯關係) (物件之間的一種引用關係)
- 關聯可以是雙向的,也可以是單向的。在 UML 類圖中,雙向的關聯可以用帶兩個箭頭或者沒有箭頭的實線來表示,單向的關聯用帶一個箭頭的實線來表示,箭頭從使用類指向被關聯的類。也可以在關聯線的兩端標註角色名,代表兩種不同的角色。
關聯關係是類與類之間最常用的一種關係,分為一般關聯關係、聚合關係和組合關係。
6.依賴關係
- 依賴關係使用帶箭頭的虛線來表示,箭頭從使用類指向被依賴的類。
類關係的記憶
3-時序圖
時序圖將互動關係表示為一個二維圖
注:
- 主要用於展示物件之間互動的順序。
- 縱向代表時間軸,時間沿豎線向下延伸。
- 橫向代表了在協作中各獨立物件的類元角色。
- 類元角色用生命線表示。
- 當物件存在時,角色用一條虛線表示。
- 當物件的過程處於啟用狀態時,生命線是一個雙道線。
- 訊息用從一個物件的生命線到另一個物件生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。
生命線
- 生命線可帶下劃線
- 當使用下劃線時意味著序列圖中的生命線代表一個類的特定實體。
同步訊息&
同步訊息: 傳送人再它繼續之前將等待同步訊息相應
非同步訊息:在傳送方繼續之前無需等待相應的訊息
註釋
虛線引出一條說明註釋
約束
約束格式: [Boolean Test]
組合片段
用來解決互動執行的條件和方式,它允許在時序圖中直接表示邏輯元件,用於通過指定條件或子程序的應用區域。
型別與說明如下:
抉擇Alt:抉擇用來指明在兩個或更多的訊息序列之間的互斥的選擇,相當於經典的if..else..。
選項Opt:包含一個可能發生或不發生的序列
迴圈Loop:片段重複一定次數。 可以在臨界中指示片段重複的條件。
時序圖的畫法及應用實踐
- 繪製互動場景中的角色及物件梳理出來
- 從出發某個互動的某個訊息開始,在生命線之間從上到下依次畫出所有訊息。
eg.學生在教務系統中查詢其課程的成績
在本例中,角色有學生,物件有教務系統、課程、成績。
物件的梳理是一個相對主觀的過程,比如本例中,課程以及成績分別作為了物件存在,也可以合併為資料庫這一個物件。請注意:角色以及物件,都為名詞,動詞不可作為角色和物件,如“成績查詢”不可作為物件。
學生的登入驗證作為本時序圖的前置行為,可直接引用到本時序圖中,也可忽略不畫;學生進入成績查詢頁面後,頁面會載入本學生的成績查詢課程列表,並顯示出課程對應的成績。