最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

UML 用例图中include,extends,uses的区别

运维笔记admin28浏览0评论

UML 用例图中include,extends,uses的区别

UML 用例图中include,extends,uses的区别

区别extends 、 use、include

extends是对已有用例的扩展

use是使用了另一个用例

include,是指一个用例包含另一个用例

extends的关键在于,他不会修改原有的用例说明,而是在扩展后的用例里描述扩展点

比如:
用例UserLogin,另一个用例CheckPermisonViaLDAP,扩展时说明在UserLogin的第2步扩展,仅仅是增加功能,不影响原流程

use理解为两个用例是平行的关系,也就是说被引用的用例也是可独立执行的。

included用例则不是可独立执行的

类比:

  1. (extends 实例)–例如:老王进城办事,2小时就可以回去,在这2小时内内急时就会去上厕所。上厕所用例是进城用例的扩展,因为不上厕所老王进城办事也可完成。
  2. (use 实例)–例如:老王进城,他可以坐飞机,可以坐火车,还可以走路,那么进城用例就泛化为坐飞机、坐火车和走路三个用例了,它们之间存在层级关系。
  3. (include实例)–例如:还是老王进城,他从海南来北京办事,3天才能回去,那么这种情况下进城用例与上厕所用例的关系就应该是包含关系了

注意:这些只是一些约定。不是UML的语法核心内容。大家都认为其实是没什么区别,都是Association,只是可以加一个批注叫做 或者,实际做图的时候,想写什么就可以写什么的。比如说:


UML用例图之泛化(generalization)、扩展(extend)和包含(include)关系

原文链接
[注] 原文中具体案例图参考,更容易理解,这里我只是把重要的概念知识编辑了下。

在画用例图的时候,理清用例之间的关系是重点。
用例的关系有泛化(generalization)、扩展(extend)和包含(include)。其中include和extend最易混淆。下面我们结合实例彻底理清三者的关系。

基本概念

用例图(Use Case Diagram):用例图显示谁是相关的用户,用户希望系统提供什么服务(用例),以及用例之间的关系图。用例图主要的作用是获取需求、指导测试。

用例图的4个基本组件:参与者(Actor)、用例(Use Case)、关系(Relationship)和系统。

泛化(generalization):泛化关系是一种继承关系,子用例将继承基用例的所有行为,关系和通信关系,也就是说在任何使用基用例的地方都可以用子用例来代替。泛化关系在用例图中使用空心的箭头表示,箭头方向从子用例指向基用例。

扩展(extend): extend关系是对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。 extend的基用例中将存在一个扩展点,只有当扩展点被激活时,子用例才会被执行。 extend关系在用例图中使用带箭头的虚线 表示(在线上标注<>),箭头从子用例指向基用例。

包含(include): include为包含关系,当两个或多个用例中共用一组相同的动作,这时可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例所共享。因为子用例被抽出,基用例并非一个完整的用例,所以include关系中的基用例必须和子用例一起使用才够完整,子用例也必然被执行。include关系在用例图中使用带箭头的虚线表示(在线上标注<>),箭头从基用例指向子用例。

发布评论

评论列表(0)

  1. 暂无评论