本篇来介绍UML中的用例模型。
1 什么是用例模型
用例模型(Usecase Model)
用例模型包括:
- 系统边界
- 参与者
- 用例
- 用例图
- 用例描述
用例模型是系统分析的结果,是系统设计的输入
2 用例模型具体介绍
2.1 参与者
2.1.1 Actor简介
参与者(Actor),也有翻译为“执行者”,它代表位于系统之外并和系统进行交互的一类事物,包括人、物、其它软件子系统等。
通过参与者,可以:
- 对系统软件与外界发生的交互进行分析和描述
- 了解客户希望软件系统提供哪些功能
参与者有两种图形表示:
- 参与者是人:用“小人图”
- 参与者是某个系统:用方框图,构造型《actor》,(stereotype)
对每一类参与者要有简短描述,例如:
- 学生:需要参加培训计划规定的课程,并通过考核
2.1.2 如何寻找系统的Actor?
可以根据下面的问题来寻找Actor
- 谁使用系统?
- 谁安装系统、维护系统?
- 谁启动系统、关闭系统?
- 谁从系统中获取信息,谁提供信息给系统?
- 在系统交互中,谁扮演了什么角色?
- 系统会与哪些其它系统相关联?
- 内/外部定时器
2.1.3 小例子:寻找Actor
学院管理系统的Actor有:
- 用户/学生/教师/系统管理员
- 数据库
- 如果有子系统
- 其它系统作为一个Actor
- 有时数据库可以作为一个Actor
2.2 用例
2.2.1 Usercase简介
用例(Usecase),也被翻译为“用况”,是系统为响应参与者引发的一个事件而执行的一系列的处理/动作,而这些处理应该为参与者产生一种有价值的结果,这些动作包括:
- 正常情况的各种动作序列
- 非正常情况时软件系统的动作序列的描述,Exception / Alternate
每个用例都有一个名称,注意是短小精悍的动名词,如
- ATM系统,经典的用例有:取钱、存钱、修改密码等
2.2.2 如何寻找用例?
可以根据下面的问题来寻找Usecase:
- 参与者希望系统提供什么功能?
- 系统是否存储和检索信息?
- 当系统改变状态时,是否通知参与者?
- 是否存在影响系统的外部事件,是哪个参与者通知系统这些外部事件?
- 哪个参与者触发了活动?
2.3 用例图
2.3.1 用例图基本元素
用例图包括:
- 边界:一个泛泛的概念,在图中用一个方框表示
- 参与者:Actor
- 用例:Usecase
- 关系:关联关系
2.3.2 用例图中的关系
- 参与者与用例:关联关系,实线表示
- 用例与用例:
- include包含:ATM系统输入密码
- extend扩展:ATM是否要打印单据
- 泛化:下订单与网上下订单(泛泛的概念与具体的概念)
- 参与者与参与者(两个小人之间:买家与顾客、销售代理):泛化关系,实线+空心箭头
2.4 用例描述
仅有用例图还不够,还需要详尽的文字描述!这就是用例描述(Usecase description)。
用例描述包括:
- 主事件流:一切正常时的动作序列
- 异常事件或可选事件流:主事件流的每一步都有可能出现异常,此处描述异常情况的处理
用例描述的格式
- 总述(Summary),这个用例大概是什么功能
- 参与者列表(Actor List),这个用例涉及到哪些参与者
- 前置条件(Pre-condition),这个用例要想运行,一定要满足一些条件。TAM取钱,需要网络要通,ATM里要有钱
- 描述(Description),怎么取钱,第一步,插卡,第二步,系统提示,第三步,输入密码,第四步,验证密码等等
- 后置条件(Post-condition),用例执行完后,系统应该处于哪种状态,取钱的后置条件,取到了真的钱,同时银行账户要扣掉对应的钱,不能多扣也不能少扣
- 异常情况(Exception),密码输错,余额不足,取的钱没吐出来
3 用例模型案例:POS系统
用例图
用例描述
用例:处理销售
- 总述(Summary):完成一笔日常销售的业务处理
- 参与者列表(Actor List):顾客、收银员、财务子系、税金计算器…
- 前置条件(Pre-condition):收银员必须经过确认和认证
- 描述(Description):
- 1)顾客s携带所购商品或服务到收银台通过POS机付款
- 2)收银员开始一次新的销售交易
- 3)收银员输入商品条码
- 4)系统记录出售的商品,显示品名、价格、数量
- 重复第3~4步,直到输入结束
- 5)系统显示应付总额
- 6)顾客付钱,系统处理支付
- 7)系统记录完整的销售信息,打印票据
- 8)顾客携带商品和票价离开,销售结束
- 后置条件(Post-condition):
- 系统完整记录该笔销售业务的信息
- 系统正确协同其它子系统,确保数据一致性
- 异常情况(Exception):
- 3a:无效商品ID,收银员手工输入,或取消该商品
- 3b:顾客要求删除某项已输入的商品,需要经理授权,并删除商品
- 6a:顾客信用卡不足部分,需要现金支付,请经理授权,并接受现金
- …
4 总结
本篇介绍了UML中的用例模型,包括参与者、用例、用例图、用例图中的关系、用例描述等等。