前言:

今天在看UML中用例图的时候,发现之前总结的博客有一些理解上的问题,确实include与extend有很大的区别,今天通过深入的学习,现在已经纠正以前的错误了,接下来大家和我一起看看这二者之间到底是怎么的一种存在吧!

1、之前《include》的学习误区

大家都知道include的中文意思是包含的意思,我最初的理解就是一个用例包含另一个用例!二者之间就是单单的包含关系就行了,接下来我给一下 错误 的用例图:

在这里插入图片描述

一开始我单单的认为包含的关系就是查询用户包含查询教师和查询学生,三者之间是平级的包含关系!这是错误的理解,那究竟什么是扩展关系呢,接下来步入正题!

2、解析《include》

当两个或多个用例中共用一组相同的动作,这时可以将这组相同的动作抽取出来作为一个独立的子用例,供多个基用例所共享,因为子用例被抽出,基用例并非一个完整的用例,所以include关系中的基用例必须和子用例一起使用才能够完整, 子用例必须被执行!

在这里插入图片描述

如上图,管理员有两个功能,分别是查看上机记录与结账,二者之间都包含一个用例,那就是登录,意思就是要想完成查看上机记录和结账,那么必须先要登录! 所以 将登录抽离出来!登录必须要先执行,这就是包含关系!

3、解析《extend》

《extend》 与《include》正好相反,就是说extend关系是对基本用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能,extend的基本用例存在一个扩展点,只有当扩展点被激活时,子用例才会被执行!

在这里插入图片描述

如上图所示,如果借书人按照规定时间内归还图书,那么归还图书就好,但是如果超期,那么就要执行扩展用例,此时它的超期归还扩展点被激活!

4、总结

include必须要执行,extend不必须执行,只有将扩展点激活才可以执行!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐