轉自:http://www.cnblogs.com/wolf-sun/p/3411175.html
用例圖中的各種關係
一、參與者與用例間的關聯關係
參與者與用例之間的通信,也成爲關聯或通信關係。
二、用例與用例之間的關係
- 包含關係(include)
- 擴展關係(extend)
包含關係
(1) 概念
包含關係描述的是一個用例需要某種功能,而該功能被另外一個用例定義,那麼在用例的執行過程中,就可以調用已經定義好的用例。
(2)表示符號<<include>>
再如上篇文章中飲料自動售貨機的例子:
在代碼中用例的包含關係是什麼呢?
1 class coat //外套 2 { 3 public string name; 4 public double price; 5 public coat(string myName, double myPrice) 6 { 7 name = myName; 8 price = myPrice; 9 } 10 public void pay() 11 { 12 discount(); 13 Console.WriteLine("該件外套的應付款爲:{0}", price); 14 } 15 public void discount() 16 { 17 price = price * 0.8; 18 } 19 }
控制檯程序
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 coat myCoat = new coat("勁霸", 1000); 6 Console.WriteLine("該外套的名稱爲:{0}", myCoat.name); 7 Console.WriteLine("該外套的原價爲:{0}", myCoat.price); 8 myCoat.pay(); 9 } 10 }
用例圖:
實例:圖書管理系統
圖書管理員處理借書或者還書時的用例圖,借書與還書都要考慮是否有overtime的書。
實例:訂單管理系統
(3)使用場合
a.如果兩個以上用例有大量一致的功能,則可以將這個功能分解到另一個用例中,其他用例可以和這個用例建立包含關係(如之前介紹的飲料自動售貨機)。
b.一個用例的功能太多時,可以使用包含關係建立若干個更小的用例。(如學生管理系統的用例圖)
實例:學生管理系統
(4)意義
它有助於將來實現系統時,確定哪些功能可以重用,在編寫代碼時就可以實現代碼的重用,縮短開發週期。
注意:執行基用例時,每次都必須調用被包含用例。
擴展關係
(1)概念
用一個用例(可選)擴展另一個用例(基本例)的功能。
(2)符號表示<<extend>>
代碼中是什麼?
1 class coat //外套 2 { 3 public string name; 4 public float price; 5 6 public coat(string myName,float myPrice) 7 { 8 name = myName; 9 price = myPrice; 10 } 11 public void pay() 12 { 13 if (price > 800) 14 discount(0.9f); 15 Console.WriteLine("該件外套的應付款爲:{0}",price); 16 } 17 18 public void discount(float x) 19 { 20 price = price * x; 21 } 22 }
控制檯程序
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 coat myCoat=new coat ("勁霸",1000); 6 Console.WriteLine("該外套的名稱爲:{0}",myCoat.name); 7 Console.WriteLine("該外套的原價爲:{0}",myCoat.price); 8 myCoat.pay(); 9 } 10 }
用例圖
注意:擴展關係的箭頭方向
(3)使用場合
對擴展用例的限制規則:將一些常規的動作放在一個基本用例中,將可選的或只在特定條件下才執行的動作放在它的擴展用例中。
怎麼區分是包含關係還是擴展關係?
通過上面的例子,怎麼區分它們,你心裏也有數了,其實在擴展關係中的使用場合也說明了,擴展關係的限制規則:將一些常規的動作放在一個基本用例中,將可選的或只在特定條件下才執行的動作放在它的擴展用例中。在使用的時候,你考慮這點就可以區分它們。
總結
1.包含關係
a.如果兩個以上用例有大量一致的功能,則可以將這個功能分解到另一個用例中,其他用例可以和這個用例建立包含關係(如之前介紹的飲料自動售貨機)。
b.一個用例的功能太多時,可以使用包含關係建立若干個更小的用例。(如學生管理系統的用例圖)
2.擴展關係
對擴展用例的限制規則:將一些常規的動作放在一個基本用例中,將可選的或只在特定條件下才執行的動作放在它的擴展用例中。
在分析的時候,參考他們的使用場合,你就會豁然開朗......