1.定义不同

包含关系是指基本用例的行为包含了另一个用例的行为,主要描述的是组合关系。使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。

而泛化关系是指一般与特殊的关系,与面向对象程序设计中的继承概念基本相同。子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系;子用例可以使用父用例的一段行为,也可以重载它。

2.灵活性不同

包含关系是动态的关系,可以在运行时改变;泛化关系是静态的,在编译时就确定了。所以包含比泛化要灵活,现代面向对象程序设计也提倡多用组合(包含关系),少用继承(泛化关系)。

3.使用条件不同

当可以从两个或两个以上的用例当中提取公共行为时,应该可以使用包含关系来表示他们。

当多个用例共同拥有一种类似的结构和行为时,可以将他们的共性抽象成为父用例,其他的用例作为泛化关系的子用例。

延伸阅读

扩展关系是什么

当某个新用例在原来的用例基础上增加了新的步骤序列,则原来用例被称为基用例,这种关系称为扩展关系,可以这样理解这里的基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能,只有当扩展点被激活时,子用例才会被执行。由子用例指向基用例,比如说充值金额查询用例中有导出Excel子用例,离开子用例不影响充值金额查询的功能,这就是扩展关系。

扩展关系与包含关系的区别在于:扩展关系中基本用例的基本流执行时,扩展用例不一定执行,即扩展用例只有在基本用例满足某种条件的时候才会执行;而包含关系中基本用例的基本流执行时,包含用例一定会执行。