系统分析与设计--作业4
简答题
-
用例的概念
在软件和系统工程中,用例是一种对系统如何反应外界请求的描述,通常通过用户的使用场景来获取需求。每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。
-
用例和场景的关系?什么是主场景或 happy path?
关系:每个用例提供了一个或多个场景。其中场景是指使用场景,用来说明系统可以做什么,系统是如何和用户或其他系统交互的,从而获得一个明确的业务目标。
主场景:也被称为 happy path,每一个用例中都包含一个主场景,主场景对应于系统主要的交互,通常是成功的场景,是最常用的直接地实现用户目标的场景。 -
用例有哪些形式?
- Brief(high level):通常是简短的一段总结,描述主场景,在早起需求中可以快速了解主题和范围,方便快速创建。
- Casual:非正式的段落格式,涵盖各种场景的多个段落。
- Fully:所有的步骤和变化都写得很详细,并有支持部分,如先决条件和成功的保证。
-
对于复杂业务,为什么编制完整用例非常难?
复杂的业务本身业务流程就很复杂繁琐,而且涉及到的场景非常多,场景与场景之间也有各种各样的关联,编制完整用例需要建模相关知识和熟悉各个业务流程,还要注意用户交互的细节和相对于的支撑。
-
什么是用例图?
用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图,也是外部用户所能观察到的系统功能的模型图。
-
用例图的基本符号与元素?
如下图所示:
参与者:符号是一个小人。
用例:符号是一个圆框。
系统边界:符号是一个方框。
关联关系:符号是一个虚线箭头:---->,箭头指向消息接收方。
包含关系:符号是一个虚线箭头,有< includes >标识。箭头方向指向被包含者。
扩展关系:符号是一个虚线箭头,有< extends >标识,箭头方向指向被继承者。
泛化关系:符号是一个实线箭头,箭头是个小三角,指向父用例。 -
用例图的画法与步骤
- 确定系统边界
- 确定参与者:如谁将使用该系统的主要功能、谁将需要该系统的支持以完成其工作、谁将需要维护、管理该系统,以及保持该系统处于工作状态等。
- 识别用例:如特定参与者希望系统提供什么功能、系统是否存储和检索信息,如果是,由哪个参与者触发、当系统改变状态时,是否通知参与者、是否存在影响系统的外部事件等。
- 确定用例间的关系:如包含关系、扩展关系和泛化关系。应用这些关系的目的是为了从系统中抽取出公共行为和其变体。
- 确定关联的外部支持系统,放在系统框右边。
-
用例图给利益相关人与开发者的价值有哪些?
用例图能够使产品和工程师很清晰地看到系统的各个模块、各部分功能之间的关系、整个系统架构以及对于其他功能的依赖。能够更合理的评估工作量,具体到人日的安排。同时对于系统的输出输入也有明确规定,对于整个功能迭代也有很大帮助。
建模练习题
选择2-3个你熟悉的类似业务的在线服务系统(或移动 APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求:
- 请使用用户的视角,描述用户目标或系统提供的服务
- 粒度达到子用例级别,并用 include 和 exclude 关联它们
- 请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
- 尽可能识别外部系统和服务
美团外卖系统:
饿了么外卖系统:
- 然后,回答下列问题:
-
为什么相似系统的用例图是相似的?
因为相似系统的主要业务逻辑类似,用例的类型基本一致,比如查询系统通常只是查询内容的不同,而登录、注册、查询、管理订单这些基本功能都是相同的,与子用例的关系也类似。
-
如果是定旅馆业务,请对比 Asg_RH 用例图,简述如何利用不同时代、不同地区产品的用例图,展现、突出创新业务和技术
利用大数据和人工智能,根据用户以往预定的旅馆类型进行智能推荐;
-
如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用
在用例图中对创新用例使用某种颜色进行高亮标记。可以很方便地让需求方、开发人员快速了解该系统的创新功能,以及该模块相关依赖和输入输出结果。
-
请使用 SCRUM 方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表
ID | Name | Imp | Est | How to Demo | note |
---|---|---|---|---|---|
1 | 登录注册 | 15 | 2 | 打开软件后用户可以选择登录或者注册;登录时使用已注册的账号和密码进行登录;注册时使用手机+验证码的形式; | 成功注册后直接进入主页,不需要再次登录 |
2 | 搜索旅馆 | 10 | 2 | 页面提供搜素功能,根据用户输入的字符串匹配合适的旅馆,显示搜索结果 | |
3 | 查看房间 | 15 | 1 | 点击一个旅馆,进入查看旅馆房间信息页面。页面中有所有房间信息、价格 | |
4 | 预定房间 | 15 | 1 | 用户点击预定房间时,判断是否有空房,然后进行下单预定 | 下单会对房间进行锁定,其他用户无法预定该房间 |
5 | 支付订单 | 20 | 2 | 用户锁定房间后20分钟内需要进行支付,支持使用支付宝微信进行付款 | 接入微信和支付宝支付的api |
6 | 查看订单 | 10 | 1 | 用户能够在个人中心看到自己的预定情况,以及查看订单详情 | |
7 | 取消订单 | 10 | 1 | 入住前一天用户能够取消订单,需要支持退款给用户 | 预定当天不能取消,必须至少是前一天 |
- 根据任务4,参考 使用用例点估算软件成本,给出项目用例点的估算
用例 | #事务 | #计算 | #权重 |
---|---|---|---|
登录注册 | 2 | 1 | 简单 |
搜索旅馆 | 4 | 1 | 简单 |
查看房间 | 3 | 2 | 平均 |
预定房间 | 3 | 3 | 复杂 |
支付订单 | 6 | 5 | 复杂 |
查看订单 | 2 | 1 | 平均 |
取消订单 | 4 | 3 | 复杂 |