包含include(常用于用例图中)
形式: A 《include》>B
箭头指向: A基础用例 指向 B包含用例(父类指向子类)
A、B区别:当多个用例中用到多个相同的事件流时,把这些事件流抽象出来就形成了抽象用例,称为包含用例, (提高复用性,就像提取公因式一样),原始的是基础用例;
A的实现必须要借助B的帮助(即没有B,A不能实现功能;没有A,B能实现功能);
A知道B的存在,而B不知道A的存在
图 解 :(要实现编辑用户用例,就是借助增加、删除、更改等子用例,没有这些包含用例则不能实现基础用例 编辑用户;而增加用户等子用例自己就能实现该功能,不用借助基础用例编辑用户)
扩展:extend(常用语用例图中)
形 式: A<《extend》 B
箭头指向:B扩展用例 指向 A 基础用例(子类指向父类)
A、B区别:如果一个用例混合了多个场景,那么这个用例可以分为一个基础用例和多个扩展用例(就像发送);
扩展用例是基础用例在某些条件下触发的,扩展用例可单独存在,基础用例的实现不一定用依赖扩展用 例;
扩展用例知道基础用例的存在,而基础用例不知道扩展用例的存在;
图 解: (日结账单可以自己实现该功能,可能有时结完账要打印出来,这时就是基础用例触发扩展用例,而打印 用例不用借助日结账单用例就可以实现)
泛化:generalization(此关系常用于类图中)
形 式: A B
箭头指向: 父类指向子类
A、B区别:B子类继承A父类所有(自己可能理解时会和包含能混,自我理解是包含没有继承父类的任何属性和方 法)的属性和方法,而B子类可以有自己新的属性和方法;
父类是子类的泛化,子类是父类的继承
图 解:(椭圆、三角形具有形状类的所有属性(边长,角)和方法)