[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

博客地址: http://www.cnblogs.com/wolf-sun/
博客版权: 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。

转载:http://www.cnblogs.com/wolf-sun/p/3413072.html

时间: 2024-09-17 04:34:50

[UML]UML系列——用例图中的各种关系(include、extend)的相关文章

UML学习:用例图中的各种关系(include、extend)

用例图中的各种关系 一.参与者与用例间的关联关系 参与者与用例之间的通信,也成为关联或通信关系. 二.用例与用例之间的关系 包含关系(include) 扩展关系(extend) 包含关系 (1)  概念 包含关系描述的是一个用例需要某种功能,而该功能被另外一个用例定义,那么在用例的执行过程中,就可以调用已经定义好的用例. (2)表示符号<<include>> 再如上篇文章中饮料自动售货机的例子:

[UML]UML系列——类图Class

相关文章       [UML]UML系列--用例图Use Case       [UML]UML系列--用例图中的各种关系(include.extend) 一.类图的概念及组成         1.类图的概念             类图是描述类.接口已经他们之间关系的图,它显示了系统中各个类的静态结构,是一种静态模型.         2.类图的组成            2种类元素(类和接口)            4种关系(依赖关系.实现关系.泛化关系和关联关系) 二.类的概念与表示符号

[UML]UML系列——类图class的依赖关系

相关文章          [UML]UML系列--用例图Use Case       [UML]UML系列--用例图中的各种关系(include.extend)       [UML]UML系列--类图Class       [UML]UML系列--类图class的关联关系(聚合.组合) 依赖关系的概念与符号        依赖表示一个类以某种形式依赖于其他类.当两个类处于依赖关系中时,其中一个类的改变可能会影响另一个类.        符号:   依赖关系在代码中的表现       在程序代

[UML]UML系列——类图class的泛化关系

系列文章       [UML]UML系列--用例图Use Case       [UML]UML系列--用例图中的各种关系(include.extend)       [UML]UML系列--类图Class       [UML]UML系列--类图class的关联关系(聚合.组合)       [UML]UML系列--类图class的依赖关系 泛化关系的引入       在现实生活中,有时会出现一类事物具有另一类事物的全部特点,除此之外还有自身的特点.       例如:        "不管

[UML]UML系列——类图class的实现关系Realization

系列文章       [UML]UML系列--用例图Use Case       [UML]UML系列--用例图中的各种关系(include.extend)       [UML]UML系列--类图Class       [UML]UML系列--类图class的关联关系(聚合.组合)       [UML]UML系列--类图class的依赖关系       [UML]UML系列--类图class的泛化关系 接口的概念        接口是一组没有实现的操作的集合.接口只提供操作的声明,不提供任何

[UML]UML系列——状态机图statechart diagram

系列文章 [UML]UML系列--用例图Use Case [UML]UML系列--用例图中的各种关系(include.extend) [UML]UML系列--类图Class [UML]UML系列--类图class的关联关系(聚合.组合) [UML]UML系列--类图class的依赖关系 [UML]UML系列--类图class的泛化关系 [UML]UML系列--类图class的实现关系Realization [UML]UML系列--包图Package [UML]UML系列--活动图activity

[UML]UML系列——时序图(顺序图)sequence diagram

系列文章 [UML]UML系列--用例图Use Case [UML]UML系列--用例图中的各种关系(include.extend) [UML]UML系列--类图Class [UML]UML系列--类图class的关联关系(聚合.组合) [UML]UML系列--类图class的依赖关系 [UML]UML系列--类图class的泛化关系 [UML]UML系列--类图class的实现关系Realization [UML]UML系列--包图Package [UML]UML系列--活动图activity

[UML]UML系列——类图class的关联关系(聚合、组合)

关联的概念       关联用来表示两个或多个类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的应用. 程序演示:关联关系(code/assocation)       假设:一个公司只有三名员工:一个员工要么没有工作,要么只能在一个公司工作.(代码简化了,主要说明关联关系)       Person类: 1 class person 2 { 3 public string name; 4 public person(string eName) 5 { 6

[UML]UML系列——协作图(通信图)collaboration diagram

原文:[UML]UML系列--协作图(通信图)collaboration diagram 系列文章 [UML]UML系列--用例图Use Case [UML]UML系列--用例图中的各种关系(include.extend) [UML]UML系列--类图Class [UML]UML系列--类图class的关联关系(聚合.组合) [UML]UML系列--类图class的依赖关系 [UML]UML系列--类图class的泛化关系 [UML]UML系列--类图class的实现关系Realization