UML建模——用例圖(Use Case Diagram)

用例圖主要用來描述角色以及角色與用例之間的鏈接關係。說明的是誰要使用系統,以及他們使用該系統能夠作些什麼。一個用例圖包含了多個模型元素,如系統、參與者和用例,而且顯示這些元素之間的各類關係,如泛化關聯依賴它展現了一個外部用戶可以觀察到的系統功能模型圖。算法

【用途】:幫助開發團隊以一種可視化的方式理解系統的功能需求。spa

 

1、用例圖所包含的的元素設計

1. 參與者(Actor)——與應用程序或系統進行交互的用戶、組織或外部系統。用一個小人表示3d

 

                

 

2. 用例(Use Case)——用例就是外部可見的系統功能,對系統提供的服務進行描述。用橢圓表示blog

 

             

 

3. 子系統(Subsystem)——用來展現系統的一部分功能,這部分功能聯繫緊密。繼承

 

    

 

 

2、用例圖所包含的的關係事件

  用例圖中涉及的關係有:關聯泛化包含擴展ci

  以下表所示:開發

 

 

  a. 關聯(Association)文檔

 

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

 

  【箭頭指向】:無箭頭,將參與者與用例相鏈接,指向消息接收方

 

  

 

  b. 泛化(Inheritance)

 

  就是一般理解的繼承關係,子用例和父用例類似,但表現出更特別的行爲;子用例將繼承父用例的全部結構、行爲和關係。子用例可使用父用例的一段行爲,也能夠重載它。父用例一般是抽象的。在實際應用中不多使用泛化關係,子用例中的特殊行爲均可以做爲父用例中的備選流存在。

 

  【箭頭指向】:指向父用例

 

 

  c. 包含(Include)

 

  包含關係用來把一個較複雜用例所表示的功能分解成較小的步驟。包含關係對典型的應用就是複用,也就是定義中說的情景。可是有時當某用例的事件流過於複雜時,爲了簡化用例的描述,咱們也能夠把某一段事件流抽象成爲一個被包含的用例;相反,用例劃分太細時,也能夠抽象出一個基用例,來包含這些細顆粒的用例。這種狀況相似於在過程設計語言中,將程序的某一段算法封裝成一個子過程,而後再從主程序中調用這一子過程。

  例如:業務中,老是存在着維護某某信息的功能,若是將它做爲一個用例,那添加、修改以及刪除都要在用例詳述中描述,過於複雜;若是分紅添加用例、修改用例和刪除用例,則劃分太細。這時包含關係能夠用來理清關係。

 

  【箭頭指向】:指向分解出來的功能用例

 

 

  d. 擴展(Extend)

 

  擴展關係是指用例功能的延伸,至關於爲基礎用例提供一個附加功能。將基用例中一段相對獨立而且可選的動做,用擴展(Extension)用例加以封裝,再讓它從基用例中聲明的擴展點(Extension Point)上進行擴展,從而使基用例行爲更簡練和目標更集中。擴展用例爲基用例添加新的行爲。擴展用例能夠訪問基用例的屬性,所以它能根據基用例中擴展點的當前狀態來判斷是否執行本身。可是擴展用例對基用例不可見。

對於一個擴展用例,能夠在基用例上有幾個擴展點。

 

  【箭頭指向】:指向基礎用例

 

 

  e. 依賴(Dependency)

 

  以上4種關係,是UML定義的標準關係。但VS2010的用例模型圖中,添加了依賴關係,用帶箭頭的虛線表示,表示源用例依賴於目標用例。

 

  【箭頭指向】:指向被依賴項

 

 

  5. 項目(Artifact)

 

  用例圖雖然是用來幫助人們形象地理解功能需求,但卻沒多少人可以通看懂它。不少時候跟用戶交流甚至用Excel都比用例圖強,VS2010中引入了「項目」這樣一個元素,以便讓開發人員可以在用例圖中連接一個普通文檔。

 

  用依賴關係把某個用例依賴到項目上:

 

 

  而後把項目->屬性的Hyperlink設置到你的文檔上;

 

  這樣當你在用例圖上雙擊項目時,就會打開相關聯的文檔。

 

  6. 註釋(Comment)

 

 

  包含(include)、擴展(extend)、泛化(Inheritance) 的區別:

 

  條件性:泛化中的子用例和include中的被包含的用例會無條件發生,而extend中的延伸用例的發生是有條件的;

 

  直接性:泛化中的子用例和extend中的延伸用例爲參與者提供直接服務,而include中被包含的用例爲參與者提供間接服務。

 

  對extend而言,延伸用例並不包含基礎用例的內容,基礎用例也不包含延伸用例的內容。

 

  對Inheritance而言,子用例包含基礎用例的全部內容及其和其餘用例或參與者之間的關係;

  ●泛化側重表示子用例間的互斥性;

  ●包含側重表示被包含用例對Actor提供服務的間接性;

  ●擴展側重表示擴展用例的觸發不定性;

  另一點須要說起的是:泛化中的子用例和擴展中的擴展用例都可以做爲基本用例事件的備選擇流而存在。

 

 

3、幾個用例圖示例

 

****************************************************************************

  如下爲某在線購物系統的用例圖,對系統作出作了總體的描繪。

  (1)系統總體用例圖


    


   
   
(商品用例圖)

   
   
    
   
   
  
(購買信息用例)
  
   

   
    (用戶資料用例)


   

相關文章
相關標籤/搜索