本篇来介绍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中的用例模型,包括参与者、用例、用例图、用例图中的关系、用例描述等等。