用例圖之參與者、用例間的四種關係

本文轉載至:http://blog.csdn.net/ls1645/article/details/42969587框架

 

 

用例圖中包括三種元素,參與者,用例,它們之間的關係。下面說說參與者與用例之間,用例與用例之間都有哪些關係。
.net

1.關聯關係blog

        定義:參與者與用例之間一般用關聯關係來描述。繼承

        表示方法:帶箭頭的實線,箭頭指向用例。基礎

        如圖所示:擴展

 

 

2. 泛化關係方法

        定義:一個用例能夠被特別列舉爲一個或多個子用例,這被稱爲用例泛化。im

        泛化關係在類間也有。總結

        子用例從父用例處繼承行爲和屬性,還能夠添加行爲或覆蓋、改變已繼承的行爲。異常

        表示方法:帶空心箭頭的實線,箭頭指向被泛化(被繼承的用例,即父用例。(PS:泛化關係的箭頭不是指向被泛化,而是指向被繼承。泛化和繼承是不一樣的方向。泛化是從下到上的抽象過程,繼承是從上到下,從通常到特殊的過程。)

        如圖所示:

 

        機房收費系統中能夠這樣應用:

 

        當系統中具備一個或多個用例是通常用例的特化時,就使用用例泛化。

3.包含關係

        定義:其中一個用例(基礎用例)的行爲包含了另外一個用例(包含用例)的行爲。基礎用例能夠看到包含用例,並依賴於包含用例的執行結果。可是兩者不能訪問對方的屬性。

        表示方法:虛線箭頭+<<include>>字樣,箭頭指向被包含的用例。

        如圖所示:

 

        使用狀況:

            (1)若是兩個以上用例有重複的功能,則能夠將重複的功能分解到另外一個用例中。其餘用例能夠和這個用例創建包含關係。

            (2)一個用例的功能太多時,能夠用包含關係建立多個子用例。

 

 4.擴展關係(extend)

        定義:是把新行爲插入到已有用例的方法。

       我的感受能夠叫作特殊狀況處理。好比去食堂用飯卡打飯,絕大部分人是刷卡,拿飯,兩個步驟就完成了。可是若是某個學生的飯卡里沒錢了,假定不用現金或者借錢或者賒帳等等其餘的方式來打飯,而是必須用本身的飯卡來打飯。那麼他就要先去給飯卡充值。「飯卡充值」就是「刷卡」的一個擴展用例。「飯卡充值」與「刷卡」就是擴展關係。

        表示方法:虛線箭頭+<<extend>>字樣,箭頭指向被擴展的用例(即基礎用例)。

       如圖所示:

        做用:爲處理異常或構建靈活系統框架提供了一種有效的方法。

對比:

        包含與擴展的區別。在擴展關係中,基礎用例沒有擴展也是完整的,而在包含關係中,基礎用例依賴於包含用例的執行結果。

總結:

        全部的箭頭指向都是「被」的一端。

        找關係,是一件挺複雜的事兒。從不一樣的角度看會有不一樣的結果。找到大前提,再理順特定環境下的關係,會更加順手。

相關文章
相關標籤/搜索