1、简答题
用例的概念
- 是一种通过用户的使用场景来获取需求的技术;
用例和场景的关系? 什么是主场景或 happy path?
- 用例提供了一个或多个场景, 来说明用户和系统是如何互动的;
- 主成功场景或happy path是用例从触发事件开始, 一步一步执行, 最终满足用例利益的步骤集合;
用例有哪些形式?
根据细度不同来划分:
- 摘要: 摘要用例有很少的句子组成来总结的用例。它十分适合在电子表格中计划软件开发。一个摘要用例能够简单插入电子表格的单元格中并且用表格中的其它列记述业务优先级, 技术复杂度, 版本号等;
- 非正式: 一个非正式的用例由文本段落组成, 包括了上面提到的那些列, 用总结或故事的形式详细的描述了用例;
- 完整正式: 一个完整正式或者复杂的用例是一个以包含了不同部分的长模板为基础的正规的文档。该用例在下面的用例模板部分进行讨论;
对于复杂业务, 为什么编制完整用例非常难?
- 复杂业务场景也复杂, 再加上业务与需求本身就是需要不断迭代来确定的, 还有可能会变化, 所以复杂业务是很难编写出 完整正式 的用例的;
什么是用例图?
- 用例图并不是画成了图形的用例; 用例图包含一组用例。
- 或者说用例图是一组用例(的概要)的图形化表示;
用例图的基本符号与元素?
- 参与者(
Actor
): 表示与您的应用程序或系统进行交互的用户、 组织或外部系统。 用一个小人表示。
- 用例(
Use Case
): 用例就是外部可见的系统功能, 对系统提供的服务进行描述。 用椭圆表示
- 系统(
System
): 用来展示系统的一部分功能, 这部分功能联系紧密。
- 关联(
Association
): 表示参与者与用例之间的通信, 任何一方都可发送或接受消息。
- 泛化(Inheritance): 就是通常理解的继承关系, 子用例和父用例相似, 但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为, 也可以重载它。父用例通常是抽象的。
箭头指向: 指向父用例
- 包含(
Include
): 包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤;
箭头指向: 指向分解出来的功能用例
- 扩展(
Extend
): 扩展关系是指 用例功能的延伸, 相当于为基础用例提供一个附加功能。
箭头指向: 指向基础用例
用例图的画法与步骤
确定参与者, 包括:
- 主要参与者: 谁将使用系统的主要功能、谁将需要系统的支持以完成工作等
- 协作参与者: 谁将提供对应的系统功能、谁将维护系统, 保证系统处于工作状态等
- 幕后参与者: 谁会对系统产生的结果感兴趣
- 根据用户需求识别和创作用例, 主要重点在于:
识别使用系统的主要参与者(
primary actors
)/角色(roles
)- 识别系统依赖的外部系统
- 识别用例(服务)
- 识别用户级别用例(
user goal level
) - 识别子功能级别的用例(
sub function level
) - 建立
Actor
和Use Cases
之间的关联。
用例图给利益相关人与开发者的价值有哪些?
对于利益相关人:
- 可以直观看到系统的结果和用户的功能体验, 保证系统按照用户的需求进行设计。
- 用例能够根据需要对复杂程度和形式化程序进行增减调节, 即能够响应用户(利益相关人)提出的需求, 而用例图则使得这种调节更加便利, 可以通过修改图形间的关系实现。
对于开发者来说:
- 用例图是设计者设计过程的结论与参考, 设计者与开发者之间的交流工具, 开发者开发过程的蓝图。
- 用例图使得开发者能够更明确地获得需求, 更好地理解需求。
- 用例图可以指导开发和测试, 同时可以在整个过程中对其他工作流起到指导作用。
2、建模练习题(用例模型)
选择1个你熟悉的类似业务的在线服务系统(或移动 APP), 如定旅馆(携程、去哪儿等)、定电影票、背单词APP等, 分别绘制它们用例图。并满足以下要求:
- 请使用用户的视角, 描述用户目标或系统提供的服务
- 粒度达到子用例级别, 并用
include
和exclude
关联它们 - 请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
- 尽可能识别外部系统和服务
然后, 回答下列问题:
为什么相似系统的用例图是相似的?
相似系统面对的参与者和用例是相似的, 用例之间的关系也是同构的。用户预期的功能都是相似的, 即不同的同类系统一定具有一致基本功能以及带有自己特色的扩展功能。所以体现在用例图上也是相似的。
如果是定旅馆业务, 请对比 Asg_RH 用例图, 简述如何利用不同时代、 不同地区产品的用例图, 展现、 突出创新业务和技术
不是定旅馆业务
如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用
如果创新点是一个包含较多子用例的用例(use case
), 那么作用较大; 反之较小
请使用 SCRUM 方法, 选择一个用例图, 编制某定旅馆开发的需求(backlog)开发计划表
ID | Name | Est | Iter | Imp |
---|---|---|---|---|
1 | find hotel | 5 | 1 | 10 |
2 | make reservation | 4 | 2 | 8 |
3 | pay reservation | 4 | 2 | 8 |
4 | modify reservation | 3 | 3 | 6 |
5 | comment hotel | 2 | 4 | 3 |
根据任务4, 参考 使用用例点估算软件成本, 给出项目用例点的估算
根据用户点方法, 对用例分配权重的标准是:
- 简单用例: 1 到 3 个事务, 权重=5
- 一般用例: 4 到 7 个事务, 权重=10
- 复杂用例: 多于 7 个事务, 权重=15
用例 | 业务 | 计算 | 比重 |
---|---|---|---|
搜索地点 | 3 | 2 | 简单 |
搜索附近 | 3 | 2 | 简单 |
定位 | 1 | 1 | 简单 |
导航 | 3 | 2 | 简单 |
街景 | 4 | 3 | 简单 |