用例图中的extend和include
来源:互联网 发布:如何评价金正恩 知乎 编辑:程序博客网 时间:2024/05/14 22:29
在学习UML的时候,没有特别注意这两个小东东,是说话当时只是走马观花的看了一遍,没能记下多少东西。
后来在做机房收费系统的时候自己虽然没有注意到,但是看到其他同学的用例图中出现了这两条线,于是乎查了一下。当时感觉很简单,没什么可看的,所以只是查了大概意思,没有去深究。
这次,它竟然又来了,看来这个东西必然是重点啊!
看软考视频的时候,在用例图部分老师重点讲解了这个Extendhe 和Include的关系表示的两个用例之间的关系。
下面我就通过一个图来说明:
这是使用Ratioal Rose 画的简单的一个小例子,图中已经包括了我们要讨论的Extend 和Include两种关系。
对于Extend 和Include,比较官方的解释是这样的:
包含关系:使用包含(Include )用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base )用例复用。基用例控制与包含用例的 关系,以及被包含用例的事件流是否会插入到基用例的事件流中。基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。
扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extend )用例加以封装,再让它从基用例中声明的扩展点(Extension Point )上进行扩展,从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。
我是这样理解的,Include,从表面英文意思来看,是包含的意思,也就是说是基用例的一部分,是不可缺少的。即:必须执行。
而Extend是扩展,也就是在原有基础上新增加的一个。即:可执行也可不执行。
以上面的例子说,就是:要想预约和借书,必须先登陆,即Include用例是必须要执行的,否则基用例无法完成。而还书的话就不一定非得要缴纳罚款,即在一定条件下才去执行Extend的用例。
另外,我们要注意的是:
在 include 关系中,预约和借书知道登陆的存在,而登陆根本不知道有预约和借书
在 extend 关系中,还书不知道缴罚款的存在,但缴罚款却是知道还书并且知道如何在还书中作扩展的
- 用例图中的extend和include
- 用例图中的extend和include
- UML中的extend和include
- Use Case中的include, extend和generalization
- UsecaseDiagram中的include和extend比较
- 用例图extend和include之间的区别
- Ruby 中的$LOAD_PATH,Require,Load,Include和Extend介绍
- 用例图 extend include
- 用例图 extend、include、泛化
- Ruby的include和extend
- 【软考路上】——用例图之include和extend
- 对UML中的include和extend两个常见用例间关系的理解
- 用例间的关系:include和extend
- UML中include和extend的不同
- 用例图中如何区分include和extend?
- ruby include 和 extend的使用
- UML中include和extend关系
- 用例图中如何区分include和extend?
- CodeForces 248B - Chilly Willy - 找规律
- eclipse默认编码为GBK,修改为UTF8的方法
- 使用Weka进行数据挖掘(Weka教程二)Weka数据之ARFF与多文件格式转换
- 【WebService】第三章、SebService相关技术以及客户端调用
- ionic 时间选择说明
- 用例图中的extend和include
- QT学习之QString的arg方法
- Inverted Index
- for循环跟while循环的区别
- 百练1017:装箱问题
- android 动画之Scroller
- 数组指针和指针数组以及二维数组的函数间传递与返回
- 用例图中,应该如何区分《include》和《extend》
- canvas 绘图API(二)