简答题
用例的概念
- 用例是描述参与者使用系统去达到某种目的一系列相关的成功和失败情景。
- 用例是文本文档而不是图,即用例建模的过程主要是文本编写,而不是制图。
- 用例与面向对象无关。
- 用例是经典面向对象分析与设计的一个关键需求输入。
- 用例是表现系统功能的功能性或行为性需求。
用例和场景的关系?什么是主场景或happy path?
- 一个用例代表了多个场景,包括主场景和其他可选场景。
- 主场景对应主要的系统交互,通常是成功场景。
- 可选场景对应较少的交互和异常情况。
用例有哪些形式?
- Brief:一段精炼的总结,通常是主场景。
- Casual:非正式的段落格式,多个段落对应多个场景。
- Fully:详细说明所有的步骤和变化。
对于复杂业务,为什么编制完整用例非常难?
复杂业务的业务流程很复杂,涉及很多的场景,场景之间的关联也非常多,很难将所有的用例和场景按照一定顺序列举出来。同时,如果用例编写者对各个业务流程的理解存在偏差,用例的准确性和完整性就难以保证。
什么是用例图?
用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图,也是外部用户所能观察到的系统功能的模型图。
用例图的基本符号与元素?
- 小人(参与者)
- 椭圆(用例)
- 矩形(系统边界)
- 关系
- 直线(关联关系)
- <
>箭头(包含关系) - <
>箭头(扩展关系) - 空心箭头(泛化关系)
用例图的画法与步骤
- 绘制系统边界。
- 绘制参与者,将参与者画在所有系统边界以外。
- 绘制用例,考虑每一个参与者是如何使用系统的,将相应的用例画在对应的系统中,用线将用例和参与者关联起来。
- 绘制用例间的关系:如包含关系、扩展关系和泛化关系。
- 绘制关联的外部支持系统,用线将支持系统和对应的用例关联起来。
用例图给利益相关人与开发者的价值有哪些?
- 利益相关人
用例图清晰地展示了系统的功能组成,客户可以清楚地看到系统设计与自己的要求是否相符。同时,客户可以简单修改用例图来表达需求变更的想法。 - 开发者
用例图明确地表达了用户的需求,因此系统架构的设计可以更加准确,同时系统的工作量评估也变得方便。
- 利益相关人
建模练习题(用例模型)
选择2-3个你熟悉的类似业务的在线服务系统(或移动APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求:
- 请使用用户的视角,描述用户目标或系统提供的服务
订电影票 - 粒度达到子用例级别,并用include和exclude关联它们
- 请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
- 尽可能识别外部系统和服务
淘票票电影订票系统
猫眼电影订票系统
- 请使用用户的视角,描述用户目标或系统提供的服务
为什么相似系统的用例图是相似的?
相似的系统具有相似的需求,因此系统的功能和结构也非常相似,导致了用例图的相似性。- 如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用。
根据创新点在用例图中的位置来判断。 - 请使用SCRUM方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表。
ID | Name | Imp | Est | How to demo | Note |
---|---|---|---|---|---|
1 | 登录注册 | 15 | 10 | 可以选择登录或注册;输入已注册的账户和密码进行登录;使用手机验证码进行注册 | |
2 | 搜索旅馆 | 20 | 15 | 输入地点和时间进行搜索,生成酒店列表,然后可以选择按照价格、类型、评分等排序 | |
3 | 预定旅馆 | 10 | 4 | 用户点击酒店,选择房型,然后跳转到支付页面。 | |
4 | 管理订单 | 5 | 3 | 在订单页面显示历史订单,用户可以修改订单的时间、房型,或者取消订单 |
- 根据任务4,参考使用用例点估算软件成本,给出项目用例点的估算
用例 | #事务 | #计算 | 原因 | 权重 |
---|---|---|---|---|
登录注册 | 3 | 2 | 简单 | |
搜索旅馆 | 10 | 7 | 复杂 | |
预定旅馆 | 8 | 5 | 复杂 | |
管理订单 | 4 | 3 | 平均 |