用例图

合集下载

02-用例和用例图

02-用例和用例图

3.4.4 几种关系的比较
关系类型
说明
表示符号
关联
actor与use case之间
泛化
actor之间或use case之间
包含
use case之间
扩展
use case之间
用例图
用例图(use case diagram)是显示一组用例、角色以及它 们之间的关系的图.
在UML中, 一个用例模型若干个用例图描述.
角色
由于Actor实际上是一个特殊类, 因此它们之间可以 存在一定的关系,如:
脚本/场景
脚本(scenario)在UML中指贯穿用例的一条单一路径, 用 来显示用例中的某种特殊情况.
其它译名: 情景、情节、剧本.
每个用例有一系列脚本, 包括一个主要脚本, 以及几个 次要脚本. 相对于主要脚本, 次要脚本描述了执行路径 中的异常或可选择的情况.
实例分析:语音邮箱系统----用例脚本
用例3: 登录系统 1. 邮箱用户完成邮箱号输入操作. 2. 邮箱用户键入密码并后跟#键.(默认号码与邮箱号相同) 3. 语音邮件系统播放邮箱菜单: 按1键接收信息. 按2键更改密码. 按3键更改问候语.
实例分析:语音邮箱系统----用例脚本
用例4: 接收信息 1. 邮箱用户完成登录操作. 2. 邮箱用户选择 “接收信息”菜单选项. 3. 语音邮件系统播放信息菜单: 按1收听当前信息; 按2存储当前信息; 按3删除当前信息; 按4返回邮箱菜单. 4. 邮箱用户选择“收听当前信息”菜单选项. 5. 语音邮件系统播放当前新信息,若无新信息,播放当前已有信 息.(注意: 只播放,不删除) 6. 语音邮件系统播放信息菜单. 7. 用户选择”删除当前信息”,则信息被永久删除. 8. 继续执行第3步.

第5章 用例图

第5章 用例图

用例与事件流
• 用例分析处于系统的需求分析阶段,这个
阶段应该尽量避免考虑系统实现的细节问 题,这些细节问题写在事件流文件中。事 件流文件即用例的逻辑流程文档包括:
• 1. 简要说明:描述用例的作用; • 2. 前提条件:用例之前必须满足的条件;例:用户是否有运行权限 • 3. 事件流(主事件流、其他事件流、错误流 ):描述参与者执行用
习题:
• 2、一台饮料自动售货机能提供6种不同的 、一台饮料自动售货机能提供6
饮料。售货机上有6 饮料。售货机上有6个按钮,分别对应于这 6中饮料,顾客可以通过按钮来选择所要的 饮料。每个按钮旁边有一个指示灯,用来 表明该售货机中是否还有这种饮料可售。 售货机有一个硬币槽的找零槽,用来收钱 和找钱。
① 处理书籍借阅 ② 处理书籍归还 ③ 删除预定信息
3. 系统管理员进行系统维护的用例
① 查询借阅者信息 ② 查询书籍信息 ③ 增加书目 ④ 删除或更新书目 ⑤ 增加书籍 ⑥ 删除书籍 ⑦ 添加借阅者帐户 ⑧ 删除或更新借阅者帐户
5.3.4 使用Rational Rose绘制用例图 使用Rational Rose绘制用例图 的步骤
扩展关系
• 扩展用例被定义为基础用例的增量扩展,这称作
扩展关系。
用例间的扩展关系
扩展关系例子
扩展关系指的是基础用例执行的情况下可选择是否执行提供者用例。
泛化关系
• 父用例也可以被特别列举为一个或多个子用例。 • 子用例从父用例处继承行为和属性,还可以添加
行为或覆盖、改变继承的行为。
用例间的泛化关系 泛化关系例子
例的具体步骤; • 4. 事后条件:用例执行完毕后必须为真的条件。例:用例完成之后 设置一个标志,这种信息就是事后条件。

第6章 用例图

第6章 用例图

4、关系--Relationship
四种基本关系: 关联(association) 包含(include) 扩展(extend) 泛化(generalization)
(1)关联

描述参与者与用例之间的关系; 用单向箭头,表示谁启动用例; 每个用例都有角色启动,除包含和扩展 用例;
[即启动该用例所应该满足的条件。] [即该用例完成之后,将执行什么动作。] [描述当前目标完成后,环境变化情况。] 步骤 1 活动 [在这里写出触发事件到目标完成以及清除的步骤。]
2
扩展事件 流 子事件流 规则与约 束 1a 1b
……(其中可以包含子事件流,以子事件流编号来表示)
[1a表示是对1的扩展,其中应说明条件和活动] ……(其中可以包含子事件流,以子事件流编号来表示)

系统还需要进行意外处理
扩展事件流
事件流编写要点



使用简单的语法:主语明确,语义易于理解 明确写出“谁控制球”:通常就是指出参与 者; 从俯视的角度来编写:指出参与者的动作, 以及系统的响应,也就是跳开来; 显示过程向前推移:也就是每一步都有前进 的感觉
事件流编写要点


“确认”而不是“检查是否”;(如:系统 确认用户密码正确,而非系统检查用户密码 是否正确) 可选择地提及时间限制;
3、用例---Use Case

系统、子系统或类与外部的参与者 (actor)交互的动作序列的说明,包括 各种序列及出错序列。 用例分析可以认为是对系统功能的分解。

存款
Withraw Money
3、用例---Use Case
(1)用例的表示 简单名 路径名
3、用例---Use Case

第6章 用例图

第6章 用例图

3、构建用例模型
采 购 员 用 例 图
采购员能够通过该系统进行订货管理活动。采购员首先根据经营情 况统计所缺的生产资料,根据需要制定出订单。
UML统一建模语言
五、使用Rose创建用例图的步骤说明
3、构建用例模型
会 计 用 例 图
会计负责产品的统计分析 管理,它能够通过该系统 进行如下活动: (1)查询基本信息。会计 能够查询产品的基本信息, 根据产品的基本信息,制 定出相应的方案。 (2)查询销售信息。会计 根据销售情况汇总后交销 售部制定合理的销售方案。 (3)查询供应商信息。会 计能够查询供应商信息。 (4)查询缺货信息。会计 能够查询缺货信息。 (5)查询报损信息。会计 能够查询报损信息。
1、需求分析
“企业进、存、销管理系统” 功能性需求包括以下内容: (1)采购员根据生产原料的使用情况判断采购用品,对需要订购产品信息 统计订货的,并制作产品订单。最后根据订单进行采购活动。 (2)仓库管理员负责产品的库存管理。包括产品入库管理、处理盘点信息、 处理报损产品信息和一些信息的设置。这些设置信息,包括:供应商信息、产 品信息。仓库管理员每天对产品进行一次盘点,当发现库存产品有损坏时,及 时处理报损信息。当产品生产后,将产品进行入库。当产品销售后时,产品进 行出库处理。 (3)统计人员负责统计分析管理,包括:查询产品信息、查询销售信息、 查询供应商信息、查询缺货信息、查询报表信息,并制作报表。统计分析员使 用系统的统计分析功能,了解产品信息、销售信息、供应商信息、库存信息。 (4)在销售员为客户提供售货服务时,接受客户购买产品,根据系统的定 价计算出产品的总价,客户付款,系统自动保存客户购买记录。 (5)系统管理员负责本系统的系统维护。系统管理员负责员工信息管理、 供货商信息管理以及系统维护等。每种管理者都通过自己的用户名称和密码登 录到各自的管理系统中。

用例图

用例图

用例图百科名片用例图就是由主角、用例以及它们之间的关系构成的图。

该图说明了用例模型中的关系。

简介用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。

用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。

用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。

将每个系统中的用户分出工作状态的属性和工作内容,方便建模,防止功能重复和多余的类。

用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。

ps: 提取出“名词”,画用例图构成用例图由参与者(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。

参与者参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。

因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。

还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。

比如小明是图书馆的管理员,他参与图书馆管理系统的交互,这时他既可以作为管理员这个角色参与管理,也可以作为借书者向图书馆借书,在这里小明扮演了两个角色,是两个不同的参与者。

参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称。

用例用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。

这是UML对用例的正式定义,对我们初学者可能有点难懂。

我们可以这样去理解,用例是参与者想要系统做的事情。

对于对用例的命名,我们可以给用例取一个简单、描述性的名称,一般为带有动作性的词。

用例在画图中用椭圆来表示,椭圆下面附上用例的名称。

系统边界系统边界是用来表示正在建模系统的边界。

边界内表示系统的组成部分,边界外表示系统外部。

系统边界在画图中方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。

用例图

用例图

用例图(Use Case Diagram)是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统。

用例视图显示谁是相关的用户、用户希望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。

用例图在各种开发活动中被广泛的应用,但是它最常用来描述系统及子系统。

当用例视图在外部用户出现以前出现时,它捕获到系统、子系统或类的行为。

它将系统功能划分成对参与者(即系统的理想用户)有用的需求。

而交互部分被称作用例。

用例使用系统与一个或者多个参与者之间的一系列消息来描述系统中的交互。

用例图包含六个元素,分别是:参与者(Actor)、用例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。

用例图可一个包含注释和约束,还可一个包含包,用于将模型中的元素组合成更大的模块。

有时,可以将用例的实例引入到图中。

用例图模型如下所示,参与者用人形图标来标识,用例用椭圆来表示,连线表示它们之间的关系。

一.参与者(Actor)1.参与者的概念参与者是系统外部的一个实体,它以某种方式参与用例的执行过程。

参与者通过向系统输入或请求系统输入某些事件来触发系统的执行。

参与着由参与用例时所担当的角色来表示。

在UML中,参与者用名字写在下面的人形图标表示。

每个参与者可以参与一个或多个用例。

它通过交换信息与用例发生交互(因此也与用例所在的系统或类发生了交互),而参与者的内部实现与用例是不相关的,可以用一组定义其状态的属性充分的描述参与者。

参与者有三大类:系统用户、与所建造的系统交互的其它系统和一些可以运行的进程。

第一类参与者是真实的人,即用户,是最常见的参与者,几乎存在于每个系统中。

命名这类参与者时,应当按照业务而不是位置命名,因为一个人可能有很多业务。

第二类参与者是其它的系统。

用例图-包含、扩展、泛化

用例图-包含、扩展、泛化

⽤例图-包含、扩展、泛化
⽤例图=参与者+⽤例
参与者在图中表⽰为⽕柴⼈⼀样,⼈、物、系统都能分为参与者
⽤例通常使⽤圆形来表⽰.
参与者去使⽤⽤例这个功能
⽤例和⽤例之间的关系有⼏种情况:
包含:⼀个⽤例有时会包含另⼀个⽤例,在图中使⽤虚线和箭头来表⽰
就像是借书->查书,想要借书,就必定要进⾏查书,所以说借书⽤例包含查书
扩展关系:分俩种情况:⼀种是可选,⼀种是特殊.
扩展关系有时候就像if⼀样,当发⽣⼀些情况的时候,或者你想额外做什么的时候,从原实例扩展出⼀个新的实例应对特殊情况或者额外可选操作,则说新 实例是扩展于原实例的.
特殊:扩展关系是被扩展⽤例的⼀种特殊情况,就⽐如扩展⽤例是有时候会发⽣的特殊情况,如迟到和上课,迟到就是由上课扩展的⽤例.
可选:可选的操作,是由原来的实例扩展出来可选的操作,就⽐如取票和打印凭证,
可以说必定发⽣⽤<<include>>(包含),可能发⽣使⽤<<extend>>(扩展)
泛化关系<<generalization>>,⼀般使⽤实现+空三⾓形来表⽰.
泛化⼀般指的就是⼀般和特殊的关系,就像是⽗类和⼦类的关系,如同er图的超类,⼦类是⼀种特殊的⽗类类型
就⽐如缴费⽤例和线上缴费、线下缴费之间,线上缴费和线下缴费就是缴费⽤例的⼦类,由⼦类指向⽗类的<<generalization>>关系. 泛化关系就是描述⽤例的⼀般和特殊关系.。

用例图(User Case)

用例图(User Case)

用例图(User Case)用例图是用来描述什么角色通过某某系统能做什么事情的图,用例图关系的是系统的外在表现,系统与人的交互,系统与其它系统的交互。

下面逐一说明用例图中各种符号的意义:小人:对使用某系统的用户进行分类后,可以总结出使用本系统有哪些角色,不同的角色的工作责任不太一样,他们需要用到的系统的功能也会不太一样。

小人就是角色,它给了我们一个启示,我们思考某系统的需求时,可从不同角色的角度来思考。

例如:我们要做一个考勤系统,你会怎样思考呢?会一下子列出很多功能?比较好的方式,应该是先思考什么人会用这个系统,我们大概可以估计一般员工、高层领导、前台、财务等都会用这个系统,对于一般员工来说除了打卡,他还关注什么?对于前台,她是不是要做一些考勤的统计?而财务是不是要根据考勤情况来调整员工的薪金?这样的思考方式,会让我们更容易全面发掘系统的需求。

还需要特别说明的是:角色可能是人,也可能不是人,而是另外的一个系统,本系统与另外一个系统交互的话,可以将另外一个系统画成某某角色。

圈圈:圈圈里面会有一段动宾结构的文字,也就是“动词+名词”这样的方式,这个圈圈+圈圈里面的文字,就是用例,这些用例表明了系统能做什么事情。

以考勤系统为例:有两个用例叫“打卡”、“查看自己的考勤情况”,这个两个圈圈分别用一条线连到了“一般员工”这个角色,我们可以按这样的顺序来读这个图:先读出角色的名字,然后读出用例中的文字。

按着这样的读法,我们可以得到两句完整的句子:“一般员工打卡”“一般员工查看自己的考勤情况”大家可以用这样的方式来检查自己用例图是否画得合适。

某用例不一定是只属于某个角色的,有不少用例是多个角色“共享”的。

大框框:在所有用例的外面,有一个方框,这个方框只框住了用例,没有框住角色,这个东西就叫做系统边界,框框的上部会注明本系统的名字。

我们所做的系统,是不可能包括角色的,系统要发挥各种作用,要靠各角色“穿越”系统边界来使用本系统的用例。

UML功能模型(用例图)

UML功能模型(用例图)

UML功能模型(⽤例图)在UML系统开发中有三个主要的模型:功能模型(从⽤户⾓度展⽰系统的功能,包括⽤例图)、对象模型(采⽤对象,属性,操作关联等概念展⽰系统的结构和基础,包括类图、对象图、包图)、动态模型(展⽰系统的内部⾏为,包括序列图,活动图,状态图)。

下⾯就说⼀说功能模型——⽤例图。

⽤例图是UML建模的⼀部分,也是UML⾥⾯最基础的部分,最主要的功能就是⽤来表达系统的功能性需求或⾏为。

⽤例图是由软件需求分析到最终实现的第⼀步,它描述⼈们如何使⽤⼀个系统,是尾部参与者所能观察到的系统功能模型图,该图呈现了⼀些参与者和⼀些⽤例,以及它们之间的关系,主要⽤于对系统、⼦系统或类的功能⾏为进⾏建模,⽤画图的⽅法来完成。

⽤例图展⽰了⽤例之间以及⽤例与参与者之间是怎样相互联系的。

⽤例图包含留个元素:参与者、⽤例、关联关系、包含关系、扩展关系、泛化关系。

参与者(Actor):系统外部的⼀个实体,参与⽤例执⾏过程,通过向系统输⼊或请求系统输⼊某些事件来触发系统的执⾏。

参与者的种类概括为三种:系统⽤户、与所建造的系统交互的其他系统以及⼀些可以运⾏的进程。

注意:参与者表⽰⼈和事物与系统发⽣交互时所扮演的⾓⾊,⽽不是特定的⼈或特定的事物;每个参与者需要⼀个具有业务⼀样的名字;⼀个⼈或事物在与系统交互时,可以同时或不同时扮演多个⾓⾊。

⽤例(Use Case):⽤例是对⼀个活动者使⽤系统的⼀项功能是所进⾏的交互过程的⼀个⽂字描述序列,是系统、⼦系统或类和尾部参与者交互动作序列的说明,包括可选的动作徐磊嗯哼会出现异常的动作序列。

⽤例是岱庙系统各种各个项⽬相关⼈员之间就系统的⾏为所达成的契约,软件开发过程是⽤例驱动的。

⽤例粒度(规模⼤⼩)。

关联关系(Association):表⽰参与者⽤例之间进⾏通信包含关系(Include):客户⽤例可以简单地包含提供者⽤例具有的⾏为,并把他所包含的⽤例⾏为作为⾃⾝⾏为的⼀部分。

调⽤⽤例执⾏到包含点,然后执⾏传递给被调⽤⽤例,当被调⽤⽤例完成时,控制在次返回调⽤⽤例。

用例图

用例图
6
用例图的组成——参与者
• 参与者的种类: ① 系统用户(人) ② 与所建造的系统交互的其他系统 ③ 一些可以运行的进程 参与者的特征: ① 位于系统边界之外; ② 对系统有着明确的期望和明确的回报要求; ③ 参与者的期望和回报要求在系统边界之内;
7
用例图的组成——参与者的确定
• • • • • 系统开发出来以后,使用系统主要功能的是谁? 谁需要借助系统来完成日常工作? 系统需要从那些人或其他系统获得数据? 系统会为哪些人或其他系统提供数据? 系统会与哪些其他系统交互?其他系统可以分为 两大类:一类是该系统需要使用的系统,二是启 动该系统的系统,包括计算机系统和计算机中的 其他应用软件。 • 系统由谁来维护和管理,以保证系统处于工作状 态? • 系统控制的硬件设备有哪些? • 谁对本系统产生的结果感兴趣? 8
26
27
18
19
20
扩展关系
• 把新的行为添加到已有的用例中,获得的 新用例,称为扩展用例; • 基础用例提供扩展点以添加新的行为。 • 扩展用例提供插入片段以插入到基础用例 的扩展点上。
21
• 扩展关系和包含关系的区别: ① 扩展关系中,基础用例提供了一个或多个 插入点,扩展用例作为这些插入点提供需 要插入的行为。而包含关系中,插入点只 有一个; ② 基础用例的执行不一定会涉及到扩展用例, 扩展用例只有在满足一定条件才会被执行。 包含关系中基础用例执行后,包含用例一 定会执行; ③ 即使没有扩展用例,基础用例本身也是完 整的,而包含关系中,基础用例在没有包 含用例的情况下是不完整的; 22
参与者之间的关系
• 参与者实质上也是类,所以它拥有和类相同 的关系描述,即参与者与参与者之间的关系 主要是泛化关系。

第2章用例和用例图

第2章用例和用例图

成绩管理
UML用例图组成( UML用例图组成(续) 用例图组成
饮料销售机
UML用例图组成( UML用例图组成(续) 用例图组成
用例与用例的扩展关联用来表示通过对已有用例增加步 用例与用例的扩展关联用来表示通过对已有用例增加步 扩展关联用来表示 骤创建一个新的用例,即对原有的用例进行了扩展。 骤创建一个新的用例 即对原有的用例进行了扩展。扩展只能 即对原有的用例进行了扩展 发生在基用例的序列中的某个具体指定点上。这个点叫做扩 发生在基用例的序列中的某个具体指定点上。 展点.在UML图中,使用带虚线箭头表示,并在线上标有构造 展点 在UML图中,使用带虚线箭头表示, 图中 带虚线箭头表示 如下图所示: 型<<extend>> 。如下图所示:
UML用例图组成( UML用例图组成(续) 用例图组成
包含关联与扩展关联的区别: 包含关联与扩展关联的区别:
存在包含关联的两个用例,在执行基本用例时 一定会执 存在包含关联的两个用例 在执行基本用例时,一定会执 在执行基本用例时 行包含用例;存在扩展关联的两个用例,在执行基本用例时 在执行基本用例时, 行包含用例;存在扩展关联的两个用例 在执行基本用例时 可以执行,也可以不执行扩展部分 可以执行 也可以不执行扩展部分. 也可以不执行扩展部分
UML用例图的作用( UML用例图的作用(续) 用例图的作用
• 用例图的主要作用: 用例图的主要作用:
– 用来描述待开发系统的功能需求和系统使用场景 – 作为开发过程的基础,驱动各阶段的开发工作 作为开发过程的基础, – 用于验证与确认系统需求
画好用例图是由软件需求到最终实现的第一步. 画好用例图是由软件需求到最终实现的第一步.
UML用例图的建模( UML用例图的建模(续) 用例图的建模

第2章用例图

第2章用例图

ReturnBook
Maintenance
用例的泛化
分层泛化
Management System
ReturnBook BorrowBook Maintenance
Maintenance BorrowerInfo
Maintenance BookInfo
2.1.4 用例与参与者的关系 用例与参与者之间的关系(通信)是双向的
2.5.2
确定系统的参与者
首先分析系统所涉及的问题领域和系统运行 的主要任务: ① 分析使用该系统主要功能部分的是哪些人。 ② 谁将需要该系统的支持以完成其工作。 ③ 系统的管理者与维护者。
2.5.2
确定系统的参与者
详细需求列表 系统可以完成学生借书和还书请求 系统允许学生浏览借阅信息 如果学生超期未还,系统生成一个超期罚款信息 图书信息需要维护 学生信息需要维护 图书管理员信息需要维护 系统需要维护
2.4.2 扩展关系
扩展用例的启用机制:扩展点 扩展点:基用例中的一个或多个位置,在该位 置会衡量某个条件以决定是否启用扩展用例 图2-21
泛化、包含与扩展关系的区别
泛化与包含用例属于无条件发生的用例,而扩展属 于有条件发生的用例。 泛化侧重表示子用例间的互斥性、用例间的继承性; 当两个或者多用例在行为,结构和目的方面存在共 性时,就可以使用泛化关系 包含侧重表示被包含用例提供服务的复用性; 扩展侧重表示扩展用例的触发不定性(可选性);
用例图的组成 理解泛化 理解用例之间的关系 对用例进行描述 绘制用例图
3
2.1
用例图的构成
用例图用于定义系统的功能需求,它描述了系统的参与者 与系统提供的用例之间的连接关系。这里的参与者可以人, 也可以另一个系统。用例图仅从参与者使用系统的角度描 述系统中的信息。下图描述了一个学生成绩管理系统的用 例图。

用例和用例图

用例和用例图

技巧 实地观察
访谈
描述
• 直接观察个人工作旳情况,以发觉现存旳实践方式和
问题
• 从个人处搜集特定信息
特定群体 调查
对一组人员进行调查,以便了解工作态度和共同看法
• 问卷调查 搜集详细数据和统计意义上比较主要旳数据
• • 顾客指 导
让最终顾客告诉你,他们是怎样操作系统旳
• 原型制作 模拟一种无法直接测试旳系统
人、外部系统、外部因素等
12
3.2.2 辨认参加者:参加者要点
• 参加者指在系统中所扮演旳角色。即在拟定参加者时,
应主要考虑他旳角色,而不是这个角色旳实例。
• 某些组织中可能有诸多营销人员,但他们均起着同
一种作用,扮演着相同旳角色。
• 一种顾客也能够扮演多…种角色:一种高级营销人员
既能够是贸易经理,也能够是一般旳营销人员。
小一点旳蓝色大理石
5
3.2.1 获取原始需求:如此脆弱
客户/顾客旳要 求/想法/期望
验收
分析和设计
没价值旳 软件需求
补文档
软件产品 编码和测试
软件设计
6
3.2.1 获取原始需求:也需要开发
客户/顾客旳要 求/想法/期望
软件产品
开发
验收
编码和测试
有价值旳 软件需求
分析和设计
软件设计
7
3.2.1 获取原始需求:技巧
第三章 用例和用例图
1
3.1 概述
• 用例图着重从系统外部执行者旳角度来描述系统需要提
供哪些功能,执行者能够是人或外部系统。
2
3.1 概述
用例图旳构成元素
• 图中旳元素涉及:参加者、用例、某些表达关系旳连接

用例图(User Case)

用例图(User Case)

用例图(User Case)用例图是用来描述什么角色通过某某系统能做什么事情的图,用例图关系的是系统的外在表现,系统与人的交互,系统与其它系统的交互。

下面逐一说明用例图中各种符号的意义:小人:对使用某系统的用户进行分类后,可以总结出使用本系统有哪些角色,不同的角色的工作责任不太一样,他们需要用到的系统的功能也会不太一样。

小人就是角色,它给了我们一个启示,我们思考某系统的需求时,可从不同角色的角度来思考。

例如:我们要做一个考勤系统,你会怎样思考呢?会一下子列出很多功能?比较好的方式,应该是先思考什么人会用这个系统,我们大概可以估计一般员工、高层领导、前台、财务等都会用这个系统,对于一般员工来说除了打卡,他还关注什么?对于前台,她是不是要做一些考勤的统计?而财务是不是要根据考勤情况来调整员工的薪金?这样的思考方式,会让我们更容易全面发掘系统的需求。

还需要特别说明的是:角色可能是人,也可能不是人,而是另外的一个系统,本系统与另外一个系统交互的话,可以将另外一个系统画成某某角色。

圈圈:圈圈里面会有一段动宾结构的文字,也就是“动词+名词”这样的方式,这个圈圈+圈圈里面的文字,就是用例,这些用例表明了系统能做什么事情。

以考勤系统为例:有两个用例叫“打卡”、“查看自己的考勤情况”,这个两个圈圈分别用一条线连到了“一般员工”这个角色,我们可以按这样的顺序来读这个图:先读出角色的名字,然后读出用例中的文字。

按着这样的读法,我们可以得到两句完整的句子:“一般员工打卡”“一般员工查看自己的考勤情况”大家可以用这样的方式来检查自己用例图是否画得合适。

某用例不一定是只属于某个角色的,有不少用例是多个角色“共享”的。

大框框:在所有用例的外面,有一个方框,这个方框只框住了用例,没有框住角色,这个东西就叫做系统边界,框框的上部会注明本系统的名字。

我们所做的系统,是不可能包括角色的,系统要发挥各种作用,要靠各角色“穿越”系统边界来使用本系统的用例。

《软件工程》第3章用例图及其应用

《软件工程》第3章用例图及其应用
用例与参与者之间存在关联关系,表示参与者可以参与用例的执行。这种关系有助于明确系统的边界和 交互方式。
用例图在软件开发中重要性
1
用例图是软件开发过程中的重要工具之一,它能 够帮助开发团队更好地理解用户需求,明确系统 的功能范围。
2
通过用例图,开发团队可以对系统的交互方式进 行模拟和验证,从而发现潜在的问题和缺陷,提 高软件的质量。
用例图的更新可以及时地反映到自 动化测试脚本中,保证测试脚本的 实时性和准确性。
评估测试覆盖率
用例图可以帮助测试人员评 估测试的覆盖率,确保所有 重要的功能和业务流程都被
测试到。
通过对比用例图和已执行的 测试用例,可以找出未被测 试到的功能和业务流程,从
而完善测试计划。
测试覆盖率的评估有助于提 高测试的质量和效率,降低 漏测的风险。
02
针对每个测试场景,细化出具体的测试用例,包括输
入数据、预期结果和测试步骤。
03
用例图可以帮助测试人员更好地理解系统需求,从而
设计出更全面的测试用例。
指导自动化测试脚本编写
用例图提供了系统的功能框架和业务流 程,为自动化测试脚本的编写提供了指 导。
测试人员可以根据用例图中的元素和关系, 编写出对应的自动化测试脚本。
验证设计满足原始需求
01 用例图是需求分析和设计阶段源自重要产物,它描 述了用户期望的系统功能和行为。
02 在系统设计完成后,可以通过与原始用例图进行 对比,验证设计是否满足原始需求。
03 如果设计不符合原始需求,则需要重新调整设计, 直到满足所有需求为止。
评估系统可扩展性和可维护性
用例图可以帮助评估系统的可扩展性和可维护性。
扩展关系
02
03

第2章 用例图

第2章 用例图

构建用例图的过程
步骤 2. 确定参与者及其目标
寻呼台系统。用户如果预订了天气预报,系统每天 定时给他发送天气消息;如果当天气温高于35度, 还要提醒用户注意防暑。 这个叙述里,谁是寻呼台系统的Actor?用户?气温? 还是时间? 回答:时间,或者是一个外部消息发送系统;时间 启动该用例功能,温度是启动之后的一个条件, 所以温度不应算为一个参与者。

用例的必要性
有助于理解系统需求 有助于正确设计系统功能 有助于正确建立需求与功能间的关系
构建用例图
问题详述
系统边界框
用例
用例
参与者
开发典型用例
用例之间的关系
用例之间的关系是可以结构化的。以下是三 种常见的用例关系 包含关系 扩展关系 泛化关系 对于简单的应用,独立用例就足够了。但是, 对于大型应用,组织用例的结构是会有帮助的。 复杂的用例可以用包含、扩展和泛化关系自小 型用例的基础之上构建起来。
修改历史记录* 关于用例的修改时间、原因和修改人信息等
问题*
决策* 频率*
与此用例开发相关的问题列表
关键决策列表 参与者访问该用例的频率
构建用例图的过程
步骤 1. 识别系统边界 步骤 2. 确定参与者及其目标 步骤 3. 确定用例 步骤 4. 确定参与者和用例之间的关系 用例模型的一些准则,书P108 每个用例必须给用户提供价值 用例的描述是非形式化的,但用例的关系 可以形式化
用例图的元素

参与者
一个参与者也可以由多个人来担任
这是错的
这是对的
用例图的元素

参与者
•我们建立的是
系统模型,而非 业务模型,所以 要站在系统的角 度对业务对象进 行有效的分类

02 UML用例图基础知识

02 UML用例图基础知识

表示符号
表示参与者与用例之间的通信,任何一方都可发送 或接收消息。
uc 继承关系,子用例将继承基用例 的所有行为、关系和通信关系,也就是说在任何使 用基用例的地方都可以用子用例来代替。
泛化关系在用例图中使用空心的箭头表示,箭头方 向从子用例指向基用例。 uc Use Case Model
参与者总是处在正在建模的系统的外部,不是系统
的组成部分,是与系统、子系统或类发生交互的外 部用户、进程或其他系统。
参与者有3大类,即系统用户、与本系统交互的其 他系统和一些可以运行的进程。
名称
说明

即用户,是最常用的参与者。例如,汽车租赁公司的汽车租赁者,即客
户。
其他的系统
在当前的项目范围外,建立与其他系统的接口。该类位于程序边界之外
注:任何用例都不能在缺少参与者的情况下独立存在。同样,任何参与者也必须要有与之关联的
用例。
2)用例图形表示
在UML中,用例使用一个椭圆来表示,用例的名称写在椭圆里,如 下图所示:
3)用例命名
用例是从用户的角度来描绘系统的功能,是根据所执行的实例来命名 的,通常情况下,用例名是一个短语,例如浏览帐户、登陆系统等。 命名的基本原则有以下几种:
一、什么是用例图(Use Case Diagram) 二、用例图的组成 三、用例建模技术
用例图也称为用户模型图,是由软件需求分析到最终实现的第1步, 它是从用户的角度来描述系统功能,描述人们希望如何使用一个系统。 用例图显示谁将是相关的用户、用户希望系统提供什么服务,以及用 户需要为系统提供的服务。
线上标注<u<c Usee CaxsetMoedenl d>>),箭头从子用例指向基用
例。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用例图
简介
用例图定义:由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。

用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。

用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。

用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。

将每个系统中的用户分出工作状态的属性和工作内容,方便建模,防止功能重复和多余的类。

用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。

构成
用例图由参与者
参与者
(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。

用例
用例
用例
是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。

这是UML对用例的正式定义,对我们初学者可能有点难懂。

我们可以这样去理解,用例是参与者想要系统做的事情。

对于对用例的命名,我们可以给用例取一个简单、描述性的名称,一般为带有动作性的词。

用例在画图中用椭圆来表示,椭圆下面附上用例的名称。

系统边界
系统边界是用来表示正在建模系统的边界。

边界内表示系统的组成部分,边界外表示系统外部。

系统边界在画图中方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。

因为系统边界的作用有时候不是很明显,所以我个人理解,在画图时可省略。

用例图
USE CASE图
主要的作用有三个:(1)获取需求;(2)指导测试;(3)还可在整个过程中的其它工作流起到指导作用。

元素之间的关系用例图中包含的元素除了系统边界、角色和用例,另外就是关系。

关系包括用例之间的关系,角色之间的关系,用例和角色之间的关系。

角色之间的关系
角色之间的关系。

由于角色实质上也是类,所以它拥有与类相同的关系描述,即角色之间存在泛化关系,泛化关系的含义是把某些角色的共同行为提取出来表示为通
用的行为。

用例之间的关系:
包含关系:基
USE CASE图
本用例的行为包含了另一个用例的行为。

基本用例描述在多个用例中都有的公共行为。

包含关系本质上是比较特殊的依赖关系。

它比一般的依赖关系多了一些语义。

在包含关系中箭头的方向是从基本用例到包含用例。

在UML1.1中用例之间是使用和扩展这两种关系,这两种关系都是泛化关系的版型。

在UML1.3以后的版本中用例之间是包含和扩展这两种关系。

泛化关系:代表一般于特殊的关系。

它的意思和面向对象程序设计中的继承的概念是类似的。

不同的是继承使用在实施阶段,泛化使用在分析、设计阶段。

在泛化关系中子用例继承了父用例的行为和含义,子用例也可以增加新的行为和含义或者覆盖父用例中的行为和含义。

扩展关系的基本含义和泛化关系类似,但在扩展
USE CASE图
关系中,对于扩展用例有更多的规则限制,基本用例必须声明扩展点,而扩展用例只能在扩展点上增加新的行为和含义。

与包含关系一样,扩展关系也是依赖关系的版型。

在扩展关系中,箭头的方向是从扩展用例到基本用例,这与包含关系是不同的。

用例的泛化、包含、扩展关系的比较。

一般来说可以使用“is a”和“has a”来判断使用那种关系。

泛化和扩展关系表示用例之间是“is a”关系,包含关系表示用例之间是“has a”关系。

扩展与泛化相比多了扩展点,扩展用例只能在基本用例的扩展点上进行扩展。

在扩展关系中基本用例是独立存在。

在包含关系中在执行基本用例的时候一定会执行包含用例。

如果需要重复处理两个或多个用例时可以考虑使用包含关系,实现一个基本用例对另一个的引用。

当处理正常行为的变形是偶尔描述时可以考虑只用泛化关系。

当描述正常行为的变形希望采用更多的控制方式时,可以
USE CASE图
在基本用例中设置扩展点,使用扩展关系。

扩展关系比较难理解,如果把扩展关系看作是带有更多规则限制的泛化关系,可以帮助理解。

通常先获得基本用例,针对这个用例中的每一个行为提问:该步骤会出什么差错?该步骤有不同的情况吗?该步骤的工作怎样以不同的方式进行等,把所有的变化情况都标识为扩展。

通常基本用例很容易构造,而扩展用例需要反复分析、验证。

当我们发现已经存在的两个用例间具有某种相似性时,可以把相似的部分从两个用例中抽象出来单独作为一个用例,该用例被这两个用例同时使用,这个抽象出的用例和另外两个用例形成包含关系。

用例之间的关系举例
包含:业务中,总是存在着维护某某信息的功能,如果将它作为一个用例,那新建、编辑以及修改都要在用例详述中描述,过于复杂;如果分成新建用例、编辑用例和删除用例,则划分太细。

这时包含关系可以用来理清关系。

扩展:系统中允许用户对查询的结果进行导出、打印。

对于查询而言,能不能导出、打印查询都是一样的,导出、打印是不可见的。

导入、打印和查询相对独立,而且为查询添加了新行为。

泛化:子用例将继承父用例的所有结构、行为和关系。

子用例可以使用父用例的一段行为,也可以重载它。

父用例通常是抽象的。

相关文档
最新文档