[UML]UML系列——用例图中的各种关系(include、extend)
用例圖中的各種關系
一、參與者與用例間的關聯關系
???? ?參與者與用例之間的通信,也成為關聯或通信關系。
二、用例與用例之間的關系
- 包含關系(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.擴展關系
??????? 對擴展用例的限制規則:將一些常規的動作放在一個基本用例中,將可選的或只在特定條件下才執行的動作放在它的擴展用例中。
???? ?在分析的時候,參考他們的使用場合,你就會豁然開朗......
????? 系列文章:
?????? [UML]UML系列——用例圖Use Case
posted on 2014-03-14 22:00 NET未來之路 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/lonelyxmas/p/3601374.html
總結
以上是生活随笔為你收集整理的[UML]UML系列——用例图中的各种关系(include、extend)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生活就是这样是什么歌呢
- 下一篇: 你觉得刘德华的票房号召力下降了吗