System-Analysis-hw6
Contents
简答题
用例的概念
用例(英语:use case),或译使用案例、用况,是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。 – baidu baike
每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互動,也就是谁可以用系统做什么,从而获得一个明确的业务目标。编写用例时要避免使用技术术语,而应该用最终用户或者领域专家的语言。用例一般是由软件开发者和最终用户共同创作的。 – wikipedia
通俗地讲,用例是文本形式的情节描述, 用以说明某参与者使用系统以实现某些目标。
用例和场景的关系?什么是主场景或 happy path?
场景是什么: 场景 (scenario) 是参与者和系统之间的一系列特定的活动和交互,也称为用例实例 (use case instance)。
用例和场景的关系:用例 (use case)就是一组相关的成功和失败场景集合,用来描述参与者如何使用系统来实现其目标。
主场景: 也叫做主成功场景
Main Success Scenario
或者 理想路径happy path
,这是用例最基本的组成部分,它描述了满足涉众关注点的典型成功路径。要注意的是,它通常不包括任何条件或分支,这是为了保持连贯性,并且将所有的条件处理都延迟到扩展部分。这种具有争议的做法更易于理解和扩展。
用例有哪些形式?
用例能够以不同形式化程度或格式进行编写, 主要有以下三种形式:
摘要
Brief
: 简洁的一段式概要,通常用于主成功场景。非正式形式
Casual
:非正式的段落格式。用几个段落覆盖不同场景。详述
Fully
:详细编写所有步骤及各种变化,同时具有补充部分,如前置条件和成功保证。
对于复杂业务,为什么编制完整用例非常难?
复杂业务要编写完整用例的困难之处,主要能从以以下几个方面进行分析:
繁杂:复杂业务的场景较多,场景较为复杂。
变化:在前期的考虑中,很难不遗漏一些业务条件和需求,且这些需求条件还可能发生变化。
什么是用例图?
用例图是描述用例、参与者以及它们之间关系的图。
用例图是从用户的角度来描述对信息系统的需求,分析产品的功能和行为。
用例图定义和描述了系统的外部可见行为,是分析、设计直至组装测试的重要依据。
用例图的基本符号与元素?
基本符号
这里给出 UMLET
支持的基本符号
元素
系统(System):图中的大方框,可以是小型软件组件,也可以是完整的应用程序,里面包含外部可见的功能。
参与者(Actor):系统的左侧外的人形图案,表示与系统或程序进行交互的用户、组织或外部系统。
用例(Use Case):系统内的椭圆,外部可用的系统功能,对系统提供的服务进行描述。
关系(relation):用例图中涉及到的关系包括关联、泛化、包含、扩展。
- 关联(Association):说明了参与者与用例之间的通信,任何一方都可以发送或接受信息,箭头指向的是消息的接收方。
- 泛化(Inheritance):继承关系。
- 包含(Include):包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤,箭头指向分解出来的功能用例,旁边需要显式写出该关系为 <>
- 扩展(Extend):扩展关系是指当前用例功能的延伸,相当于给当前基础样例提供附加的功能。箭头指向原来的基础样例,旁边需要显式写出该关系为 <>
用例图的画法与步骤
确定参与者,包括:
- 主要参与者:谁将使用系统的主要功能、谁将需要系统的支持以完成工作等
- 协作参与者:谁将提供对应的系统功能、谁将维护系统,保证系统处于工作状态等
- 幕后参与者:谁会对系统产生的结果感兴趣
识别使用系统的主要参与者(primary actors)/角色(roles)
识别系统依赖的外部系统
识别用例
识别用户级别用例
识别子功能级别的用例
建立 Actor 和 Use Cases 之间的关联。
用例图给利益相关人与开发者的价值有哪些?
针对利益相关者
- 可以直观看到系统的结果和用户的功能体验,保证系统按照用户的需求进行设计。
- 用例能够根据需要对复杂程度和形式化程序进行增减调节,即能够响应用户(利益相关人)提出的需求,而用例图则使得这种调节更加便利,可以通过修改图形间的关系实现。
针对开发者
用例图是设计者设计过程的结论与参考,设计者与开发者之间的交流工具,开发者开发过程的蓝图。
用例图使得开发者能够更明确地获得需求,更好地理解需求。
用例图可以指导开发和测试,同时可以在整个过程中对其他工作流起到指导作用。
建模练习题(用例模型)
绘制用例图
选择2-3个你熟悉的类似业务的在线服务系统(或移动 APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求:
请使用用户的视角,描述用户目标或系统提供的服务 粒度达到子用例级别,并用 include 和 exclude 关联它们 请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例 尽可能识别外部系统和服务
选择一个简单的定电影票 APP 的大致用例图如下
回答下列问题:
为什么相似系统的用例图是相似的?
如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用。
请使用 SCRUM 方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表
选择 Asg_RH
的用例图进行如下的开发计划表展示:
ID | NAME | IMPORTANCE | ESTIMATE | HOW TO DEMO | NOTES |
---|---|---|---|---|---|
1 | 查找酒店 | 90 | 3 | 根据输入的信息查找对应酒店 | None |
2 | 预定酒店 | 100 | 5 | 填写相关信息之后,进行预定 | None |
3 | 修改订单 | 70 | 2 | 修改已经填写的信息 | None |
4 | 支付订单 | 100 | 4 | 用户选择支付方式进行支付 | 可以使用外部 api 来简化实现 |
5 | 用户评价 | 70 | 2 | 已经支付后才能评价 | 可选功能 |
- 项目用例点估算
根据所给的资料,生成的表如下:
用例 | 业务 | 计算 | 原因 | UC 比重 | 原因 |
---|---|---|---|---|---|
1 | 查找酒店 | 3 | 3 | 一般 | |
2 | 预定酒店 | 7 | 5 | 一般 | |
3 | 修改订单 | 2 | 2 | 简单 | |
4 | 支付订单 | 2 | 2 | 简单 | |
5 | 用户评价 | 2 | 2 | 简单 |
Author z1wu
LastMod 2019-04-10