用例图中的extend和include

在学习UML的时候,没有特别注意这两个小东东,是说话当时只是走马观花的看了一遍,没能记下多少东西。

        后来在做机房收费系统的时候自己虽然没有注意到,但是看到其他同学的用例图中出现了这两条线,于是乎查了一下。当时感觉很简单,没什么可看的,所以只是查了大概意思,没有去深究。

        这次,它竟然又来了,看来这个东西必然是重点啊!

       看软考视频的时候,在用例图部分老师重点讲解了这个Extendhe 和Include的关系表示的两个用例之间的关系。

        下面我就通过一个图来说明:


        这是使用Ratioal Rose 画的简单的一个小例子,图中已经包括了我们要讨论的Extend 和Include两种关系。

        对于Extend 和Include,比较官方的解释是这样的:

       包含关系:使用包含(Include )用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base )用例复用。基用例控制与包含用例的 关系,以及被包含用例的事件流是否会插入到基用例的事件流中。基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。

        扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extend )用例加以封装,再让它从基用例中声明的扩展点(Extension Point )上进行扩展,从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。

        我是这样理解的,Include,从表面英文意思来看,是包含的意思,也就是说是基用例的一部分,是不可缺少的。即:必须执行。

        而Extend是扩展,也就是在原有基础上新增加的一个。即:可执行也可不执行。

        以上面的例子说,就是:要想预约和借书,必须先登陆,即Include用例是必须要执行的,否则基用例无法完成。而还书的话就不一定非得要缴纳罚款,即在一定条件下才去执行Extend的用例。

        另外,我们要注意的是:

        在 include 关系中,预约和借书知道登陆的存在,而登陆根本不知道有预约和借书

        在 extend 关系中,还书不知道缴罚款的存在,但缴罚款却是知道还书并且知道如何在还书中作扩展的

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值