下面这个用例图包括了一个用例图需要用到的所有要素:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/pathuang68/EntryImages/20090422/1.jpg)
用例图是对系统的动态方面建模的5种图之一。
用例图之组成部分:
- 用例
- 参与者
- 依赖、泛化和关联等3种关系。其中依赖有包含(include)和延伸(extend)两个构造型。
参与者仅通过关联与用例相连。一个参与者和一个用例之间的关联表示两者之间的通信,任何一方都可发送和接受消息。
被包含的用例从不孤立存在,仅作为某些包含它的更大的基础用例的一部分出现。
include、extend和generalization三种关系之间的区别:
- 条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的;
- 直接性:泛化中的子用例和extend中的延伸用例为参与者提供直接服务,而include中被包含的用例为参与者提供间接服务。
extend和generalization两者之间的区别:
- 对extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。
- 对generalization而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系。
举例:
比如在登录同时可以选择“记住我的用户名和密码”,那么这个“记住我的用户名和密码”就是对登录的一个extend;
如果登录有普通会员登录和VIP会员登录两种,那么此两者和用户登录的关系就是generalization。
见下图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/pathuang68/EntryImages/20090422/2.jpg)
延伸用例也被经常成为“扩展用例”,用例也经常被称为“用况”