一、简答题
1. 用例的概念: 用例是一组相关的成功和失败场景集合,用来描述参与者如何使用系统来实现其目标
2. 用例和场景的关系?什么是主场景或 happy path?:
场景是参与者和系统之间的一系列特定的活动和交互,也称为用例实例。用例包含了若干个场景。
主场景是指用户与系统发生主要交互的场景,通常是成功的,描述了涉众关注点的典型成功路径。
3. 用例有哪些形式?:
- Brief(high level):简介型,简洁的一段式概要,通常用于主成功场景。
- Casual:非正式型,非正式的段落格式,用几个段落覆盖不同场景。
- Fully:完整型,详细编写所有步骤及各种变化,同时具有补充部分,如前置条件和成功保证。
4. 对于复杂业务,为什么编制完整用例非常难:?
复杂业务的场景多且复杂,并且其间关系复杂,再加上业务与需求本身就是需要不断迭代来确定的,编制用例时难以涵盖全部场景;对于单个场景,也难以考虑到所有的用户-系统的交互情况,所以复杂业务是很难编写出完整正式的用例的
5. 什么是用例图?
用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图
6. 用例图的基本符号与元素
参与者:参与者是与系统交互的人或物。首先当然包括开发系统用户,除此之外,与开发的系统有关联的其他系统也算是参与者
用例:用例是参与者可以感受到的系统服务或功能单元。任何用例都不能在缺少参与者的情况下独立存在,同样,任何参与者也必须要有与之关联的用例
系统边界:指系统与系统之间的界限。把系统边界以外的同系统相关联的其他部分称为系统环境
关联关系:表示参与者和用例之间的交互。为通信途径,任何一方都可发送或可接收消息
包含关系:包含关系用来把一个较复杂的用例所表示的功能分解成较小的步骤。包含用例是必须的,如果缺少包含用例,基用例就是不完整的。包含关系最典型的应用就是复用。这种情况类似与在过程设计语言中,将程序的某一段算法封装成一个子过程,然后在从主程序中调用这一子过程。
扩展关系:扩展关系是指用例功能的延伸。与包含关系不同的是,扩展用例是可选的,如果缺少扩展用例。不会影响到基用例的完整性
泛化关系:用例的泛化指的是一个父用例可以被特化形成多个子用例,用我们熟悉的语言来说就是继承关系。
7. 用例图的画法与步骤
(1)确定参与者:
- 主要考虑系统功能的使用者、支持者及其他相关对象
- 确定参与者之间的泛化关系:使用泛化关系箭头连线
(2)识别用例:
- 以动词开头描述某件事情
(3)确定用例之间和用例与参与者之间的关系
- 用例除了与参与者发生关系外,还可以具有系统中的多个关系,这些关系包括包含关系、扩展关系和泛化关系。应用这些关系的目的是为了从系统中抽取出公共行为和其变体
8. 用例图给利益相关人与开发者的价值有哪些?
- 可以直观看到系统的结果和用户的功能体验, 保证系统按照用户的需求进行设计
- 用例能够根据需要对复杂程度和形式化程序进行增减调节, 即能够响应用户(利益相关人)提出的需求, 而用例图则使得这种调节更加便利, 可以通过修改图形间的关系实现
- 用例图是设计者设计过程的结论与参考, 设计者与开发者之间的交流工具, 开发者开发过程的蓝图
- 用例图使得开发者能够更明确地获得需求, 更好地理解需求
- 用例图可以指导开发和测试, 同时可以在整个过程中对其他工作流起到指导作用
二、建模练习题(用例模型)
- 选择2-3个你熟悉的类似业务的在线服务系统(或移动 APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求:
- 请使用用户的视角,描述用户目标或系统提供的服务
- 粒度达到子用例级别,并用 include 和 extend 关联它们
- 请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
- 尽可能识别外部系统和服务
大众点评
盒马
然后,回答下列问题:
1. 为什么相似系统的用例图是相似的?
因为相似系统的用户人群大致相同,需求大致相同,所以参与者和用例会很相似。
2. 如果是定旅馆业务,请对比 Asg_RH 用例图,简述如何利用不同时代、不同地区产品的用例图,展现、突出创新业务和技术
并不是
3. 如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用
在用例图中对创新用例使用某种颜色进行高亮标记。可以很方便地让需求方、开发人员快速了解该系统的创新模式
4. 请使用 SCRUM 方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表
ID | Name | Imp | Est | How to demo |
1 | 账户管理 | 20 | 10 | 用户注册,管理用户信息 |
2 | 查找旅馆 | 80 | 40 | 根据地点,价格,风格进行查询 |
3 | 挑选房间 | 30 | 15 | 选择房间的容纳人数和类型 |
4 | 支付 | 40 | 25 | 选择支付方式进行支付 |
5 | 订单管理 | 60 | 30 | 管理历史订单以及尚未支付的订单 |
5. 根据任务4,参考 使用用例点估算软件成本,给出项目用例点的估算
用例 | 事务 | 计算 | 原因 | UC权重 |
账户管理 | 4 | 2 | 用户注册,管理用户信息 | 简单 |
查找旅馆 | 7 | 5 | 根据地点,价格,风格进行查询 | 平均 |
挑选房间 | 5 | 4 | 选择房间的容纳人数和类型 | 平均 |
支付 | 2 | 1 | 选择支付方式进行支付 | 简单 |
订单管理 | 3 | 2 | 管理历史订单以及尚未支付的订单 | 简单 |