目录
一、用例图
用例图摘要
- 用例图是从用户角度描述系统功能,是用户所能观察到的系统功能的模型图
- 用例是系统中的一个功能单元
- 用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行(或称为发起了哪个用例)
- 用例图多用于静态建模阶段(主要是业务建模和需求建模)
用例图主要元素
- 参与者(Actor)
- 用例(Use Case)
- 关联关系(Association)
- 包含关系(Include)
- 扩展关系(Extend)
- 泛化关系(Generalization)
1. 参与者(Actor)
参与者在uml中用下面带有名字的小人来标示,主要表示与您的软件系统交互的人,组织或者外部软件系统。
2. 用例(Use Case)
用例在uml中用使用椭圆标示,主要说明你的软件系统的功能,是使用文字描述的形式说明你的系统的功能。
3. 关系
参与者与用例、参与者之间、用例之间的联系。
4. 边界
一组用例描述的系统或子系统,用矩形框表示。
用例图之间的关系
(1)参与者之间的关系
- 泛化关系
(2)参与者与用例之间的关系
- 关联关系:参与者与用例之间通常用关联关系来描述。带箭头的实线表示,箭头指向用例。
(3)用例之间的关系
- 包含关系:一个用例(基础用例)的行为包含另外一个用例(被包含用例)的行为。基础用例依赖于包含用例的执行结果。包含关系是通过在依赖关系上应用<<include>>构造型(衍型)来表示的。箭头的方向是从基础用例指向被包含的用例。包含关系是一定要执行的。
应用情形:
- 如果两个以上用例有重复的功能,则可以将重复的功能分解到另一个用例中。其他用例可以和这个用例建立包含关系。
- 一个用例的功能太多时,可以用包含关系创建多个子用例。
- 扩展关系:扩展用例可以在基础用例之上添加新的行为,基础用例必须声明某些特定的扩展点,扩展用例只能在这些扩展点上扩展新的行为,将扩展用例的事件流在一定的条件下按照相应的扩展点插入到基础用例中。扩展关系是通过在依赖关系上应用<<extend>>构造型(衍型)来表示的。箭头方向由扩展用例指向基础用例。扩展关系是当特殊情况下触发的。
- 泛化关系:一个用例可以被特别列举为一个或多个子用例,这被称为用例泛化。当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。泛化关系表示的是一般与特殊的关系。
二、用例图例子
1. 庭审系统
2. 图书馆借书系统
三、用例图实训
例题:商场购物卡
- 若某商场中发行一种购物卡,用户可以根据自己的需要提出申请去办理购物卡。
- 商场的卡管理员可以根据申请,创建新的购物卡。
- 用户可以向购物卡预存费用,商场卡管理员为该用户添加相应的预存费用。
- 用户可以用购物卡在商场进行消费,每进行一次消费,售货员就从购物卡中扣除相应的费用。
- 当购物消费每满一定数额时,商场自动在卡中添加奖励费。
分析:
- 参与者:购物卡管理员、售货员。
- 用例:创建新卡、为卡添加预存费用、消费。
- 创建新卡、为卡添加预存费用、消费都需要相关人员登录操作。
例题:小型网上书店
小型网上书店系统简介: 本书店系统提供图书的浏览功能,无论登录与否都能浏览库存的图书,而已注册用户还可以进行图书的购买以及自己订单的管理。相对于使用者,系统还有一个管理图书的管理员,用于对库存书籍进行增加、删除、检索等工作。