1、简答题
(1)用例的概念
用例是:
- 描述参与者使用系统达成目标相关的成功和失败的集合
- 是一种文本文档,而不是图表
- 用例建模主要是编写文本,而不是绘制图表
- 没有任何面向对象的用例
- 对于传统的OOA/D,用例是关键的输入
- 是用于知识系统将要做什么的方法。
(2)用例和场景的关系?什么是主场景或 happy path?
- 用例和场景的关系是:
用例就是一组相关的成功和失败场景的集合 - 主场景是对应主要系统交互,通常时成功的场景,这种场景最常用,直接地实现用户目标的故事
(3)用例有哪些形式?
- 简洁
- 简单的一段式摘要,通常是主要成功案例
- 在早起需求分析中,快速了解主题和范围,创作只需要几分钟
- 简便格式
- 非正式段落格式,涵盖各种场景多个段落
- 完整格式
- 所有变化、步骤写的很详细,有支持部分,如前提条件和成功保证
- 在确定许多用力并用简短格式编写后,在第一次需求研讨会期间,详细编写了一些具有架构意义和高价值的用例。
(4)对于复杂业务,为什么编制完整用例非常难?
因为复杂业务涉及到的场景会有很多,而用例是所有成功和失败的场景的集合,因此用例会变得非常复杂。
(5)什么是用例图?
用例图指的是由参与者、用例、边界以及他们的关系构成的用于描述系统功能的视图。用例图是外部用户(参与者)所能观察到的系统功能的模型图。是系统的蓝图。
(6)用例图的基本符号与元素?
用例图的基本元素:
- 参与者:表示的是一个系统用户,也就是与应用程序进行交互的用户、组织或者外部系统
- 用例:表示对系统提供的功能、服务的一种描述
- 用例之间的关系:
- 包含关系:表示用例可以简单地包含其他用例所具有的行为,并把它所包含的用例行为作为自身行为的一部分。常用带箭头的虚线表示,箭头指向被包含的用例
- 泛化关系:泛化指的是一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系。常用空心三角箭头实现表示,箭头指向父用例。
- 关联关系:表示参与者和用例之间的关系。常用一条直线,或者一条带箭头的线条表示,箭头指向信息接收方。
- 扩展/延伸关系:表示在一定条件下,把新的行为加入到已有的用例中,获得的新用例叫做扩展用例,原有的用例叫做基础用例,相当于基础用例提供一个附加功能。用带箭头的虚线表示,箭头指向基础用例。
(7)用例图的画法与步骤
- 定义用例以满足主要参与者的目标
- 选择系统边界
- 使用用例图system框表示一个待研究的系统
- 正确命名系统或子系统,避免起名太空泛
- 识别参与者
- 识别使用系统的主要参与者/角色
- 使用用例图actor符号表示,通常放在系统的左边
- 企业应用可以通过企业组织架构,业务角色与职责识别
- 物联网应用必须通过市场分析,确定受众范围
- 识别系统依赖的外部系统
- 使用用例图
Neighboursystem
框,表示用例依赖的外部系统、服务、设备,并使用构造型识别- <<system>> 例如:财务系统、教务系统
- <<service>> 例如:第三方身份认证、地理信息服务、短信服务等第三方在线服务
- <<device>> 例如:GPS
- 使用用例图
- 识别使用系统的主要参与者/角色
- 识别用例
- 识别用户级别用例
- 以主要参与者目标驱动
- 收集主要参与者的业务时间
- manage用例
- 识别子功能级别的用例
- 子用例特征
- 业务复用。例如:现金支付
- 复杂业务分解:将业务分解成若干步,便于交互设计和迭代实现
- 表现子用例和用例的关系
- include表示子用例是父用例的一部分,通常强调离开这个特性,父用例无法达成目标或者失去意义
- extend表示子用例是父用例可选场景或技术特征
- 子用例特征
- 识别用户级别用例
- 建立参与者和用例之间的关联:使用无方向连线,表示两间之间是双向交互的协议
- 选择系统边界
- 将上面定义的用例使用一定规则画出来
(8)用例图给利益相关人与开发者的价值有哪些?
- 对于利益相关人
- 用例图模拟了参与者和系统之间的通信,提供了系统使用和行为的摘要视图,使得展现更加一度,可以与客户进行更多的讨论对图进行补充
- 用例图关注的是参与者和企业提供价值系统间的交互,因此会非常注重参与者的使用体验,这样做出来的应用,对于利益相关员之一的使用者来说是很有好处的。
- 对于开发者
- 明确系统的业务范围、服务对象(角色)、外部系统与装备
- 帮助识别技术风险,提前试试关键技术原型公关与学习
- 易于评估项目工作量,合理规划迭代周期,规划人力需要
2、建模练习题(用例模型)
(1)选择2-3个你熟悉的类似业务的在线服务系统(或移动 APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求:
i 请使用用户的视角,描述用户目标或系统提供的服务
ii 粒度达到子用例级别,并用 include 和 exclude 关联它们
iii 请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
iv 尽可能识别外部系统和服务
(2)然后,回答下列问题:
i 为什么相似系统的用例图是相似的?
因为用例图描述的是用户和用例的关系,而用例是描述参与者使用系统达成目标相关的成功和失败的集合,也就是说,在最终目标相同的情况下,达成目标方法相似,用例图就相似,即由于需求相同,用例图也是相似的。
ii 如果是定旅馆业务,请对比 Asg_RH 用例图,简述如何利用不同时代、不同地区产品的用例图,展现、突出创新业务和技术
不同时代,不同地区,旅馆的类型会有所不同,用户侧重的需求也会不一样,因此,在用例图中突出显示这些部分,同时,随着时代的变化,硬件等方面的支持会越来越先进,和更多更新的硬件方面的支持交互,让服务更加人性化。
iii 如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用
看用例的位置,如果在主用例级别,就更重要,如果是子用例级别,就相对没那么重要。
iv 请使用 SCRUM 方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表
id | 名称 | 重要性 | 工作量 | 目标 |
---|---|---|---|---|
1 | 定位 | 10 | 2 | 根据GPS判断地区或者通过选择判断地区 |
2 | 查找电影院 | 8 | 5 | 通过选择或者查找查看电影院 |
3 | 查找电影 | 8 | 5 | 通过选择或者查找查看电影 |
4 | 预定位置 | 6 | 8 | 选择电影院、电影、时间和位置,并预留 |
5 | 支付 | 6 | 8 | 使用多种方式支付 |
6 | 评价 | 4 | 4 | 给电影评价 |
v 根据任务4,参考 使用用例点估算软件成本,给出项目用例点的估算
对用例分配权重的标准是:
简单用例:1 到 3 个事务,权重=5
一般用例:4 到 7 个事务,权重=10
复杂用例:多于 7 个事务,权重=15
id | 名称 | 事务 | 计算 | 评级 |
---|---|---|---|---|
1 | 定位 | 2 | 2 | 简单用例 |
2 | 查找电影院 | 2 | 2 | 简单用例 |
3 | 查找电影 | 2 | 2 | 简单用例 |
4 | 预定位置 | 5 | 7 | 一般用例 |
5 | 支付 | 2 | 2 | 简单用例 |
6 | 评价 | 2 | 2 | 简单用例 |