什么是用例图:
1. 用例图就是在建立项目需求时候,不需要展现系统内部结构的情况下对系统功能描述,描述整个系统功能,是参与者与所能观察和使用到的系统功能的模型图
用例图的基本元素:
A.角色(actor):是我们软件的使用者,与我们应用程序进行交互的用户。
表示:用一个小人表示
B.用例(use case): 就是外部可见的功能,可以对系统提供相应的服务的单元。
这里需要注意的是:任何用例都不能在缺少参与者的情况下单独存在
表示:
C.联系
这里是这一部分的难点:
关系类型 | 说明 | 箭头指向 | 符号表示 |
关联 | 表示参与者和用例之间的关系
| 消息接收者 这里是实线+箭头 | |
泛化 | 参与者或者用例之间的联系 | 指向父用例 实线+空心箭头 | |
包含 | 用例之间的关系 包含用户是必选的,如果缺少包含用例,基用例就不完整 | 指向分解出来的功能的步骤用例 虚线+箭头 | |
扩展 | 用例之间的关系,扩展用例是可选择的,如果缺少扩展用例不会影响到基用例的完成性,扩展列只有在一定的条件下才可以被执行
|
指向基础用例 虚线+箭头 | |
|
|
|
|
其实在画图的时候,突然遇到一个问题:
我在画一般用户的use case 图的时候,把查询用户信息作为一个用例
下面的一些:查看余额信息,查看学生上线状态信息,查看学生充值记录信息等等。这些实例和 查看实例是属于泛化关系还是包含关系?
于是我从百度上查到才弄明白泛化和包含的区别:
包含关系: 比如在自动售货机里面,向柜里增加货品,那么必然包括打开柜门和关上柜门, 这就是包含关系,也就是说做基事件的时候,必然会做它所包含的事件。
而且在包含关系中,基类是不能单独存在的,如果没有被包含用例,那么基类是不完整的
用例图的粒度和等级:
用例图可以分为三个等级:
概念级:总体对系统进行描述
用户级:将系统划分成不同的功能模块
子功能:对角色,功能模块的要求更具体,划分的更加明确
下面是我针对“机房收费系统”画的几个用例图:
一般用户:
操作员:
管理员:
总图:
这些图希望看到的朋友可以帮忙看看有没有错误,如果有错误请评论下方。