必威体育Betway必威体育官网
当前位置:首页 > IT技术

UML系列——用例图中的各种关系(include、extend)

时间:2019-07-22 02:42:08来源:IT技术作者:seo实验室小编阅读:78次「手机版」
 

用例图

转自: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.扩展关系

   对扩展用例的限制规则:将一些常规的动作放在一个基本用例中,将可选的或只在特定条件下才执行的动作放在它的扩展用例中。

 在分析的时候,参考他们的使用场合,你就会豁然开朗......

相关阅读

导数、微分、偏导数、全微分、方向导数、梯度的定义与

学习到机器学习线性回归和逻辑回归时遇到了梯度下降算法,然后顺着扯出了一堆高数的相关概念理论:导数、偏导数、全微分、方向导数、

python基于共现的《红楼梦》人物关系图

作为中国古典四大名著,《红楼梦》的影响深远,至今家喻户晓。历来红学家们都在研究《红楼梦》。最近受python自然语言处理的影响,突然

淘宝和千牛是什么关系?千牛有什么用?

淘宝和千牛是什么关系?千牛有什么用?千牛是淘宝、天猫卖家工作台,不过最初淘宝商家使用的是阿里旺旺卖家版,千牛可以说是阿里旺旺的升

淘宝达人是什么?淘宝达人与微淘有什么关系?

淘宝达人是什么?淘宝达人与微淘有什么关系?淘宝达人是什么,前面我们seo实验室已经介绍过了。大家发现很多谈到淘宝达人流量入口的

【深度学习基础-14】回归中的相关系数r和决定系数R^2

1 皮尔逊相关系数(Pearson Correlation Coefficient) 皮尔逊相关系数广泛用于度量两个变量之间的相关程度,其值介于-1与1之间。 两

分享到:

栏目导航

推荐阅读

热门阅读