1. 用例的概念
用例(use case),是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。
2. 用例和场景的关系?什么是主场景或 happy path?
每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。
happy path 是没有异常或错误情况下的默认方案。例如:验证信用卡号功能的happy path就是当没有验证规则导致一个错误,因此让执行继续,成功结束,产生一个正常的回应。
3. 用例有哪些形式?
Alistair Cockburn在编写有效用例一书中确定了三种书写用例的细度。
摘要
摘要用例有很少的句子组成来总结的用例。它十分适合在电子表格中计划软件开发。一个摘要用例能够简单插入电子表格的单元格中并且用表格中的其它列记述业务优先级,技术复杂度,版本号等。
非正式
一个非正式的用例由文本段落组成,包括了上面提到的那些列,用总结或故事的形式详细的描述了用例。
完整正式
一个完整正式或者复杂的用例是一个以包含了不同部分的长模板为基础的正规的文档。该用例在下面的用例模板部分进行讨论。
4. 对于复杂业务,为什么编制完整用例非常难?
每个用例集中描述如何获得一个业务目标或任务。从传统的软件工程视角来看,用例只是描述了系统的一个特征。所以对大部分软件项目来说,这就意味着需要很多(有可能是数十个)用例来完整的描述新系统。一个特殊软件项目的正规度和项目的不同阶段将会影响每一用例需要的详细程度。
5. 什么是用例图?
用例图(use case diagram)是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。通过用例图,人们可以获知系统不同种类的用户和用例。
6. 用例图的基本符号与元素?
用例图由参与者(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。
参与者
参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。
用例
用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。
系统边界
系统边界是用来表示正在建模系统的边界。边界内表示系统的组成部分,边界外表示系统外部。系统边界在画图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。
箭头
箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。
7. 用例图的画法与步骤?
- 确定研讨的系统
使用用例图 System框 表示一个待研究的系统 - 识别Actors
识别使用系统的主要参与者(primary actors)/角色(roles),使用用例图 actor符号 表示,通常放在系统的左边 - 识别系统依赖的外部系统
使用用例图 Neighboursystem框 表示用例依赖的外部系统、服务、设备,并使用构造型(Stereotype)识别 - 识别用例(服务)
识别用户级别用例(user goal level)
识别子功能级别的用例(sub function level) - 建立Actor和Use Cases之间的关联
使用 无方向连线,表示两间之间是双向交互的协议
8. 用例图给利益相关人与开发者的价值有哪些?
- 明确系统的业务范围、服务对象(角色)、外部系统与设备
- 帮助识别技术风险,提前实施关键技术原型公关与学习
- 易于评估项目工作量,合理规划迭代周期,规划人力需要
建模
订酒店(携程)
订电影票(猫眼)
黄色代表创新部分。
1. 为什么相似系统的用例图是相似的?
因为用例是由需求决定的,相似的系统都有相似的功能,服务于相似的用户,所以用例图相似。
2. 如果是定旅馆业务,请对比 Asg_RH 用例图,简述如何利用不同时代、不同地区产品的用例图,展现、突出创新业务和技术
- 可以通过地图API更好地确定位置
- 可以通过评价系统来使得质量好的酒店被更多人知道
- 不仅可以通过信用卡支付,还可以使用微信,支付宝等在线支付
3. 如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用
首先,要找准用户的需求痛点:比如原始的系统缺乏对酒店的介绍和描述,用户如果不是特别熟悉那家酒店可能就不敢预定了;而现代系统加入足够多的信息描述,包括居住环境的照片,还有点评打分系统,让住客更加安心。
其次,可以结合更好更新的技术:比如这里支付方式的改进。
4. 请使用 SCRUM 方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表
根据携程网用例图指定开发backlog
编号 | 用例 | 重要性 | 估计(人日) | 如何展示 | 备注 |
---|---|---|---|---|---|
1 | 选旅馆 | 30 | 30 | 能够以列表的形式看到我的备选旅馆的基本信息,选中后跳转到该旅馆的详情页 | |
2 | 预约 | 30 | 30 | 选择日期和房型,生成订单 | 展示出来的房型都是在选择日期下可用的 |
3 | 支付 | 30 | 40 | 选择支付方式,输入账号和密码,支付账号扣款,商家收款 | 接入主流支付系统API,重要性高但可以晚点完成 |
4 | 查看酒店详情 | 20 | 10 | 选中某个旅馆后点击跳转到该页,显示相关信息 | |
5 | 直接搜索 | 20 | 15 | 输入或选择目的地后,搜索得到该目的地范围内的酒店列表 | 结合地标、商圈等的搜索暂时不做 |
6 | 筛选 | 10 | 5 | 输入或选择筛选条件后,得到符合条件的酒店列表 | |
7 | 排序 | 10 | 5 | 选择某种顺序排序后,得到排序后的酒店列表 | |
8 | 在地图上搜索 | 5 | 10 | 根据输入的目的地,地图上定位到相应范围,用图标把酒店标注出来,点击酒店可跳转到对应详情 | 该需求有待补充和细化 |
5. 根据任务4,参考 使用用例点估算软件成本,给出项目用例点的估算
用例 | # 事务 | # 计算 | 原因 | UC权重 |
---|---|---|---|---|
1 选旅馆 | 6 | 5 | 复杂性 | |
2 预约 | 6 | 5 | 简单 | |
3 支付 | 5 | 5 | 框架 | 平均 |
4 查看酒店详情 | 5 | 5 | 专家估算 | 简单 |
5 直接搜索 | 4 | 5 | 简单 | |
6 筛选 | 2 | 5 | 简单 | |
7 排序 | 3 | 5 | 简单 | |
8 在地图上搜索 | 6 | 5 | 困难 |