1. 程式人生 > >UML圖之例圖

UML圖之例圖

  用例圖主要說明的是誰要使用系統,以及他們使用該系統可以做些什麼,幫助開發團隊以一種視覺化的方式理解系統的功能需求。

  一個用例圖包含了多個模型元素,如系統、參與者和用例,並且顯示這些元素之間的各種關係,如泛化關聯依賴。它展示了一個外部使用者能夠觀察到的系統功能模型圖。

1.用例圖包含的元素

1. 參與者(Actor)——與應用程式或系統進行互動的使用者、組織或外部系統。用一個小人表示

 

                

 

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

 

             

 

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

    

2. 用例圖所包含的關係

  用例圖中包含的關係有:關聯,泛化,包含,擴充套件

  a. 關聯(Association)

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

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

 

  

  b. 泛化(Inheritance)

  就是通常理解的繼承關係,子用例和父用例相似,但表現出更特別的行為;子用例將繼承父用例的所有結構、行為和關係。子用例可以使用父用例的一段行為,也可以過載它。父用例通常是抽象的。在實際應用中很少使用泛化關係,子用例中的特殊行為都可以作為父用例中的備選流存在。

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

 

 

  c. 包含(Include)

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

  例如:業務中,總是存在著維護某某資訊的功能,如果將它作為一個用例,那新增、修改以及刪除都要在用例詳述中描述,過於複雜;如果分成新增用例、修改用例和刪除用例,則劃分太細。這時包含關係可以用來理清關係。

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

 

  d. 擴充套件(Extend)

  擴充套件關係是指用例功能的延伸,相當於為基礎用例提供一個附加功能。將基用例中一段相對獨立並且可選的動作,用擴充套件(Extension)用例加以封裝,再讓它從基用例中宣告的擴充套件點(Extension Point)上進行擴充套件,從而使基用例行為更簡練和目標更集中。擴充套件用例為基用例新增新的行為。擴充套件用例可以訪問基用例的屬性,因此它能根據基用例中擴充套件點的當前狀態來判斷是否執行自己。但是擴充套件用例對基用例不可見。

對於一個擴充套件用例,可以在基用例上有幾個擴充套件點。

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

 

  e. 依賴(Dependency)

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

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

3. 例