第5章-UML用例图
产品需求文档的写作(五) – 用例文档(UML用例图、流程图)

产品需求文档的写作(五) –用例文档(UML用例图、流程图)在产品和技术领域里都有UML的技能知识,而对于产品人员的UML则更多的是指用例图,也就是我所称呼的用户流程图。
在讲PRD文档写作的第二篇文章里,我提到了用户流程图的制作,实际上用户流程图是我在产品规则的初期对用例图的一种结构化的表达方式,由于以结构化的方式描述用例太抽象,缺少逻辑性表达,并且那篇文章更偏向于功能性用户流程,还不是实际意义上的用例,因此今天我补文一篇,细讲一下UML用例图和用例文档。
用例文档是由多个用例组成的一份文档,主要用于技术开发与测试使用,他是PRD中的重要辅助文档,用于讲解某个环节的功能逻辑,例如用户注册、活动报名等等功能都是需要用例辅助说明的。
用例文档的写作时间在原型设计之后,通常和PRD文档同步撰写。
用例文档中有两个关联文件,分别是用例图和流程图。
用例图是UML的一种类图表现方式,是从用户角度描述产品功能,并指出该用户在产品各功能中的操作权限。
流程图是通过线框图形的方式描述产品功能的处理过程,主要是描述功能的执行顺序、分支和循环的逻辑。
写用户文档的常用软件是Word,其中用例图和流程图的制作软件常用的是Visio,当然也有用Axure RP软件制作的,例如下面的第三步流程图就是用Axure RP制作的。
一份完整的用例文档分别是由以下三点内容组成,其中第3点的“用例”是描述功能逻辑的部分,根据功能的多少决定有多少个用例。
用例文档的大概组成部分如下:1、修改记录:每次修改的备注记录,同PRD文档。
2、角色介绍:描述参与系统中的各个角色3、用例:同下方步骤的第4步,其中第3步中的流程图是直接插入到第4步的流程图表格项中的。
用例文档的模板格式如同以上三点内容,通过Word文档绘制表格,在表格中撰写用例描述,表格的格式和样式参考以下示例图。
1、撰写用例文档的第一步是注明使用产品的各个角色(参与者)和角色说明(角色介绍)。
第5章-UML用例图

5.2 UML包含的内容
5.2.3 用例图
用例图主要包括3个部分: 用例(User Case) 参与者(Actor) 关系
AssociationName UseCaseName
5.2 UML包含的内容
5.2.3 用例图-用例
用例描述
对用例的描述,可以使用自然语言,活动图和伪代码,也可以使 用用户自己定义的语言。无论用什么形式,所描述的动作序列应该 足够清晰,是其他人员易于理解。
在用例中只需要描述参与者和系统彼此对对方做了那些事,不需 要描述怎么做。
最简单的用例描述,至少会包含一条“基本流程(basic course)” ,用来描述正常的使用。
5.2.3 用例图-用例
用例描述
用例图只能告诉我们系统应具有的功能及参与者,让用户对系统 有一个总体的认识。而没有说明用例的执行过程。
因此,对于每一个用例,我们还需要有详细的描述信息,以便让 别人对于整个系统有一个更加详细的了解。
UML是一套标准的图形语言,其中只提出了13种图,没有将用例 描述考虑在内,也当然没有任何标准的用例描述格式了。
5.2 UML包含的内容
5.2.3 用例图-参与者
如何确定参与者?
(1)使用系统主要功能的人是谁(即主要角色)? (2)需要借助于系统完成日常工作的人是谁? (3)谁来维护和管理系统(次要角色),保证系统正常工作? (4)系统控制的硬件设备有哪些? (5)系统需要与哪些其它系统交互?其它系统包括计算机系统,也包 括该系统将要使用的计算机中的其它应用软件。其它系统也分成二类, 一类是启动该系统的系统,另一类是该系统要使用的系统。 (6)对系统产生的结果感兴趣的人或事是哪些?
UML用例图

用例图主要包括: 用例图主要包括:一个用例图中包括一组用例和一组参与者,主
要描述用例之间、用例与参与者之间、参与者之间的关系,还有相关 注解和约束。
用例图的六个元素: 用例图的六个元素:参与者(Actor)、用例(Use Case)、关联关系
(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系 (Generalization)。
用例(Use Case)
概念: 概念 用例是外部可见的系统功能单元,这些功能由系统单元所提供,并通过一
系列系统单元与一个或多个参与者之间交换的消息所表达.一个用例表示一个 系统中的一部分功能和行为.
用例的特征: 用例的特征
1.用例总是由一个参与者启动 参与者必须直接或间接地命令该系统执行这 用例总是由一个参与者启动: 用例总是由一个参与者启动 个用例. 2.用例为参与者提供某种结果值 用例必须向用户交付某种具体的结果值. 用例为参与者提供某种结果值: 用例为参与者提供某种结果值 3.用例是完整的 用例必须是一个完整的描述 用例是完整的: 用例是完整的
识别用例: 识别用例 最好的方法就是从分析系统的参与者开始,考虑每个参与者是如何
使用系统的.
1.特定参与者希望系统提供什么功能 2.系统是否存储和检索信息,如果是,由哪个参与者触发 3.当系统改变状态时,是否通知参与者 4.是否存在影响系统的外部事件 5.哪个参与者通知系统这些事件
用例和事件流
事件流是什么:事件流是用来为用例的逻辑流程建立文档.这个文档
用例和事件流:用例分析处于系统的需求分析阶段,这个阶段应该尽
量避免考虑系统实现的细节问题.但是要实际建立系统,就需要更加具 体的细节,所以就将这些细节写到事件流文件中去.
UML用例图的基本概念

UML的用途
需求分析
UML可以帮助开发人员更好地理 解客户需求,通过用例图等工具 将客户需求转化为可执行的用例。
系统设计
UML可以帮助开发人员在系统设 计阶段进行系统架构和组件的设 计,通过类图、时序图等工具进 行系统的分析和设计。
05
案例分析
案例一:简单登录系统用例图分析
总结词:简单明了
详细描述:简单登录系统通常包括用户名和密码输入、验证和登录成功或失败的反馈等基本功能。在 UML用例图中,可以清晰地表示出系统的主要功能和参与者的角色。
案例二:网上购物系统用例图分析
总结词:复杂多样
详细描述:网上购物系统涉及到多个参与者,如顾客、管理员和供应商等,以及多种复杂的业务功能,如商品展示、购物车 管理、订单处理和支付等。在UML用例图中,需要对各个功能进行详细的描述和分类,以便更好地理解系统的结构和功能。
用例图在系统设计中的应用
架构设计
用例图可以用于指导系统的架构设计,通过分析用例之间 的关系和交互,设计系统的组件和模块结构。
01
接口设计
用例图可以帮助设计系统组件之间的接 口,明确组件之间的输入输出关系和交 互协议。
02
03
系统流程设计
用例图可以用于描述系统的流程,通 过分析用例的执行顺序和交互逻辑, 设计系统的流程和顺序结构。
用例图在需求分析中的应用
1 2
沟通工具
用例图作为一种可视化图形表示,可以作为沟通 工具,帮助开发团队、客户和利益相关者理解系 统的需求和功能。
需求确认
通过绘制用例图,可以与利益相关者讨论和确认 系统的需求,确保对需求的理解和期望是一致的。
UML 用例图的基本概念

用例
UML建模语言
5.2.3 用例 1. 用例的概念 用例(Use Case)是参与者(角色)可以感 受到的系统服务或功能单元。
带路径名的用例
UML建模语言
2. 用例的识别
任何用例都不能在缺少参与者的情况下独 立存在。同样,任何参与者也必须要有与 之关联的用例,所以识别用例的最好方法 就是从分析系统参与者开始,在这个过程 中往往会发现新的参与者。
细化后 的学生 管理系 统
UML建模语言
4. 用例规约
用例图只是在总体上大致描述了系统所提 供的各种服务,让用户对系统有一个总体 的认识。但对于每一个用例还需要有详细 的描述信息,以便让其他人对于整个系统 有一个更加详细地了解,这些信息包含在 用例规约之中。而用例模型指的也不仅仅 是用例图,而是由用例图和每一个用例的 详细描述——用例规约所组成的。
1. 参与者的概念 2. 参与者的确定 3. 参与者间的关系
UML建模语言
1.参与者的概念
参与者(Actor)是指存在于 系统外部并直接与系统进行交 互的人、系统、子系统或类的 外部实体的抽象。
UML建模语言
2. 参与者的确定
在获取用例前首先要确定系统的参与者,寻找参与者可 以从以下问题入手: .系统开发出来后,使用系统主要功能的是谁? .谁需要借助系统来完成日常的工作? .系统需要从哪些人或其他系统中获得数据? .系统会为哪些人或其他系统提供数据? .系统会与哪些其他系统交互?其他系统可以分为两类, 一类是该系统要使用的系统,二是启动该系统的系统, 包括计算机系统和计算机中的其他应用软件。 .系统是由谁来维护和管理的,以保证系统处于工作状 态? .系统控制的硬件设备有哪些? .谁对本系统产生的结果感兴趣?
软件工程 第5章--UML

UML的定义
UML定义有两个主要组成部分:语义和表示法。 语义用自然语言描述,表示法定义了UML的可 视化标准表示符号,这决定了UML是一种可视 化的建模语言。 在语义上,模型是元模型的实例。UML定义给 出了语法结构的精确定义。 使用UML时,要从不同的角度观察系统,为此 定义了概念“视图(View)‖。视图是对系统的模 型在某方面的投影,注重于系统的某个方面。
独立于过程
系统建模语言,独立于开发过程。
9
容易掌握使用 概念明确,建模表示法简洁明了,图形结 构清晰,容易掌握使用。 着重学习三个方面的主要内容: (1) UML的基本模型元素 (2) 组织模型元素的规则 (3) UML语言的公共机制 与程序设计语言的关系 用Java,C++ 等编程语言可实现一个系统。 一些CASE工具可以根据 UML所建立的系 统模型来产生Java、C++ 等代码框架。
31
UML事物 — 注释事物
11) Note(注释)
依附于一个元素或一组元素之上,对其进
行约束或解释的简单符号。没有语义影响。
See policy8-5-96.doc for details about these algorithms.
CashAccount presentValue()
32
15
UML定义 9 种图,表达UML中的 5 种视图,各 视图在静态和动态方面表示系统模型。
结构 视图 静态 方面
动态 方面
行为 视图 同左
实现 视图 构件图
环境 视图 部署图
同左
用例 视图 用例图
同左
类图 对象图
顺序图 同左 顺序图 合作图 (注重 合作图 状态图 进程、 状态图 活动图 线程) 活动图
UML05用例图模板

⑤ 绘制用例图。
34
5.5 发现用例
发现用例的一般方法:
① 找出系统外部参与者,确定系统边界和范围。 ② 确定各参与者所期望的系统行为。 ③ 把这些系统行为命名为用例。 ④ 确定各用例之间的关系(泛化,包含,扩展)。 ⑤ 绘制用例图。
●
⑥ 编制用例描述。
35
5.5 发现用例
发现用例的一般方法:
出纳员
吃饭
系统需要处理的,由系统生成
44
要点:业务语言而非技术语言
• 用户词汇,而不是技术词汇
– 如:发票,商品,洗衣机 – 而不是:记录,字段,COM,C++等
45
要点:用户观点而非系统观点
订票 旅客 查看今日航班
处理订票
旅客
显示今日航班
用户观点
系统观点
46
思考题:识别用例
• Email客户端(如:outlook express),A在 北京发邮件给上海的B,系统提醒B你有 “新邮件”,B收邮件。
用例描述
用例描述一般包括的内容:
用例的目标 用例是怎么启动的 参与者与用例之间的消息如何传送 用例中除了成功场景外, 其它场景是什么 用例结束后系统的状态 其它需要描述的内容
56
用例阐述文档
• 场景(scenario): 是参与者和被讨论 系统之间的一系列特定活动和交互。每个 用例是一组场景的集合,而每个场景又是 一个步骤序列。 • 用例阐述文档针对每个用例,描述各个场 景
38
5.5.2 获取用例
一旦获取了参与者,就可以对每个参与者提出问题以获取用例。 •执行者要求系统提供哪些功能(执行者需要做什么)? •执行者需要读、产生、删除、修改或存储的信息有哪些类型。 •必须提醒执行者的系统事件有哪些? 或者执行者必须提醒系统 的事件有哪些? 怎样把这些事件表示成用例中的功能? •为了完整地描述用例,还需要知道执行者的某些典型功能能否 被系统自动实现? 还有一些不针对具体参与者问题(即针对整个系统的问题): •系统需要何种输入输出? 输入从何处来? 输出到何处? •当前运行系统(也许是一些手工操作而不是计算机系统)的主要 问题?
需求分析——UML用例图PPT课件

第32页/共84页
要点:用例止于系统边界
描述交互,而不是内在的系统活动
-33-
第33页/共84页
要点:有意义的目标
设定查询条件
会员
选择零件
会员
检索零件
-34-
第34页/共84页
要点:结果值由系统生成
出纳员
吃饭
系统需要处理的,由系统生成
-35-
第35页/共84页
要点:业务语言而非技术语言
• “非程序员杂志”第26到30期UML工具一览,列出了约129个UML开发工具
-7-
第7页/共84页
内容安排
• UML概述 • 理解需求 • 需求,难在何处? • 以用例为中心组织需求 • 基于用例的需求分析过程
-8-
第8页/共84页
认识问题
分析问题
解决问题
以开发者的身份站在开发团队的 角度分析问题
Booch93 OMT-2
统一 化
Booch91 OMT-1 其他方法 OOSE
分散
的
Grady Booch Jim Rumbaugh
第4页/共84页
Ivar Jacobson各 部
分
-4-
UML发展现状
• 目前通用的是UML 1.x版 • 主要UML 1.3、UML 1.4 • 2003年3月正式发布UML 1.5
-24-
第24页/共84页
相关术语
场景:是用来描述用户和系统之间交互的顺序的步骤 用例:是为了达到某一用户目标而组合在一起的一组场景
用例图:用来显示在系统(或其它实体)内的用例与系统参与者之间的关系
用例模型:是系统既定功能及系统环境的模型,并作为客户和开发人员之间的契 约。用例模型用作分析、设计和测试活动的基本输入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.2 UML包含的内容
5.2.3 用例图2-.用用例例的粒度
• 用例的粒度
• 比如:网站后台管理系统中的会员信息维护用例,管理员需要进 行添加会员信息、修改会员信息、删除会员信息等操作。
• 还可以根据具体的操作把它抽象成3个用例,它展示的系统需求 和单个用例是完全一样的。
5.2 UML包含的内容
• (10) 例外:描述该用例执行过程中可能出现的意外情况。例如,没有查找出期望的数据而导 致的计算终止。对于每个例外,应该知道它所发生的环境和应该采取的措施。
• (11) 限制:描述执行用例的限制。例如,为用例分配的资源可能受到限制。还有,要求用例 中必须保持某种条件为真,违反这些条件就会引起错误。例如,公司职员数量要为正数。
• 用例图清楚地描述了使用者及它们之间的泛化关系,用例及用例 之间的泛化、扩展关系,用例和参与者之间的关联关系,可从用 例图中得到对于被定义系统的一个总体印象。
5.2 UML包含的内容
5.2.3 用例图
用例图主要包括3个部分: 用例(User Case) 参与者(Actor) 关系
AssociationName UseCaseName
顺序图
描述对象之间的交互,重点在强调顺序
通信图
描述对象之间的交互,重点在于连接
定时图
描述对象之间的交互,重点在于定时
交互概观图 是一种顺序图与活动图的混合
备注
UML 1原有 UML 1非正式图 UML 2.0新增 UML 1原有 UML 1原有 UML中非正式图 UML 1原有 UML 1原有 UML 1原有 UML 1原有 UML 1中的协作图 UML 2.0 新增 UML 2.0新增
5.2 UML包含的内容
5.2.3 用例图3-用. 例用例规约
• (8) 细节(事件流):详细的描述交互序列。细节要描述参与者与用例的一步步的交互,每 一步要提供充分的内容,用于说明涉及哪些实体、针对每个实体做了什么事,以及这一步的 结果。若用例较为复杂,要区分出基本流程和可选流程。
• (9) 后置条件:描述在用例结束时确保成立的条件。执行用例的目的是要产生一些预计的值 或者状态,用后置条件明确地标识执行该用例后的预期结果。
再者,有时会包含数条“可选流程(alternative course)” 用 来描述错误的、异常的状况。
除此之外,用例描述格式可自由制定。
5.2 UML包含的内容
5.2.3 用例图3-用. 例用例规约
• 按照国家电子信息行业标准《面向对象的软件系统建模规范——第三部 分:文档编制》的要求,下面给出用于描述用例的模板。
注意:参与者可以是人,也可以是外部系统或其它设备。
5.2 UML包含的内容
5.2.3 用例图5-.2参.与1者参与者
• 参与者有三大类:
– 第一类参与者是真实的人,即用户,是最常见的参与者,几 乎存在于每一个系统中。
– 第二类参与者是其他的系统。这类位于程序边界之外的系统 也是参与者。
– 第三类参与者是一些可以运行的进程。如时间,当经过一定 的时间触发系统中的某个事件时,时间就成了参与者。
5.2.3 用例图-用例
用例描述
用例图只能告诉我们系统应具有的功能及参与者,让用户对系统 有一个总体的认识。而没有说明用例的执行过程。
因此,对于每一个用例,我们还需要有详细的描述信息,以便让 别人对于整个系统有一个更加详细的了解。
UML是一套标准的图形语言,其中只提出了13种图,没有将用例 描述考虑在内,也当然没有任何标准的用例描述格式了。
• 要在用例图上绘制一个参与者(表示一个系统用户), 可绘制一个人形符号。
5.2 UML包含的内容
5.2.3 用例图
• 参与者和用例之间的关系使用带箭头或者不带箭头的线段来描述,箭 头表示在这一关系中哪一方是对话的主动发起者,箭头所指方是对话 的被动接受者。如果不想强调对话中的主动与被动关系,可以使用不 带箭头的线段。
5.2.3 用例图
• 由参与者(Actor)、用例(Use Case)以及 它们之间的关系构成的用于描述系统功能的动 态视图称为用例图。
• 用例和参与者之间的对应关系叫做通信关联, 它表示参与者使用了系统中的哪些用例。
5.2 UML包含的内容
5.2.3 用例图
• 要在用例图上显示某个用例,可绘制一个椭圆,然后 将用例的名称放在椭圆的中心或椭圆下面的中间位置。
UML2.0的图型
图名
功能
类图
描述类、类的特性以及类之间的关系
对象图
描述一个时间点上系统中各个对象的一个快照
复合结构图 描述类的运行时刻的分解
组件图
描述组件的结构与连接
部署图
描述在各个节点上的部署
包图
描述编译时的层次结构
用例图
描述用户与系统如何交互
活动图
描述过程行为与并行行为
状态机图 描述事件如何改变对象生命周期
5.2.1 参与者
• 通过泛化关系可以减少参与者和用例之间的关联的 次数,简化用例模型。
5.2 UML包含的内容
5.2.3 用例图-用例
用例(Use case)是从系统外部可见的行为,是参与者可以 感受到的系统服务或功能单元。它定义了系统是如何被参与者 使用的,描述了参与者为了使用系统所提供的某一完整功能而 与系统之间发生的一段对话。
• 当找到参与者之后可以根据参与者确定系统的用例,主要是看各 参与者如何使用系统,需要系统提供什么样的服务。
5.2 UML包含的内容
5.2.3 用例图-用例
• 可以通过以下问题来寻找用例:
(1)参与者希望系统提供什么功能? (2)参与者是否会读取、创建、修改、删除、存储系统的某种信 息?如果是的话,参与者又是如何完成这些操作的? (3)参与者是否会将外部的某些事件通知给系统? (4)系统中发生的事件是否通知参与者? (5)是否存在影响系统的外部事件?
• 用例图可视化地表达了系统的需求,具有直观、规范等优点,克 服了纯文字性说明的不足。
5.2 UML包含的内容
5.2.3 用2例.图用例图的作用
用例图的作用
• 用例方法是完全从外部来定义系统功能,它把需求和设计完全的 分离开来。我们不用关心系统内部是如何完成各种功能的,系统 对于我们来说就是一个黑箱子。
5.2 UML包含的内容
5.2.3 用例图-用例
• 注意:用例的主要目的是帮助人们了解系统功能,便于开发人员 与用户之间的交流,所以确定用例的一个很重要的标准就是用例 应该易于理解。
• 对于同一个系统,不同的人对于参与者和用例可能会有不同的抽 象,这就要求在多种方案中选出最好的一个。
5.2 UML包含的内容
用例最大的优点是站在用户的角度上(从系统的外部)来描 述系统的功能。它把系统当作一个黑箱子,并不关心系统内部 是如何完成它所提供的功能,表达了整个系统对外部用户可见 的行为。
5.2 UML包含的内容
5.2.3 用例图-用例
• 用例的特征:
– 用例必须由某一个参与者触发激活后才能执行,即每个用例 至少涉及一个参与者。
5.2 UML包含的内容
5.2.3 用例图
用例图主要用于为系统的功能需求建模,它主要描述系统功能, 也就是从外部用户的角度观察,系统应该完成哪些功能。
用例图可以帮助开发人员以一种可视化的方式理解系统的功能 需求,是后续的系统分析与设计工作的依据。
用例图是对系统功能的一个宏观描述,画好用例图是由软件需 求到最终实现的第一步,也是最重要的一步。
5.2 UML包含的内容
5.2.3 用例图-参与者
如何确定参与者?
(1)使用系统主要功能的人是谁(即主要角色)? (2)需要借助于系统完成日常工作的人是谁? (3)谁来维护和管理系统(次要角色),保证系统正常工作? (4)系统控制的硬件设备有哪些? (5)系统需要与哪些其它系统交互?其它系统包括计算机系统,也包 括该系统将要使用的计算机中的其它应用软件。其它系统也分成二类, 一类是启动该系统的系统,另一类是该系统要使用的系统。 (6)对系统产生的结果感兴趣的人或事是哪些?
• 注意:包、注释都不是用例图的基本组成要素,但在 用例建模过程中可能会用到它们。
5.2 UML包含的内容
5.2.3 用例图
用例图的作用
• 用例图是需求分析中的产物,主要作用是描述参与者和用例之间 的关系,帮助开发人员可视化的了解系统的功能。
• 借助于用例图,系统用户、系统分析人员、系统设计人员、领域 专家能够以可视化的方式对问题进行探讨,减少了大量交流上的 障碍,便于对问题达成共识。
ActorName (From Use Case View)
(From Use Case View)
5.2 UML包含的内容
5.2.3 用例图-参与者
参与者(Actor)是指存在于系统外部并直接与系统进行交互的 人、系统、子系统或类的外部实体的抽象。
每个参与者可以参与一个或多个用例,每个用例也可以有一个或 多个参与者。
5.2 UML包含的内容
5.2.3 用例图
类图 类(class)
关联(association) 系统的内观(里子)
静态结构 稳定成长
用例图 用例(use case)、参与者(actor) 包含(include)、扩展(extend)
系统的外观(面子) 动态功能 变化迅速
类5.2.3 用例图2-.用用例例的粒度
• 用例的粒度
• 用例的粒度指的是用例所包含的系统服务或功能单元的多少。用 例的粒度越大,用例包含的功能越多,反之则包含的功能越少。
• 如果用例的粒度很小,得到的用例数就会太多。会造成用例模型 过大和设计困难大大提高。
• 反之,如果用例的粒度很大,那么得到的用例数就会很少,不便 于进一步的充分分析。
5.2 UML包含的内容