用例建模 - 绘制用例图
一、简答题
用例的概念。
在软件和系统工程中,用例是一列操作或事件步骤,通常定义角色(在UML中称为参与者)和系统之间的交互,以实现目标。用例和场景的关系?什么是主场景或 happy path?
关系: 每个用例提供了一个或多个场景。其中场景是指使用场景,用来说明系统可以做什么,系统是如何和用户或其他系统交互的,从而获得一个明确的业务目标。
主场景: 场景中最主要的一个,也就是用户与系统发生主要交互的那个。
happy path: 没有异常或错误条件的默认场景,即用户和系统可以很顺利、无误、符合预期地进行交互。
用例有哪些形式?
常见的三种用例形式:Brief(high level)简洁型。 通常是简短的一段话,描述主要的成功场景,便于快速了解主题和范围,可以快速创建。
Casual(简便格式)随意型。 非正式的段落格式,包含多种场景。
Fully 完整型。 所有的步骤和变化都写得很详细,并有支持部分,如先决条件和成功的保证。
对于复杂业务,为什么编制完整用例非常难?
复杂的业务涉及到的场景非常多,且场景与场景之间也有各种各样的关联,要编制完整用例不但需要熟悉各种业务场景和流程,还要懂得建模相关的专业知识,如何分离和提炼一个场景的主要元素也是在复杂场景中显得尤为重要和困难。什么是用例图?
用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图的基本符号与元素?
用例图的基本元素包括:参与者。 符号是一个小人。
用例。 符号是一个圆框。
系统边界。 符号是一个方框。
关联关系。 符号是一个虚线箭头:—->,箭头指向消息接收方。
包含关系。 符号是一个虚线箭头,有<
>标识。箭头方向指向被包含者。 扩展关系。 符号是一个虚线箭头,有<
>标识,箭头方向指向被继承者。 泛化关系。 符号是一个实线箭头,箭头是个小三角,指向父用例。
用例图的画法与步骤
确定参与者(谁来做)。 一般是:
- 使用该系统主要功能的人。
- 需要该系统支持以完成工作的人。
- 需要维护、管理该系统,以及保持该系统处于工作状态的人。
- 对本系统结果感兴趣的人。
- 与本系统有关的人或系统。
识别用例(做什么)。 一般以动词开头描述某件事情。
理清用例之间的关系。 需要仔细思考用例之间的业务关系,并以此来划分。
用例图给利益相关人与开发者的价值有哪些?
用例图可以从用户的视角描述一个系统的主要功能以及如何使用,比较符合人的自然认知,同时进行可视化,方便理解和获取需求,在整个开发过程及其他工作流中起到指导作用,同时也便于向系统用户即需求者阐述系统功能。
二、建模练习题(用例模型)
- 选择2-3个你熟悉的类似业务的在线服务系统(或移动 APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求:
- 请使用用户的视角,描述用户目标或系统提供的服务
- 粒度达到子用例级别,并用 include 和 exclude 关联它们
- 请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
- 尽可能识别外部系统和服务
订旅馆:
订电影票:
- 然后回答下列问题:
- 为什么相似系统的用例图是相似的?
从上面两幅图可以看出,两个相似的查询系统的用例图几乎是一样的。这是因为相似系统的主要业务逻辑类似,比如查询系统通常只是查询内容的不同,而登录、注册、查询、管理订单这些基本功能都是相同的,用例的类型基本固定,与子用例的关系也类似。
- 如果是定旅馆业务,请对比 Asg_RH 用例图,简述如何利用不同时代、不同地区产品的用例图,展现、突出创新业务和技术。
订旅馆业务可以与周边的旅游业务合作,结合旅游线路安排更加合理的旅馆。其次有特价推荐、按历史入住旅馆的特征进行推荐等,有餐饮条件的旅馆还可以额外提供婚宴、同学聚会的承办的入住优惠等。
- 如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用。
在用例图中对创新用例使用某种颜色进行高亮标记。可以很方便地让需求方、开发人员快速了解该系统的创新模式。
- 请使用 SCRUM 方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表
ID | Name | Imp | Est(man-day) | How to demo | Notes |
---|---|---|---|---|---|
1 | 注册 | 20 | 5 | 选择注册方式,手机注册则输入手机号接收验证码完成绑定,第三方注册则使用第三方软件授权 | 需要谨慎设计数据库存储的字段 |
2 | 登录 | 20 | 5 | 用户注册后使用手机验证码或第三方授权进行登录 | 需要记录登录状态 |
3 | 管理订单 | 60 | 8 | 用户可以选择喜欢的支付方式进行支付下单,同时可以删除订单,退款(需审核),对订单进行评价 | 需要支持主流支付方式如支付宝、微信、银行卡 |
4 | 查询 | 100 | 30 | 可以对酒店进行日期、价格、地点、名称、品牌、口碑等因素的筛选 | 筛选条件放在一行显示在页面顶部搜索框下方 |
- 根据任务4,参考 使用用例点估算软件成本,给出项目用例点的估算。 参考
用例 | 事务 | 计算 | 原因 | UC权重 |
---|---|---|---|---|
注册 | 2 | 2 | 两种注册方式 | 简单 |
登录 | 2 | 2 | 两种登录方式 | 简单 |
管理订单 | 6 | 6 | 不少于3种支付方式,评价体系、退款审核等 | 平均 |
查询 | 10 | 8 | 多个筛选条件、扩展功能 | 复杂 |