通俗地讲,用例是文本形式的情节描述,
用以说明某参与者使用系统以实现某些目标。
注意:用例不是图形,而是文本。
用例初学者的常见错误就是注重于次要的UML用例图,而非重要的用例文本。
本质上,用例是通过编写使用系统实现用户目标的情节来发现和记录功能性需求
,也就是使用的案例(cases of use)
定义:参与者、场景和用例
参与者
(actor)是某些具有行为的事物,可以是人(由角色标识)、计算机系统或者组织。例如:收银员
场景
(scenario)是参与者和系统之间的一系列特定的活动和交互,也称为用例实例
(use case instance)。场景是使用系统的一个特定情节或用例的一条执行路径。例如,使用现金成功购买商品的场景,或者由于信用开付款被拒绝造成的购买失败场景。
通俗地讲,用例
(use case)就是一组相关的成功和失败场景集合,用来描述参与者如何使用系统来实现其目标。
RUP对用例进行如下的定义:
一组用例的实例,其中每个实例都是系统执行的一系列活动,这些活动产生了对某个参与者而言可观察的返回值[RUP]
用例和用例模型
UP在需求制品中定义了用例模型
(Use-Case Model)。首先,这是所有书面用例的集合;同时,它是系统功能性和环境的模型。
用例是文本文档,而非图形;用例模型主要是编写文本的活动,而非制图。
用例模型可以包含UML用例图,以显示用例和参与者的名称和其关系。UML用例图可以为系统及其环境提供良好的语境图
(context diagram),也为按名称列出用例提供了快捷方式。
用例不是面向对象的,编写用例时也不会进行OO分析。但这并不妨碍其有效性,用例可以被广泛应用。也就是说,用例是经典OOA/D的关键需求输入
。
动机:为什么使用用例
在软件项目中,缺少用户参与是项目失败的主要原因之一。研究人员设计了他们自己能够理解的复杂分析方法,但是一般的业务人员却对此迷惑不解。因此,任何有利于用户参与的方法都是绝对值得的。
用例是一种优秀的方法,是领域专家或者需求提供者自己编写(或者参与编写用例)用例成为可能,使与用户沟通
的工作难度降低。
用例的另一个价值在于:强调了用户的目标和观点。
用例的优越性在于,能够根据需要,对复杂程度和形式化程度进行增减调整。
定义:用例是功能性需求
用例就是需求,主要是说明系统如何工作的功能性或行为性需求。按照"FURPS+"需求类型,用例强调了"F"(功能性或行为性),但也可以用于其他类,特别是于用例紧密相关的那些类型。在UP和其他的现代方法中(XP,TDD),用例被推荐作为发现和定义需求的核心机制。
用例是真正的需求(尽管不是所有的需求)。用例的主要思想(通常)是:为功能性需求编写用例,从而降低详细的老式特性列表的重要性或减少这种列表的使用。
定义:参与者的三种类型
参与者
(actor)是任何具有行为的事物,在所讨论系统(System under Discussion, SuD)调用其他系统的服务时,还包括起本身。主要参与者和协助参与者会出现在用例文本的活动步骤中。相对于SuD,有三种参与者:
- 主要参与者
(primary actor):具有用户目标,并通过使用SuD的服务完成。例如:收银员。为何要确定主要参与者?发现驱动用例的用户目标。
- 协助参与者
(supporting actor):为SuD提供服务(例如,信息服务)。协助参与者一般是计算机系统,也可以是组织或者人。为何要确定协助参与者?为了明确外不接口和协议。
- 幕后参与者
(offstage actor):在用例行为中具有影响或者利益,但不是主要或者协助参与者。如,政府税收机构。为何要确定幕后参与者?这是为了确保确定并满足所有必要的重要事物。如果不明确地对幕后参与者进行命名,则有时容易忽略其影响活利益。
用例的三种常用表示法
用例能够以不同形式化程度或格式进行编写:
- 摘要——简洁的一段式概要,通常用于主成功场景。用于早期需求分析过程中,为了快速了解主题和范围。
- 非正式——非正式的段落格式。用几个段落覆盖不同场景。同样,用于早期需求分析过程中,为了快速了解主题和范围。
- 详述——详细编写所有步骤及各种变化,同时具有补充部分,如前置条件和成功保证。何时使用?确定并以摘要形式编写了大量用例后,在第一次需求讨论会中,详细的编写其中少量(例如:10%)的具有重要架构意义和高价值的用例。
分享到:
相关推荐
理解和应用设计模式可以提高代码的可读性、可维护性和复用性。在视频笔记中,可能会讲解如何在实际项目中运用这些模式。 "01.POS(项目初始).wrf"文件可能详细解释了如何运用UML进行POS系统的初步建模,包括识别关键...
`UML符号及图.doc`可能是对这些符号的详细解释和示例,而`OOAD$UML笔记.txt`可能包含了学习UML和进行面向对象分析与设计的个人笔记,可能涵盖了一些案例研究和最佳实践。 理解并熟练使用UML符号集对于任何软件开发...
**UML(统一建模语言)是软件工程领域中一种重要的可视化建模工具,用于描述、构造和文档化系统的设计。...通过这份笔记,学习者可以系统地掌握UML,并将其应用于实际项目中,提升软件设计的可视化和沟通效率。
电影院售票系统的设计与实现结合了UML的理论与实践,通过严谨的需求分析、合理的系统架构设计,以及有效的项目管理,构建了一个高效、实用的电影院售票平台,充分展示了面向对象分析与设计在实际项目中的应用价值。
《UML大象读书笔记》是一篇关于理解和应用UML(Unified Modeling Language)的深度学习笔记,作者通过阅读《UNL大象》这本书,分享了对UML基础和面向对象方法的见解,以及个人的理解和认知。 面向对象方法是现代...
《UML与UP读书笔记》是对面向对象设计与软件开发过程两种重要工具——统一建模语言(Unified Modeling Language,简称UML)和统一过程(Unified Process,简称UP)的深度学习与理解的结晶。这份笔记涵盖了UML的核心...
通过《UML及建模》这本书的学习,读者不仅可以掌握UML的基本语法和用法,还能理解如何在实际项目中有效地应用这些工具来提高软件设计的质量和效率。同时,书中可能还包括案例分析和实战指导,帮助读者将理论知识转化...
**UML(统一建模语言)**是一种标准的...对于初学者或“菜鸟”,了解和掌握UML的基本元素和应用场景,可以帮助他们更好地理解和设计复杂的系统,特别是对于网站开发,理解业务流程、用户交互和系统架构是至关重要的。
本笔记以实例为主,将理论与实践相结合,使读者能够快速理解和应用UML。通过对不同图的绘制和解析,加深对UML的理解,提升软件设计和沟通效率。在实践中,灵活运用UML工具,结合具体项目,将能更有效地实现系统建模...
这篇学习笔记将深入探讨UML的核心概念和主要用途。 1. **UML的基本元素** - **类(Class)**:UML中的类代表了系统中的对象,包含了属性、操作和关系。 - **对象(Object)**:类的具体实例,具有具体的属性值。 ...
4. 面向对象设计原则和模式,如单一职责原则、开闭原则等,以及它们在UML中的体现。 5. 模型的验证和评审方法,确保模型准确无误地表达了系统需求。 通过深入学习和实践UML,开发者可以更有效地设计和理解复杂的...
**UML建模个人总结笔记** UML(Unified Modeling Language),统一建模语言,是软件开发过程中用于系统分析和设计的一种标准化图形表示工具。它提供了一种通用的、直观的图形化语言,使得开发团队可以有效地沟通和...
《UML用户指南》读书笔记是对UML(Unified Modeling Language)这一建模语言的深入学习和理解的记录。UML是一种通用的、直观的建模语言,用于软件工程和其他领域,帮助开发者、分析师和项目团队可视化、规范和交流...
【UML 读书笔记】 UML(统一建模语言)是一种标准的图形建模语言,用于软件工程和其他领域,用于描述、构建和记录软件系统的设计。以下是对UML的8种主要图表的详细解释: 1. **类图(Class Diagram)**:类图展示了...
**UML精粹笔记概述** UML(统一建模语言)是软件开发中的一种标准化建模工具,用于可视化、理解和构建复杂系统。...通过学习和应用这些知识,我们可以更有效地进行系统建模和沟通,提高开发效率。
### 设计模式学习笔记 #### 一、设计模式概述 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。设计...