1-用例圖

概述

  1. 展現了一組用例、參與者以及他們之間的關係

  2. 用例圖從使用者角度描述系統的靜態使用情況,用於建立需求模型

用例特徵

  • 保證用例能夠正確捕捉功能性需求,判斷用例是否準確的依據。
  1. 用例是動賓段譽

  2. 用例是相互獨立的

  3. 用例是由使用者參與者啟動的

  4. 用例要有可觀測的執行結果

  5. 一個用例是一個單元

參與者 Actor

  • UML中,參與者使用一個小人表示:
  1. 參與者為系統外部與系統直接互動的人或事務,於系統外部與系統發生互動作用

  2. 參與者是角色而不是具體的人

  3. 代表參與者在與系統打交道時所扮演的角色

  4. 系統實際運作中,一個實際使用者可能對應系統的多個參與者。不同角色也可以只對應一個參與者,從而代表同一參與者的不通例項

用例 Use Case

系統外部可見的一個系統功能單元。系統的功能由系統單元所提供,並通過一系列系統單元與一個或多個參與者之間交換的訊息所表達。

系統單元用橢圓表示,橢圓中的文字簡述系統功能:

關係 Relationship

常見關係型別有關聯、泛化、包含和擴充套件

關聯 Association

表示參與者與用例之間的通訊,任何一方都可傳送或接受訊息。

箭頭指向:指向訊息接收方:

子系統 SubSystem
  • 用來展示系統的一部分功能(緊密聯絡)

泛化 Inheritance

繼承關係,子用例和父用例相似,但表現出更特別的行為;子用例將繼承父用例的所有結構、行為和關係。子用例可以使用父用例的一段行為,也可以過載它。父用例通常是抽象。。

箭頭指向:指向父用例

2-類圖

  • 描述系統中的類,以及各個類之間的關係的靜態試圖
  • 表示類、介面以及它們之間的協作關係,用於程式設計階段

注意:

  1. 抽象類或抽象方法用斜體表示
  2. 如果是介面,則在類名上方加 <<Interface>>
  3. 欄位和方法返回值的資料型別非必需
  4. 靜態類或靜態方法加下劃線

    類圖例項:

類圖中的事務及解釋



如圖,類圖從上到下分為三部分,分別為類名、屬性和操作

  1. 屬性:如果有屬性,則每一個屬性都必須有一個名字,另外還可以有其它的描述資訊,如可見性、資料型別、預設值等
  2. 操作:如果有操作,則每一個操作也都有一個名字,其它可選的資訊包括可見性、引數的名字、引數型別、引數預設值和操作的返回值的型別等

類圖中的六種關係

1.實現關係 implements (類實現介面)

  • 用空心三角虛線表示

2.泛化關係 extends (表示一般與特殊的關係) is-a

  • 用空心三角實線表示

3.組合關係 (整體與部分的關係) contains-a

  • 實心菱形實現表示



    eg.有頭類、身體類與人類類三個類,則人類類中應包含頭類及身體類這兩個屬性,則人類類與頭類和身體的關係即為組合關係。

注: 在組合關係中,整體物件可以控制部分物件的生命週期,一旦整體物件不存在,部分物件也將不存在,部分物件不能脫離整體物件而存在。例如,頭和嘴的關係,沒有了頭,嘴也就不存在了。

4.聚合關係 (整體與部分的關係) has-a

  • 空心菱形實線表示

    eg.BusDriver類有Hat類與Clothes屬性,BusDriver類沒了Hat與Clothes仍可存在



    注:聚合關係也是通過成員物件來實現的,其中成員物件是整體物件的一部分,但是成員物件可以脫離整體物件而獨立存在

5.關聯關係(一般關聯關係) (物件之間的一種引用關係)

  • 關聯可以是雙向的,也可以是單向的。在 UML 類圖中,雙向的關聯可以用帶兩個箭頭或者沒有箭頭的實線來表示,單向的關聯用帶一個箭頭的實線來表示,箭頭從使用類指向被關聯的類。也可以在關聯線的兩端標註角色名,代表兩種不同的角色。



    關聯關係是類與類之間最常用的一種關係,分為一般關聯關係、聚合關係和組合關係。

6.依賴關係

  • 依賴關係使用帶箭頭的虛線來表示,箭頭從使用類指向被依賴的類

類關係的記憶

3-時序圖

時序圖將互動關係表示為一個二維圖

注:

  1. 主要用於展示物件之間互動的順序。
  2. 縱向代表時間軸,時間沿豎線向下延伸。
  3. 橫向代表了在協作中各獨立物件的類元角色。
  4. 類元角色用生命線表示。
  5. 當物件存在時,角色用一條虛線表示。
  6. 當物件的過程處於啟用狀態時,生命線是一個雙道線。
  7. 訊息用從一個物件的生命線到另一個物件生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。

生命線
  1. 生命線可帶下劃線
  2. 當使用下劃線時意味著序列圖中的生命線代表一個類的特定實體。

同步訊息&

同步訊息: 傳送人再它繼續之前將等待同步訊息相應

非同步訊息:在傳送方繼續之前無需等待相應的訊息

註釋

虛線引出一條說明註釋

約束

約束格式: [Boolean Test]

組合片段

用來解決互動執行的條件和方式,它允許在時序圖中直接表示邏輯元件,用於通過指定條件或子程序的應用區域。

型別與說明如下:

抉擇Alt:抉擇用來指明在兩個或更多的訊息序列之間的互斥的選擇,相當於經典的if..else..。

選項Opt:包含一個可能發生或不發生的序列

迴圈Loop:片段重複一定次數。 可以在臨界中指示片段重複的條件。

時序圖的畫法及應用實踐

  1. 繪製互動場景中的角色及物件梳理出來
  2. 從出發某個互動的某個訊息開始,在生命線之間從上到下依次畫出所有訊息。

eg.學生在教務系統中查詢其課程的成績

在本例中,角色有學生,物件有教務系統、課程、成績。

物件的梳理是一個相對主觀的過程,比如本例中,課程以及成績分別作為了物件存在,也可以合併為資料庫這一個物件。請注意:角色以及物件,都為名詞,動詞不可作為角色和物件,如“成績查詢”不可作為物件。

學生的登入驗證作為本時序圖的前置行為,可直接引用到本時序圖中,也可忽略不畫;學生進入成績查詢頁面後,頁面會載入本學生的成績查詢課程列表,並顯示出課程對應的成績。