系统分析与设计 作业六
一、简答题
用例的概念
用例是一组与成功和失败相关的场景的集合,这些场景描述了用户使用系统来达成某个目标。
用例和场景的关系?什么是主场景或 happy path?
场景是参与者和系统之间的一个特定的行为和交互序列。它也被称为用例实例
主场景(或happy path)是典型的、无条件的、理想方式、无错误的系统最基本的成功场景。
用例有哪些形式?
- 简洁
- 简短的一段总结,通常是主要的成功场景。
- 何时使用:在早期的需求分析中,快速地了解主题 和范围。可能只需要几分钟来创建。
- 简便格式
- 非正式的段落格式。包含多种场景的多个段落。
- 何时使用: 如上所述。
- 详细
- 所有的步骤和变化都写得很详细,并有支持部分,如先决条件和成功的保证。
- 何时使用:在以一种简短的格式确定并编写了许多用例之后,在第一个需求研讨会期间,会详细地编写一些(例如10%)具有体系结构重要性和高价值的用例。
对于复杂业务,为什么编制完整用例非常难?
Use Cases首先用于需要响应客观事件的系统。它们能用于提供了一个有很容易理解的目标的清楚的行为者的环境。当结果不可定义或不清晰时不能用Use Cases。意思是如果目标成功或目标失败不能有一个明确的定义,那么Use Cases不能用来捕获需求。
由于复杂业务的场景较多,无法完整考虑各步骤的前置条件和成功保证,同时业务模式和需求容易变化,用例的编写需要遵循简洁的原则,如果用例过于完整,粒度太小,用例之间的关系会变得非常复杂,难以修改,缺乏灵活性,也容易出错。
什么是用例图?
用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型图。用例图是系统的蓝图。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。
用例图的基本符号与元素?
-
参与者(Actor)
表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。
-
用例(Use Case)
用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。
-
关系
用例图中涉及的关系有:关联、泛化、包含、扩展。-
关联(association)表示参与者与用例之间的通信,任何一方都可发送或接受消息。
【箭头指向】:由参与者指向用例。
-
泛化(Inheritance) 就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
【箭头指向】:指向父用例
-
包含(include)关系用来把一个较复杂用例所表示的功能分解成较小的步骤。
【箭头指向】:指向分解出来的功能用例
-
扩展(extends)扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。
【箭头指向】:指向基础用例
-
用例图的画法与步骤
- 确定要画什么系统的用例图。
- 识别参与者(Actors)
- 识别用例(Use cases)
- 确定用例(Use cases)之间的关系。包括关联、泛化、包含、扩展这四种关系。
- 确定参与者(Actors)与用例(Use cases)之间的关系。
用例图给利益相关人与开发者的价值有哪些?
- 用例图是对系统上下文的一个很好的描述;
- 用例图是一个很好的上下文图,
- 用例图显示一个系统的边界,它的外部是什么,以及如何使用它。
- 用例图作为一种通信工具,总结系统及其参与者的行为。
二、建模练习题(用例模型)
- 选择2-3个你熟悉的类似业务的在线服务系统(或移动 APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求:
请使用用户的视角,描述用户目标或系统提供的服务
粒度达到子用例级别,并用 include 和 exclude 关联它们
请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
尽可能识别外部系统和服务
携程订酒店系统:
猫眼订票系统:
- 为什么相似系统的用例图是相似的?
- 因为相似系统的参与者、用例、边界以及他们之间的关系都是相似的,所以画出的用例图也都是相似的。
- 如果是定旅馆业务,请对比 Asg_RH 用例图,简述如何利用不同时代、不同地区产品的用例图,展现、突出创新业务和技术
- 不同时代、不同地区用户习惯、需求法规以及其他社会环境的不同,使得技术和业务需求方面有所差距,这些差异会体现在用例图中,可以用不同的色彩标注他们来突出创新之处。
- 如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用
- 通过看创新点在用例图中的位置,如果是用户级别的用例,那么其在系统的作用就比较的大,如果是属于子功能级别的包含用例,也比较重要,如果是子功能级别的扩展用例或是外部系统或服务,作用就比较一般。
- 请使用 SCRUM 方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表
ID | Name | Imp | Est | How To Demo |
---|---|---|---|---|
1 | find hotel | 5 | 5 | find hotel by location |
2 | make reservetion | 6 | 7 | choose hotel and time and conform |
3 | modify reservetion | 5 | 4 | modify reservetion information |
4 | pay reservetion | 6 | 5 | supported by third part systems |
5 | commet hotel | 3 | 3 | user make comments on hotel |
- 根据任务4,参考 使用用例点估算软件成本,给出项目用例点的估算
用例 | 事务 | 计算 | 原因 | UC权重 |
---|---|---|---|---|
1.find hotel | 5 | 5 | 简单 | |
2.make reservetion | 6 | 7 | 简单 | |
3.modify reservetion | 5 | 4 | 简单 | |
4.pay reservetion | 6 | 5 | 简单 | |
5.commet hotel | 3 | 3 | 简单 |
参考资料
https://kb.cnblogs.com/page/129491/
https://www.baidu.com/
https://sysu-swsad.github.io/slides/04-usecase.pdf