用例图含义及画法

合集下载

如何绘制用例图

如何绘制用例图

需求中如何画用例图UML用例图用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的调用关系,用例图包含了用例和参与者,用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解。

用例是从系统外部可见的行为,是系统为某一个或几个参与者(Actor)提供的一段完整的服务。

从原则上来讲,用例之间都是独立、并列的,它们之间并不存在着包含从属关系。

但是为了体现一些用例之间的业务关系,提高可维护性和一致性,用例之间可以抽象出包含(include)、扩展(extend)和泛(generalization)几种关系。

共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。

1、包含(include)包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。

基用例控制与包含用例的关系,以及被包含用例的事件流是否会插入到基用例的事件流中。

基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。

包含关系对典型的应用就是复用,也就是定义中说的情景。

但是有时当某用例的事件流过于复杂时,为了简化用例的描述,我们也可以把某一段事件流抽象成为一个被包含的用例;相反,用例划分太细时,也可以抽象出一个基用例,来包含这些细颗粒的用例。

这种情况类似于在过程设计语言中,将程序的某一段算法封装成一个子过程,然后再从主程序中调用这一子过程。

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

用例图的画法及含义

用例图的画法及含义

⽤例图的画法及含义⽤例图中涉及的关系有:关联、泛化、包含、扩展。

如下表所⽰:a. 关联(Association)表⽰参与者与⽤例之间的通信,任何⼀⽅都可发送或接受消息。

【箭头指向】:指向消息接收⽅b. 泛化(Inheritance)就是通常理解的继承关系,⼦⽤例和⽗⽤例相似,但表现出更特别的⾏为;⼦⽤例将继承⽗⽤例的所有结构、⾏为和关系。

⼦⽤例可以使⽤⽗⽤例的⼀段⾏为,也可以重载它。

⽗⽤例通常是抽象的。

【箭头指向】:指向⽗⽤例c. 包含(Include)包含关系⽤来把⼀个较复杂⽤例所表⽰的功能分解成较⼩的步骤。

【箭头指向】:指向分解出来的功能⽤例d. 扩展(Extend)扩展关系是指⽤例功能的延伸,相当于为基础⽤例提供⼀个附加功能。

【箭头指向】:指向基础⽤例e. 依赖(Dependency)以上4种关系,是UML定义的标准关系。

但VS2010的⽤例模型图中,添加了依赖关系,⽤带箭头的虚线表⽰,表⽰源⽤例依赖于⽬标⽤例。

【箭头指向】:指向被依赖项5. 项⽬(Artifact)⽤例图虽然是⽤来帮助⼈们形象地理解功能需求,但却没多少⼈能够通看懂它。

很多时候跟⽤户交流甚⾄⽤Excel都⽐⽤例图强,VS2010中引⼊了“项⽬”这样⼀个元素,以便让开发⼈员能够在⽤例图中链接⼀个普通⽂档。

⽤依赖关系把某个⽤例依赖到项⽬上:然后把项⽬-》属性的Hyperlink设置到你的⽂档上;这样当你在⽤例图上双击项⽬时,就会打开相关联的⽂档。

6. 注释(Comment)包含(include)、扩展(extend)、泛化(Inheritance) 的区别:条件性:泛化中的⼦⽤例和include中的被包含的⽤例会⽆条件发⽣,⽽extend中的延伸⽤例的发⽣是有条件的;直接性:泛化中的⼦⽤例和extend中的延伸⽤例为参与者提供直接服务,⽽include中被包含的⽤例为参与者提供间接服务。

对extend⽽⾔,延伸⽤例并不包含基础⽤例的内容,基础⽤例也不包含延伸⽤例的内容。

用例图

用例图

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UML用例图的基本概念

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

第五章_用例图

第五章_用例图
统进行交互的人、系统、子系统或类的外部实体 的抽象。 ❖ 每个参与者可以参与一个或多个用例,每个用例 也可以有一个或多个参与者。 ❖ 在用例图中使用一个人形图标来表示参与者,参 与者的名字写在人形图标下面。
5.2.1 参与者
❖ 参与者有三大类:
第一类参与者是真实的人,即用户,是最常见的 参与者,几乎存在于每一个系统中。
用例执行期间可能发生的各种情况。 用例是一个完整的描述。若其被分解成多个小用
例,则仅当所有的小用例完成后才代表整个用例的 完成。
2. 用例的识别
❖ 任何用例都不能在缺少参与者的情况下独立存在。 同样,任何参与者也必须要有与之关联的用例。 所以识别用例的最好方法就是从分析系统参与者 开始,在这个过程中往往会发现新的参与者。
❖ 用例图只是从总体上大致描述了系统所提供的各 种服务,让用户对系统有一个总体的认识。
❖ 对于每一个用例,我们还需要有详细的描述信息, 以便让别人对于整个系统有一个更加详细的了解, 这些信息包含在用例规约之中。
3. 用例规约
❖ 每一个用例的用例规约都应该包含以下内容: (1)简要说明:对用例作用和目的的简要描述。 (2)事件流:事件流包括基本流和备选流。基本流 描述的是用例的基本流程,是指用例“正常”运 行时的场景。备选流描述的是用例执行过程中可 能发生的异常和偶尔发生的情况。
第二类参与者是其他的系统。这类位于程序边界 之外的系统也是参与者。
第三类参与者是一些可以运行的进程。如时间, 当经过一定的时间触发系统中的某个事件时,时间 就成了参与者。
5.2.1 参与者
❖ 参与者虽然代表人或事物,但参与者不是指人或 事物本身,而是表示人或事物当时所扮演的角色。
❖ 一个用例的参与者可以划分为发起参与者和参加 参与者。发起参与者发起了用例的执行过程,一 个用例只有一个发起参与者,但可以有若干个参 加参与者。

需求中如何画用例图

需求中如何画用例图

需求中如何画用例图UML用例图用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的调用关系,用例图包含了用例和参与者,用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解。

用例是从系统外部可见的行为,是系统为某一个或几个参与者(Actor)提供的一段完整的服务。

从原则上来讲,用例之间都是独立、并列的,它们之间并不存在着包含从属关系。

但是为了体现一些用例之间的业务关系,提高可维护性和一致性,用例之间可以抽象出包含(include)、扩展(extend)和泛(generalization)几种关系。

共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。

1、包含(include)包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。

基用例控制与包含用例的关系,以及被包含用例的事件流是否会插入到基用例的事件流中。

基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。

包含关系对典型的应用就是复用,也就是定义中说的情景。

但是有时当某用例的事件流过于复杂时,为了简化用例的描述,我们也可以把某一段事件流抽象成为一个被包含的用例;相反,用例划分太细时,也可以抽象出一个基用例,来包含这些细颗粒的用例。

这种情况类似于在过程设计语言中,将程序的某一段算法封装成一个子过程,然后再从主程序中调用这一子过程。

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

第三讲用例图

第三讲用例图

3.3 用例图的概念
• 1. 用例图
• 用例图是描述用例、参与 者及其关系的图。与所有 UML的其它图一样,用例 图可以包括注释、约束。 图3-1是棋牌管理系统对应 的用例图。 • 图中的元素包括:参与者、 用例、一个方框和一些表 示关系的连接线,所有的 用例都位于方框之内,该 方框称为“系统边界”。 方框内是棋牌管理系统的 多个用例,方框外是外部 参与者。
第3章 用例图
目录
3.1 需求技术
3.2 RUP开发过程
3.3 用例图的概念 3.4 用例图的表示 3.5 参与者之间的关系
目录
3.6 用例之间的关系
3.7 参与者与用例之间的关系
3.8 阅读用例图 3.9 用例图应用 3.10 建模要点
第3章 用例图
• 用例图是外部参与者所能观察到的系统功能的模型图,该 图呈现了一些参与者和一些用例,以及它们之间的关系, 主要用于对系统、子系统或类的功能行为进行建模。
3.3.2 标识用例间的关系
• 2.包含关系 • 在UML中,包含关系用构造型《include》表示,它是指基用例(base use case)在它内部的某一个位置上显式地合并了另一个用例的行为。 • (1) 包含用例的表示 • 包含是指一个用例被另一个用例使用,被使用的用例就是包含用例, 使用包含用例的是基用例。 • 图3-7说明:查询、提款、转帐三个是基用例,它们都包含打印回执用 例.基用例执行时必须执行包含用例,否则,基用例是不完整的,包 含用例不是孤立存在的,它仅作为基用例的一部分出现.图中,包含 关系的箭头是从基用例指向包含用例. • 只有当某个事件流片断在多个用例中出现时,才将这个事件流片段抽 取出来,放在一个单独的用例中,把这个用例用作包含用例。

需求调研必备工具UML-用例图介绍

需求调研必备工具UML-用例图介绍
用例
用例是对包括变量在内的一组动作序列的描述。 系统执行这些动作,并产生传递特定参与者的价值的可观察结果。 简单的说,用例是参与者想要系统做的事情。
4
第一章 用例图的定义
系统边界(子系统)
系统边界是用来表示正在建模系统的边界。 边界内表示系统的组成部分,边界外表示系统外部。 系统边界在画图时也可以省略。
这个事物是什么? 这个事物能做什么? 人们能用这个事物做什么?
如何描述自行车?
一种交通工具,它由传动系统、 刹车系统等部分组成。
可以骑行、可以载物。 人们可以用脚蹬踏板前进,也
用手捏刹车使自行车停下来。
8
第二章 用例图和功能的误区
结构性观点
功能性观点
• 即事物的客观存在。 • 不能够说明事物的作用,也就
16
第四章 用例图的绘制
4、扩展(Extend) • 扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。 • 将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的
扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中。 • 扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前
12
第三章 系统用例和业务用例
业务用例和系统用例是分别站在客户的业务视角和系统建设视角来规划的。 业务用例不是接近,而是完全的直接需求,系统用例也不是业务逻辑的详细划分,而
是系统对需求的实现方式,但不是与程序设计无关,它只是说,要建设的系统功能性 需求由这些系统用例构成。
业务用例和系统用例都是需求范畴,它们分别代表了业务范围和系统范围。 在业务层面,点菜人员只需要点菜,或者是取消点菜,但是在需求用例中需要体现增

UML中的用例(Use Case)概念分析及实例

UML中的用例(Use Case)概念分析及实例

UML中的用例(Use Case)概念分析及实例文/登峰2005-02-25在UML中use case似乎最簡單的,用例建模的最主要功能就是用来表达系统的功能性需求或行为,依我的理解用例建模可分为用例图和用例描述。

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

用例描述用来详细描述用例图中每个用例,用文本文档来完成,以及由箭头所组成的各种关系,包括泛化,包含,扩展等。

本文准备向大家介绍以下内容,所有图示均用PowerDesigner所画.◆用况◆参与者◆泛化◆<<use>>◆<<include>>◆<<extend>>◆用例描述1.用况(use case)图1用况图是对一组动作序列(其中包括它的变体)的描述,系统执行该动作为执行此动作的参与者产生一个可观察的结果值。

比如你使用计算器,这里可以把计算器看作为用况,参与者是登峰,登峰按了3+3(用况执行的序列),计算机器返回一个结果6。

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

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

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

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

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

3.泛化泛化和类中的泛化概念是一样的,子用况继承父用况的行为和含义,还可以增加或覆盖父用况的行为;子用况可以出现在任何父用况出现的位置(父和子均有具体的实例)。

下面给出两种图示来说明泛化的概念和含义图2含义继承图3行为继承4.<<user>><<use>>: 其关系非常象一个函数调用或一个子过程以这种方式使用的用例称为抽象用例因为它不能单独存在而必须被其它用例使用,请看下图图4使用<<use>>示例5.<<include>>怎么解释这个定义呢?还是说明一下它的功能吧,<<include>>可以把几个用例的公共步骤分离出来成为一个单独的被包含用例。

2.用例图

2.用例图
2.用例图
概述
用例图(Use Case Diagram)展示了用例之间以及同用例参与者之间是怎样相互联系的。
用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。
用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
主要作用:在“需求分析”阶段,描述系统提供什么功能,,给什么用户使用。
组成
包含6大元素:
参与者(actor)、用例(user case)、关联关系(association)、包含关系(include)、扩展关系(extend)以及泛化关系(generalization)。
还有,包(package)、系统边界(System boundary)、
以StarUM系统或类发生交互的外部用户、进程或其他系统。参与者可以是人、另一个计算机系统或一些可运行的进程。
用例(user case)
是参与者想要系统做的事情。
关系
关系包括用例之间的关系,角色之间的关系,用例和角色之间的关系。
关联关系(Association)
另外一点需要提及的是:泛化中的子用例和扩展中的扩展用例均可以作为基本用例事件的备选择流而存在。
学习网址:
/oobject/Oobject-usecase.asp
描述:租书(用例)包含计算租金(用例),也可理解为"HAS A"的关系。
扩展关系(Extend)
扩展关系是把新的行为插入到已有用例中的方法。
同一个基础用例可以有几个扩展点,每个扩展点也可以出现多次。但是一般情况下,基础用例的执行不会涉及到扩展用例,只有特定的条件发生,扩展用例才被执行。扩展关系为处理异常或构建灵活的系统框架提供了一种方法。

软件工程课件之第4章用例和用例图

软件工程课件之第4章用例和用例图

4.2.3 泛化关系
借阅者
.9 泛化关系
4.2.4 分组关系
在一些用例图中,用例的数目可能很多,这时就需要把 这些用例组织起来。这种情况在一个系统包含很多子系 统时就会出现。另一种可能就是,当你按顺序和用户会 谈,收集系统需求时,每个需求必须用一个单独的用例 来表达,这时就需要某种方式来对这些需求进行分类。
4.1.1 参与者
例如,在“图书管理系统”中,可以认为“读者”是 “学生读者”和“教师读者”的泛化,而“学生读者” 还可以具体化为“本科生读者”和“研究生读者”;同 样,“图书管理员”也是“采购员”、“ 编目员”及 “借阅人员”的泛化。图4.3表示出了参与者之间的泛 化关系。
4.1.1 参与者
“<<extend>>”是扩展关系的构造型,箭头指向基本用例。
4.2.2 扩展关系
借阅者
<<include>>
还书
<<extend>>
查询图书 交罚款
图4.8 扩展关系
区别与联系:
联系:都是从现有的用例中抽取出公共的那部分信息
,作为一个单独的用例,然后通过不同的方法来重用这 个公共的用例,以减少模型维护的工作量。
因此,在“图书管理系统”中“借阅者”和“系统管理 员”都是参与者。
4.1.1 参与者
【例4-1】客户给销售员发来传真订货, 销售员下班前 将当日订货单汇总输入系统。谁是系统的参与者?
分析:根据参与者的定义可知,此系统的参与者是销售 员。
4.1.1 参与者
【例4-2】在需求分析中常见的权限控制问题,一般的 用户只可以使用一些常规的操作,如查询等,而管理员 除了常规操作之外还需要进行一些系统管理工作,如一 些关键数据的增加、删除、修改等,操作员既可以进行 常规操作又可以进行一些配置操作。

UML用例图详解

UML用例图详解

二.用例建模简介用例建模是UML建模的一部分,它也是UML里最基础的部分。

用例建模的最主要功能就是用来表达系统的功能性需求或行为。

依我的理解用例建模可分为用例图和用例描述。

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

用例描述用来详细描述用例图中每个用例,用文本文档来完成。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。

箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。

2.用例描述用例图只是简单地用图描述了一下系统,但对于每个用例,我们还需要有详细的说明,这样就可以让别人对这个系统有一个更加详细的了解,这时我们就需要写用例描述。

图描述之:用例图总结

图描述之:用例图总结

图描述之:⽤例图总结
⼀、什么是⽤例图
第⼀次见到⽤例图印象最深的就是那个⽤户⼩⼈,因为在之前,从来没有见过哪个图描述中会出现这样的图元。

能够得到的⽐较官⽅的描述是:由参与者,⽤例,以及他们之间的关系构成的⽤于描述系统功能的视图。

⽽那个⼩⼈正是作为参与者的⾝份出现在⽤例图当中。

⼆、能描述什么
从构成⽤例图的图元种类来看,这⾥有四种图元,分别是:参与者,⽤例,系统边界,箭头
参与者:不仅局限于⼈,也可以是实物,只要是存在于系统之外但⼜使⽤到了系统的功能的事物均可。

⽤例:⽤例⼆字我觉得在这⾥描述的并不是⼀个实际的物体,⽽是⼀些实际的动作的集合,来作为各个⽤例
系统边界:⽤来划分系统的内部和外部,但是多被省略,画图中也很少体现出来
箭头:⽤来表现⼀系列调⽤关系
三、我画过的⽤例图
在这张图中,⽤例之间的关系包括了《include》,《extend》即包含和扩展。

由于系统⽐较简单,所以在⽤例图中没有泛化的关系。

用例图

用例图
6
用例图的组成——参与者
• 参与者的种类: ① 系统用户(人) ② 与所建造的系统交互的其他系统 ③ 一些可以运行的进程 参与者的特征: ① 位于系统边界之外; ② 对系统有着明确的期望和明确的回报要求; ③ 参与者的期望和回报要求在系统边界之内;
7
用例图的组成——参与者的确定
• • • • • 系统开发出来以后,使用系统主要功能的是谁? 谁需要借助系统来完成日常工作? 系统需要从那些人或其他系统获得数据? 系统会为哪些人或其他系统提供数据? 系统会与哪些其他系统交互?其他系统可以分为 两大类:一类是该系统需要使用的系统,二是启 动该系统的系统,包括计算机系统和计算机中的 其他应用软件。 • 系统由谁来维护和管理,以保证系统处于工作状 态? • 系统控制的硬件设备有哪些? • 谁对本系统产生的结果感兴趣? 8
26
27
18
19
20
扩展关系
• 把新的行为添加到已有的用例中,获得的 新用例,称为扩展用例; • 基础用例提供扩展点以添加新的行为。 • 扩展用例提供插入片段以插入到基础用例 的扩展点上。
21
• 扩展关系和包含关系的区别: ① 扩展关系中,基础用例提供了一个或多个 插入点,扩展用例作为这些插入点提供需 要插入的行为。而包含关系中,插入点只 有一个; ② 基础用例的执行不一定会涉及到扩展用例, 扩展用例只有在满足一定条件才会被执行。 包含关系中基础用例执行后,包含用例一 定会执行; ③ 即使没有扩展用例,基础用例本身也是完 整的,而包含关系中,基础用例在没有包 含用例的情况下是不完整的; 22
参与者之间的关系
• 参与者实质上也是类,所以它拥有和类相同 的关系描述,即参与者与参与者之间的关系 主要是泛化关系。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

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

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

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

而交互部分被称作用例。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这类位于程序边界之外的系统也是参与者。

第三了参与者是一些可以运行的进程,如时间。

当经过一定的时间触发系统中的某个事件时,时间就成了参与者。

2.确定参与者在获取用例前首先要确定系统的参与者,开发人员可以通过回答以下的问题来寻找系统的参与者。

(1)谁将使用该系统的主要功能。

(2)谁将需要该系统的支持以完成其工作。

(3)谁将需要维护、管理该系统,以及保持该系统处于工作状态。

(4)系统需要处理哪些硬件设备。

(5)与该系统那个交互的是什么系统。

(6)谁或什么系统对本系统产生的结果感兴趣。

在对参与者建模的过程中,开发人员必须要牢记以下几点。

(1)参与者对于系统而言总是外部的,因此它们可以处于人的控制之外。

(2)参与者可以直接或间接的与系统交互,或使用系统提供的服务以完成某件事务。

(3)参与者表示人和事物与系统发生交户时所扮演的角色,而不是特定的人或者特定的事物。

(4)每个参与者需要一个具有业务一样的名字,在建模中不推荐使用类似“新参与者”的名字。

(5)每一个参与者要必须有简短的描述,从业务角度描述参与者是什么。

(6)一个人或事物在与系统发生交互时,可以同时或不同时扮演多个角色。

(7)和类一样,参与者可以具有表示参与者的属性和可以接受的事件,但使用的不频繁。

3.参与者之间的关系因为参与者是类,所以多个参与者之间可以具有与类相同的关系。

在用例视图中,使用了泛化关系来描述多个参与者之间的公共行为。

如果系统中存在几个参与者,它们既扮演自身的角色,同时也扮演更具一般化的角色,那么就用泛化关系来描述它们。

这种情况往往发生在一般角色的行为在参与者超类中描述的场合。

特殊化的参与者继承了该超类的行为,然后在某些方面扩展了此行为。

参与者之间的泛化关系用一个三角箭头来表示,指向扮演一般角色的超类。

这与UML中类之间的返还关系符号相同。

二用例(Use Case)1.用例的概念用例是外部可见的系统功能单元,这些系统功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。

用例的用途是,在不揭示系统内部构造的前提下定义连贯的行为。

用例的定义包含它所必须的所有行为——执行用例的主线次序、标准行为的不同变形、一般行为下的所有异常情况及其预期反应。

从用户的角度来看,上述情况很可能是异常情况;从系统的角度来看,它们是必须被描述和处理的附加情况。

更确切地说,用例不是需求或功能的规格说明,但是也展示和体现其所描述的过程中的需求情况。

在UML中,用例用一个椭圆表示。

在模型中,每个用例的执行都独立与其它用例,尽管在执行一个用例时由于用例之间共享对象的原因可能会在用例之间产生隐含的依赖关系。

每个用例都表示一个纵向的功能块,这个功能块的执行会和其它用例的执行混合在一起。

用例的动态执行过程可以用UML的交互来说明,可用用状态图、时序图、协作图或非正式的文字描述来表示。

用例功能的执行通过系统中类之间的协作来实现。

一个类可以参与多个协作,因此也参与了多个用例。

在系统层,用例表示整个系统对外部用户可见的行为。

一个用例就像外部用户可以使用的系统操作。

但是,它不又与操作不同,用例可以在执行过程中持续接受参与者的输入消息。

用例也可以被像子系统和独立类这样的系统小单元所应用。

一个内部用例表示了系统的一部分对其它部分呈现出的行为。

例如,某个类的用例表示了一个连贯的功能块,这个功能块是该类提供给系统内其它有特定作用的类的。

一个类可以有多个用例。

2.识别用例用例图对整个系统建模过程非常重要,在绘制系统用例图前,还有许多工作要做。

系统分析者必须分析系统的参与者和用例,他们分别描述了“谁来做”和“做什么”这两个问题。

识别用例最好的方法就是从分析系统的参与者开始,考虑每一个参与者是如何使用系统的。

使用这种策略的过程中可能会发现新的参与者,这对完善整个系统的建模有很大的帮助。

用例建模的过程是一个迭代和逐步精华的过程,系统分析者首先从用例的名称开始,然后添加用例的细节信息。

这些信息由简短的描述组成,它们被精华成完整的规格说明。

在识别用例的过程中,通过回答以下几个问题,系统分析者可以获得帮助。

(1)特定参与者希望系统提供什么功能。

(2)系统是否存储和检索信息,如果是,由哪个参与者触发。

(3)当系统改变状态时,是否通知参与者。

(4)是否存在影响系统的外部事件。

(5)哪个参与者通知系统这些事件。

3.用例与事件流用例分析处于系统的需求分析阶段,这个阶段应该尽量避免考虑系统实现的细节问题。

但是要实际建立系统,则需要更加具体的细节,这些细节写在事件流文件中。

事件流的目的是为用例的逻辑流程建立文档,这个文档详细描述系统用户的工作和系统本身的工作。

虽说事件流很详细,但其仍然是独立于实现的方法的。

换句话说,事件流描述的是一个系统“做什么”而不是“怎么做”。

事件流通常包括:简要说明、前提条件、主事件流、其它事件流和事后事件流。

(1)简要说明。

每个用例应当有一个相关的说明,描述该用例的作用,说明应当简明扼要,但应包括执行用例的不同类型的用户和通过这个用例要达到的结果。

(2)前提条件。

用例的前提条件列出用例之间必须满足的条件。

例如,前提条件是另一个用例已经执行或用户具有运行当前用例的权限。

但并不是所有用例都有前提条件。

(3)主事件流和其它事件流。

用例的具体细节在主事件流和其它事件流中描述。

事件流是从用户角度描述执行用例的具体步骤,关注系统“做什么”,而不是“怎么做”。

主事件流和其它事件流包括:用例如何开始和结束、用例如何与参与者交互、用例的正常流程(主流程)、用例主事件流(其它事件流)的变体和错误流。

(4)事后条件。

事后条件是用例执行完毕后必须为真的条件。

例如,可以在用例完成之后设置一个标识,这种信息就是事后条件。

与前提条件一样,事后条件可以增加用例次序方面的信息,如果要求一个用例执行完后必须执行另一个用,那么就可以在事后条件中说明这一点。

当然,并不是每个用例中都有事后条件。

三用例间的关系用例除了与参与者发生关系外,还可以具有系统中的多个关系,这些关系包括包含关系、扩展关系和泛化关系。

应用这些关系的目的是为了从系统中抽取出公共行为和其变体。

1.关联关系(Association)关联关系描述参与者与用例之间的关系,它是用于表示类的挂系的关联元类的实例。

在UML中,关联关系用箭头来表示。

关联关系表示参与者与用例之间的通信。

不同的参与者可以访问相同的用例,一般说来它们和该用例的交互是不一样的,如果一样的话,说明它们的角色可能是相同的。

如果两中交互的目的也相同,说明它们的角色是相同的,就可以将它们合并。

2.包含关系(Include)虽然每个用例的实例都是独立的,但是一个用例可以用其它的更简单的用例来描述。

这有点像通过继承父类并增加附加描述来定义一个类。

一个用例可以简单地包含其它用例具有的行为,并把它所包含的用例行为作为自身行为的一部分,这被称作包含关系。

在这种情况下,新用例不是初始用例的一个特殊例子,并且不能被初始用例所代替。

爱UML中,包含关系表示为虚线箭头交<<include>>字样,箭头指向被包含的用例。

包含关系把几个用例的公共步骤分离成一个单独的被包含用例。

被包含用例称作提供者用例,包含用例称作客户用例,提供者用例提供功能给客户使用。

用例间的包含关系允许包含提供者用例的行为到客户用例的事件中。

包含关系使一个用例的功能可以在另一个用例中使用,如下所述。

(1)如果两个以上用例有大量一致的功能,则可以将这个功能分解到另外一个用例中。

其它用例可以和这两个用例建立包含关系。

(2)一个用例的功能太多时,可以用包含关系建模两个小用例。

要使用包含关系,就必须在客户用例中说明提供者用例行为别包含的详细位置。

这一点同功能调用有点类似。

事实上,它们在某种程度上具有相似的语义。

3.扩展关系(Extend)一个用例也可以被定义为基础用例的增量扩展,这被称作扩展关系,扩展关系是把新的行为插入到已有的用例中的方法。

同一个基础用例的几个扩展用例可以在一起应用。

基础用例的扩展增加了原有的语义,此时基础用例而不是扩展用例被作为例子使用。

在UML中,扩展关系表示为虚线箭头加<<extend>>字样,箭头指向被扩展展的用例。

基础用例提供了一组扩展点,在这些新的扩展点中可以添加新的行为,而扩展用例提供了一组插入片片段,这些片段能够被插入到基础用例的扩展点上。

基础用例不必知道扩展用例的任何细节,它仅为其提供扩展点。

事实上,基础用例即使没有扩展用例也是完整的,这点与包含关系有所不同。

一个用例可能有多个扩展点,每个扩展点可以出现多次。

但是一般情况下,基础用例的执行不和涉及到扩展用例,只有特定的条件发生,扩展用例才被执行。

相关文档
最新文档