Software Analysis and Design Homework - 4
简答题
用例的概念
用例是描述了参与者使用某个系统来达成某个目的时的相关成功或失败场景集合。
它使用文本来描述,而非图表。用例和场景的关系?什么是主场景或 happy path?
- 场景是参与者和系统间的行为与会话序列,是用例的一个实例;
- 用例包含一系列的场景,如主场景和可选场景;
- Happy Path 是一个无异常或无错的默认场景;主场景是主要的系统交互,是一个无条件的成功 happy path;
用例有哪些形式?
Brief
单段文本概要总结,可应用于早期的需求分析,可以快速的对主体和范围具有一定认知。
Casual
非正式的多段文本,可以涵盖多个场景
Fully
所有的步骤和变化都有详细描述,对于场景,提供预备条件,成功条件等细节。
对于复杂业务,为什么编制完整用例非常难?
复杂业务的场景多而复杂,编制用例时,难以考虑到所有场景。对于单个场景,也难以考虑到全部的 actor 和 system 交互。正是因为这种难以全面考量的问题,导致编制完整用例非常难
什么是用例图?
用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。
用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型图,是系统的蓝图。用例图的基本符号与元素?
System
Use Case
Actors
Relationships
用例图的画法与步骤
确定研讨的系统
- 使用用例图 System 框 表示一个待研究的系统
- 正确命名系统或子系统
识别 Actors
识别使用系统的主要参与者(primary actors)/角色(roles)
- 使用用例图 actor符号 表示,通常放在系统的左边
识别系统依赖的外部系统
- 使用用例图 Neighboursystem 框 表示用例依赖的外部系统、服务、设备,并使用构造型(Stereotype)识别
识别用例(服务)
识别用户级别用例(user goal level)
识别子功能级别的用例(sub function level)
正确使用用例与子用例之间的关系
- \<\<include>> 表示子用例是父用例的一部分,通常强调离开这个特性,父用例无法达成目标或失去意义!
- \<\<extend>> 表示子用例是父用例的可选场景或技术特征。
建立 Actor 和 Use Cases 之间的关联
用例图给利益相关人与开发者的价值有哪些?
- 明确了业务范围,服务对象以及外部依赖
- 表示了潜在的技术需求,可以提前进行技术规划与学习
- 帮助确定开发边界,评估工作量,合理设定开发周期
用例建模练习
选择2-3个你熟悉的类似业务的在线服务系统(或移动 APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求:
- 请使用用户的视角,描述用户目标或系统提供的服务
- 粒度达到子用例级别,并用 include 和 exclude 关联它们
- 请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
尽可能识别外部系统和服务
Answer:
- Book Tickets
- Recite Words
- Book Tickets
回答下列问题:
为什么相似系统的用例图是相似的?
因为相似的系统,其目标人群和提供的功能时相似的,也就是说 actor 和 scenery 类似,所以 use case 也类似,最终的用例图也是类似的
如果是定旅馆业务,请对比 Asg_RH 用例图,简述如何利用不同时代、不同地区产品的用例图,展现、突出创新业务和技术
可以对当前流行产品和目标用户进行调研,然后结合旧用例图,进行符合产品市场的改进,如在 ASG_RH 付款时需要 check out,但我们现在电子支付十分方便,可以更改为链接电子支付。
如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用
在项目早期,通过对比当前用例图和其它类似产品的用例图,提炼类似产品的先进业务,技术和商业模式,改进当前用例图,对于别人产品用例图中不足的地方,如缺少的业务和落后的技术,进行创新。同时,从用户的角度进行考虑,发掘用户需求。
请使用 SCRUM 方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表并参考使用用例点估算软件成本,给出项目用例点的估算
ID | Name | Imp | Est(man-day) | How to demo | Notes |
---|---|---|---|---|---|
0 | 注册 | 10 | 10 | 输入手机号和密码,点击获取短信验证码按钮并正确填写收到的验证码,注册成功 | 需要短信服务 |
1 | 登陆 | 10 | 10 | 输入正确的手机号和密码,可以登陆程序 | |
2 | 查询酒店 | 50 | 30 | 选择位置,日期,酒店特征和价格区间,返回符合条件的酒店 | 需要GPS服务支持 |
3 | 预定酒店 | 70 | 30 | 选择酒店列表中的酒店,跳转到相应酒店页,选择入住日期和退房日期以及房型后生成订单,跳转到订单管理页 | |
4 | 管理订单 | 30 | 10 | 显示订单的详情,包括酒店名,入住和退房日期以及房型,同时可以选择酒店的其他服务(餐饮,保险和酒店设施服务),确认完毕跳转到付款页 | |
5 | 付款 | 40 | 20 | 选择付款方式(微信支付,支付宝支付或银行卡)并完成支付后,发送短信到手机提示付款成功 | 需要短信服务 |
用例 | #事务 | #计算 | 原因 | UC 权重 |
---|---|---|---|---|
0注册 | 3 | 2 | 短信服务框架 | 5 |
1登陆 | 2 | 2 | 5 | |
2查询酒店 | 4 | 3 | GPS API | 10 |
3预定酒店 | 3 | 3 | 5 | |
4管理订单 | 2 | 2 | 5 | |
5付款 | 2 | 1 | 短信服务框架 | 5 |