这次我们分析一下用例图的画法,有人或许认为用例图很简单,但是如何让别人一眼就能明白你的用例图,如何让别人看到你的用例图的时候能够明白你所想的业务流程,这一点就比较困难了!
首先,我们假定一个业务,例如:开户和销户.那么我们如何来话用例图呢?
要求有如下的内容:
1,销户之前必须开户,这个要求怎么画?下面这种画法对吗?
2,开户之后可以销户,可以不销户.这个要求怎么画,下面这种画法对吗?
对于这两个要求,你会画成什么样的用例呢?在讨论上述两个要求的用例的画法之前,读者不妨事先画一下。
接下来,我们先讲解一下用例中的三种关系:包含、扩展和泛化
包含:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。
包含从字面上理解就是一种大的包含小的意思。实际上,这种字面上的理解就是包含关系的实质,怎么讲呢?就是说一个用例如果分为几个小的用例,这就是包含关系,从粒度的角度就是粗粒度和细粒度的关系。
如下图中的关系
所以第一个要求中的开户和销户的关系所用的图中的include是错误的。那么如何来表示我们第一个要求中的用例呢?不要着急,我们先了解一下扩展,相信,你会有一个自己的答案。
扩展:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(Extension
Point)上进行扩展,从而使基用例行为更简练和目标更集中。
字面理解扩展就是一种放射,就是从一点到另一点的延伸,说的更明白一点就是一种用例的先后关系。
如下图中的关系:
所以,我们的第二个要求所对应的图中的extend关系就是正确的。那么我们的第一个要怎么办的?其实我们第二个要求中的图所表示的关系就已经将两个要求都表示出来了!
泛化:子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。
直白一点就是一个是抽象的用例,一个是具体的用例。
如下图中的关系:
总结:
1,用例有大小之分用包含。
2,用例有先后之分用扩展。
3,用例有父子之分用泛化。
用例图是非常有用的一种图,如果图中的关系不明或关系错误,很有可能给开发人员和用户造成歧义。所以选择适当的关系就显的至关重要。
分享到:
相关推荐
扩展名详解.chm (扩展名英文详解): 扩展名详解.chm
扩展欧几里得详解证明,里面没有例题,详细请看统一标题html的文档
KMP、Mancher和扩展KMP算法详解,但是其中的参考代码有一点小错误,请自行参考网络
扩展欧几里得 代码 详解 证明 例题
数据库和DBC的中文说明详解.包含所有的文件全部中文详解(魔兽世界单机技术学习资料.CHM)
IPv6详解IPv6详解IPv6详解IPv6详解IPv6详解IPv6详解IPv6详解IPv6详解
SEO详解SEO详解SEO详解SEO详解SEO详解SEO详解SEO详解SEO详解SEO详解SEO详解SEO详解SEO详解SEO详解SEO详解
BIOS 中断 扩展int13使用详解说明参考
IOC详解IOC详解IOC详解IOC详解IOC详解IOC详解IOC详解IOC详解
端口详解 端口详解 端口详解 端口详解 端口详解
Oracle详解Oracle详解Oracle详解Oracle详解
交换机VLAN与GVRP详解,包含实验部分。交换机VLAN与GVRP详解,包含实验部分。交换机VLAN与GVRP详解,包含实验部分。交换机VLAN与GVRP详解,包含实验部分。交换机VLAN与GVRP详解,包含实验部分。交换机VLAN与GVRP详解...
curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令...
数论是ACMer所必须掌握的知识,所以说学好数学哇!
JDBC详解 JDBC详解JDBC详解 JDBC详解JDBC详解 JDBC详解
JQuery详解JQuery详解JQuery详解JQuery详解JQuery详解JQuery详解
主成分分析详解配有matlab程序和详解还有使用的方法扩展
uboot详解 uboot详解 uboot详解 uboot详解
dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解dm分区详解...
UML中用例图:包含、扩展、泛化三种关系详解。在设计的时候可以参考一下。