我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下Windows平台下用例图中包含(include)、扩展(extend)和泛化(generalization)介绍。
用例图是解决用户需求的图,画好用例图一定要理清用例之间的关系。用例之间有三种关系:包含(include)扩展(extend)和泛化(generalization)。
下面介绍三者的相同点和不同点:
相同点: 三者都是从现有的用例中抽取公共信息的那部分,作为一个单独的用例,然后采用不同的方法来重用这个公共的用例。
不同点:
1.包含(include)
include:包含关系。
当两个或多个用例中,共用一组相同的动作,这时可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例共享。
因为子用例被抽出,基用例并非一个完整的用例,所以include关系中的基用例必须和子用例一起使用才够完整,子用例也必然被执行。
include关系在用例图中使用带箭头的虚线表示(在线上标注<<include>>),箭头从基用例指向子用例。
2.扩展(extend)
extend:扩展关系,表示对基用例的扩展。
基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。.
extend的基用例中存在一个扩展点,只有当扩展点被激活时,子用例才会被执行。
extend关系在用例图中也使用带箭头的虚线表示(在线上标注<<extend>>),但箭头是从子用例指向基用例。
3.泛化(generalization)
generalize:泛化关系,是一种继承关系。
子用例将继承基用例的所有行为关系和通信关系,也就是说在任何使用基用例的地方都可以用子用例来代替。
泛化关系在用例图中使用实线空心箭头表示,箭头方向从子用例指向基用例
作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。