UML系统用例及用例关系解析

合集下载

UML-6.2-用例-用例模型用例场景关系

UML-6.2-用例-用例模型用例场景关系
网络错误400请刷新页面重试持续报错请尝试更换浏览器或网络环境
UML-6.2-用 -用例模型用例场景关系
参与者:具有某些行为的人或事物。如上一章中的收银员。 |_主要参与者:收银员。 |_协助参与者:程序(自动付费、帮收银员验证输入要素) |_幕后参与者:政府等(电子签章取证找公证机构)
用例:一组相关的成功和失败的场景集合。 场景:用例中的某条执行路径。 用例模型:用例的集合
比如: 用例:退货 场景1:退货成功 场景2:退货失败时怎么办
用例不是面向对象的。但是OOA/D的关键输入。
用例解决的问题是:“谁使用系统?”、“目的是什么?”、“他们使用的典型场景是什么?”

简述uml用例间的关系

简述uml用例间的关系

简述uml用例间的关系UML(Unified Modeling Language)是一种用于软件开发的建模语言,它提供了一种标准的图形化表示方法,用于描述系统的结构、行为和交互。

在UML中,用例图是一种常用的图形化表示方式,用于描述系统的功能需求和用户与系统之间的交互。

用例间的关系是指不同用例之间的相互关联和影响。

在UML中,用例间的关系有以下几种:1. 包含关系(Include):表示一个用例包含另一个用例的功能。

当一个用例需要借用其他用例的功能时,可以使用包含关系来表示。

例如,一个购物车用例可能包含了添加商品、移除商品和结算等子用例。

2. 扩展关系(Extend):表示一个用例可以在特定条件下扩展另一个用例的功能。

当一个用例的某个功能在特定条件下可以被扩展时,可以使用扩展关系来表示。

例如,一个支付用例可以在用户选择使用优惠券时扩展结算用例的功能。

3. 泛化关系(Generalization):表示一个用例是另一个用例的特殊情况或特化。

当一个用例继承了另一个用例的功能,并且在此基础上添加了新的功能时,可以使用泛化关系来表示。

例如,一个在线购物系统中的用户登录和游客购物两个用例可以通过泛化关系来表示,游客购物是用户登录的特殊情况。

4. 关联关系(Association):表示不同用例之间的关联和交互。

当一个用例需要与其他用例进行交互时,可以使用关联关系来表示。

例如,在一个社交网络系统中,用户发布动态和用户评论动态两个用例可以通过关联关系来表示。

5. 依赖关系(Dependency):表示一个用例依赖于另一个用例。

当一个用例的实现依赖于其他用例时,可以使用依赖关系来表示。

例如,在一个在线购物系统中,购物车结算用例依赖于查看购物车用例。

6. 一般化关系(Realization):表示一个用例实现了另一个用例的功能。

当一个用例实现了另一个用例定义的接口和行为时,可以使用一般化关系来表示。

例如,一个在线支付系统可以实现支付用例定义的支付接口和行为。

UML 用例图、关系图、活动图

UML 用例图、关系图、活动图

例如,一个银行系统中,有
一个“验证用户”用例,用 身份认证
于验证用户的合法性,它有
两 个 特 殊 的 子 用 例 , 一 个 是 密码认证
指纹认证
“检查密码”,另一个是
“检查指纹”,它们都有父
用例“验证用户”的行为,
并且可以出现在父用例出现
的任何地方,还可以添加自
己的行为。
用例图实例
• 以前面图书信息管理系统为例,画出用例 图。先找出参与系统地的角色:
• 扩展关系——允许一个用例扩展另一个用
例的功能。例如,在图书信息管理系统中,
读者还书时,系统检查所还图书是否有预
订记录,如果有则执行“通知”用例。在
UML中扩展关系表示为箭头和《extend》形
式。
《extend》
还书
通知
管理员
读者
注意
• 使用关系和扩展关系之间的区别,A使用B 本质上是A一定使用B,同时增加自己的专 属行为;而A被用例B扩展是说明A是一个一 般用例,B是一个特殊用例,A在某些条件 下可能使用B。
(2)取消预订——本用例提供取消预订图书的功能。
(3)还书——完成还书任务,在还书是要检查所还的书是否超 期、是否有其他读者预订,有的话要通知预订者。
(4)借书——提供借阅书功能 。
• 分析这个用例图,发现“还书”用例应该 被扩展,因为在还书时检查所还图书是否 有预订记录,若有,则应该通知预订者前 来借书。
• 一个用例内部的具体处理细节是由其他图形工具描述 的,用例图只是反映系统的总体功能,以及与这些功 能的相关的角色。有些人可能在画“借书”用例时, 情不自禁地就考虑了“输入读者号和书号”,“检查 图书是否在库?”,“图书数量减1”,“添加读者借 书记录”等等,一旦考虑了这些细节,就会发现用例 图画不下去了。因此,读者注意用例图中不要考虑处 理细节。

UML中的用例图实践案例

UML中的用例图实践案例

UML中的用例图实践案例UML(统一建模语言)是一种用于软件开发的标准化建模语言,它提供了一套丰富的图形符号和概念,用于描述和设计软件系统的各个方面。

其中,用例图是UML中最为常用和重要的一种图形表示方法,它用于描述系统的功能需求和用户与系统之间的交互关系。

本文将通过一个实践案例,介绍用例图在软件开发中的具体应用。

假设我们要开发一个在线购物系统,该系统包括用户注册、浏览商品、添加购物车、下单、支付等功能。

首先,我们需要明确系统的角色和用例。

在这个案例中,系统的角色包括用户、管理员和支付网关。

用户可以注册账号、浏览商品、添加购物车、下单和支付;管理员可以管理商品信息;支付网关负责处理支付请求。

接下来,我们可以使用用例图来表示这些角色和用例之间的关系。

首先,我们可以在用例图中用椭圆形表示各个用例。

在本案例中,我们可以用椭圆形表示注册账号、浏览商品、添加购物车、下单和支付等用例。

然后,我们可以用矩形表示各个角色,即用户、管理员和支付网关。

接着,我们可以使用实线箭头来表示角色与用例之间的关系。

例如,用户可以注册账号,我们可以在用户和注册账号之间画一条实线箭头来表示这种关系。

除了角色和用例之间的关系,用例图还可以表示用例之间的关系。

在本案例中,用户可以浏览商品、添加购物车、下单和支付,这些用例之间存在一定的先后顺序。

我们可以使用虚线箭头来表示这种顺序关系。

例如,用户可以先浏览商品,然后将商品添加到购物车,最后下单和支付。

我们可以在浏览商品和添加购物车之间画一条虚线箭头,表示用户在浏览商品后可以将商品添加到购物车。

此外,用例图还可以表示用例之间的包含和扩展关系。

在本案例中,用户下单时可能需要选择配送地址,我们可以将选择配送地址作为一个包含关系,用一个带有加号的实线箭头表示。

另外,用户下单时还可以选择使用优惠券,这可以作为一个扩展关系,用一个带有箭头和加号的虚线箭头表示。

通过用例图,我们可以清晰地描述系统的功能需求和用户与系统之间的交互关系。

uml用例之间的关系

uml用例之间的关系

uml用例之间的关系UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它可以通过图形化的方式描述系统的结构、行为和交互关系。

在UML中,用例是对系统功能的一种描述,用例之间的关系充满着指导和解释作用。

下面将具体介绍几种常见的用例之间的关系。

1. 包含关系(Includes):包含关系是一种用例之间的关系,表示一个用例包含了另一个用例的行为。

通常情况下,一个用例(被包含用例)在执行过程中会调用另一个用例(包含用例)来完成一部分功能。

例如,在一个购物系统中,用户下单时可能会调用一个包含了支付用例的用例。

2. 扩展关系(Extends):扩展关系也是一种用例之间的关系,表示一个用例可以在另一个用例的基础上进行扩展。

扩展用例在被扩展用例中定义了一些额外的行为,这些行为可以根据系统需求的变化来进行扩展。

例如,在一个社交网络系统中,用户发表动态的用例可以根据用户需求扩展为带有图片上传功能的动态。

3. 泛化关系(Generalization):泛化关系是一种用于表示继承关系的关系,用于描述一组具有共同特征的用例之间的关系。

泛化用例通常描述了一组具有相似功能的用例,并从中提取出了共同的特征,作为基础用例。

例如,在一个银行系统中,取款用例和存款用例可以被抽象为基本用例-交易用例,其共同的特征是对用户账户进行操作。

4. 关联关系(Association):关联关系是一种用例之间的关系,表示两个用例之间存在某种关联或依赖关系。

这种关联关系可以是双向的,也可以是单向的。

例如,在一个电子商务系统中,用户注册和登录用例可能存在关联关系,因为用户需要先注册才能登录系统。

综上所述,UML用例之间的关系对于系统分析与设计非常重要。

通过对用例之间的关系进行建模,可以帮助系统开发人员更好地理解系统的功能和行为,并指导团队的开发工作。

不同的用例关系表示了不同的依赖和交互方式,开发人员可以根据具体的需求情况选择适合的关系建模,以实现系统的需求和目标。

UML用例图用例描述详解

UML用例图用例描述详解

UML用例图用例描述详解描述用例规约应该避免这样一种误解――认为由参与者和用例构成的用例图就是用例模型,用例图只是在总体上大致描述了系统所能提供的各种服务,让我们对于系统的功能有一个总体的认识。

除此之外,我们还需要描述每一个有例的详细信息,这些信息包含在用例规约中,用例模型是由用例图和每一个用例的详细描述――用例规约所组成的。

RUP中提供了用例规约的模板,每一个用例的用例规约都应该包含以下内容:•简要说明(Brief Description)简要介绍该用例的作用和目的。

•事件流(Flow of Event)包括基本流和备选流,事件流应该表示出所有的场景。

•用例场景(Use-Case Scenario)包括成功场景和失败场景,场景主要是由基本流和备选流组合而成的。

•特殊需求(Special Requirement)描述与该用例相关的非功能性需求(包括性能、可靠性、可用性和可扩展性等)和设计约束(所使用的操作系统、开发工具等)。

•前置条件(Pre-Condition)执行用例之前系统必须所处的状态。

•后置条件(Post-Condition)用例执行完毕后系统可能处于的一组状态。

用例规约基本上是用文本方式来表述的,为了更加清晰地描述事件流,也可以选择使用状态图、活动图或序列图来辅助说明。

只要有助于表达的简洁明了,就可以在用例中任意粘贴用户界面和流程的图形化显示方式,或是其他图形。

如活动图有助于描述复杂的决策流程,状态转移图有助于描述与状态相关的系统行为,序列图适合于描述基于时间顺序的消息传递。

基本流基本流描述的是该用例最正常的一种场景,在基本流中系统执行一系列活动步骤来响应参与者提出的服务请求。

我们建议用以下格式来描述基本流:1) 每一个步骤都需要用数字编号以清楚地标明步骤的先后顺序。

2) 用一句简短的标题来概括每一步骤的主要内容,这样阅读者可以通过浏览标题来快速地了解用例的主要步骤。

在用例建模的早期,我们也只需要描述到事件流步骤标题这一层,以免过早地陷入到用例描述的细节中去。

UML用例图中的关系

UML用例图中的关系

UML用例图中的关系用例之间的关系做一个总结。

1、关联关系(association):用带箭头的实线表示,由参与者指向用例。

关联关系是指参与者与用例之间的关系,是参与者和用例之间的通信。

一个参与者可以关联多个用例,一个用例可以关联多个参与者。

但是每一对参与者和用例之间(即一条连线上)的通信必须是唯一的,否则则存在可以合并的参与者或者用例。

2、泛化关系(dependency):用带空心三角形的实线表示,由子级指向父级。

泛化关系是参与者于参与者之间或者用例于用例之间的关系。

泛化即继承关系,子用例(子参与者)继承了父用例(父参与者)的一切行为和通信。

同时还可以增加属于自己独有的行为和通信。

以机房收费系统中的三个参与者为例。

操作员继承了一般用户的所有功能,同时增加了充值、工作记录查询等功能。

而管理员则继承了操作员的一切功能,同时增加了结账和报表生成等功能。

用例图如下:3、包含关系(include):用带箭头的虚线和版型(include)表示,由基本用例指向被包含用例。

包含关系是用例之间的关系。

所谓的包含关系是指当一个用例需要以另一个用例的执行为前提才能执行时,这两个用例间的关系。

即一个用例不能被独立执行,随着另一个用例的执行而执行,也随着另一个用例的消亡而消亡。

以机房收费系统中的结账功能为例,如下图:在上图中结账用例和汇总退还金额用例之间即包含关系。

如果结账用例不执行时就无法执行汇总退还金额用例,而结账用例结束那么汇总用例也随之结束。

4、扩展关系(extend):用带箭头的虚线和版型(extend)表示,右基本用例指向扩展用例。

扩展关系也是用例之间的关系。

它指的是,当一个用例执行时出现某种特定的条件时,激活另一个用例。

这里的一定条件称之为扩展点,被激活的用例称之为扩展用例。

以机房收费系统中,上机时余额不足为例,如下图:上图中,上机用例执行时若发现学生卡号中的余额小于最低余额时则直接转入充值用例,但是充值用例也可以单独被执行。

UML用例和用例图

UML用例和用例图
系统按照查询条件搜索零件
只书写“可观测”的
书写用例文档
——路径交互步骤的描述(2)
系统从会员处获取用户名和密码 会员提交用户名和密码 用户名和密码被验证 系统验证用户名和密码
使用主动语句
书写用例文档
——路径交互步骤的描述(3)
执行者××××× 系统××××× 系统××××× 执行者×××××
句子必须以执行者或系统作为主语
UML用例和用例图
主要内容
基本概念:Use case、Actor、Scenario
Use case间的关系 Use Case 分析技术 案例讲解
Use Case 定义
➢ 定义1:用例是对一个活动者(actor)使用 系统的一项功能时所进行的交互过程的一 个文字描述序列。
➢ 定义2:用例是系统、子系统或类和外部的 参与者(actor)交互的动作序列的说明, 包括可选的动作序列和会出现异常的动作 序列。
有足够库存 …….(后续描述省略)
主要内容
基本概念:Use case、Actor、Scenario
Use case间的关系 Use Case 分析技术 案例讲解
案例1:ATM系统
建立一个具有基本功能的ATM机软件
客户可以存钱,取钱 客户可以查询帐户余额 客户可以修改密码 客户可以进行转帐
需求建模—用例图
互图分析和类图分析必不可少的部分。
用例的描述
一般说来,用例采用自然语言描述参与 者与系统进行交互时双方的行为,不追求 形式化的语言表达(面向不同人员)。
用例描述的内容
用例的目标 用例是怎么启动的 参与者和用例之间的消息是如何传送的 用例中除了主路径外,其他路径是什么 用例结束后的系统状态 其他需要:参与者是指系统以外的、需要使用系统 或与系统交互的东西,包括人、设备、外部系 统等。通过系统边界与系统进行有意义交互。

UML用例图三种关系详解

UML用例图三种关系详解

1UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。

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

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

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

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

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

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

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

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

2、扩展(extend)扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中。

扩展用例为基用例添加新的行为。

扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。

但是扩展用例对基用例不可见。

对于一个扩展用例,可以在基用例上有几个扩展点。

例如,系统中允许用户对查询的结果进行导出、打印。

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

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

UML的9种图例的定义、用途、画法总结

UML的9种图例的定义、用途、画法总结

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

(这是UML 对用例的正式定义,可以这样去理解,用例是参与者想要系统做的事情,用例在画图中用椭圆来表示,椭圆下面附上用例名称)。

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

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

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

3、 组成元素以及元素之间的关系说明用例图由参与者(Actor )、用例(Use Case )、系统边界(用矩形表示—注明系统名称)、箭头组成,用画图的方法来完成。

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

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

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

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

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

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

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

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

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

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

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

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

UML系统用例及用例关系

UML系统用例及用例关系

思考2:获取需求-考勤卡应用程序
用例图
初次访谈记录 开发者:谁将使用这个应用程序? 客 户:所有用它来记录可记帐以及不可记帐的工时的雇员 …… 开发者:现在考勤卡应用程序是什么样的? 客 户:每半个月就用一个Excel表格来记录。每个雇员都将通过他的表 格填好,然后用电子邮件发给我。这个表格相当标准:纵向是收费项目 代码,横向是日期。雇员可以在每个条目上填写说明。 开发者:这个收费项目代码可以从什么地方得到? …… 开发者:谁来管理收费项目代码? 客 户:嗯,必要的时候由我来添加这个代码。而每个经理总会告诉他 的下属应该填写什么。 ……
用例粒度-4
用例图
如果确实是CRUD?
如果CRUD不涉及复杂的交互,一个用例“管理××” 即可
不管是C、R、U、D,都是为了完成“管理”目标 甚至很多种的基本数据管理都可以用一个用例表示
管理员
管理用户
用例粒度-5
用例图
灵活处理CRUD
管理员
<<extend>>
管理用户
增加用户
可以把包含复杂交互的路径独立出去形成用例
参与者的类型和职责
用例图
主要参与者
直接与系统交互的人,或执行系统主要功能的执 行者
次要参与者
使用系统次要功能的执行者,或维护系统一般功 能的执行者
外部硬件
作为系统一部分的、运行应用的非计算机的硬件
其他系统
为其工作需要与系统交互的外部系统
参与者之间的关系
用例图
独立关系
泛化关系
一个参与者的抽象描述
可以被一个或多个具体的
识别参与者思路
用例图
谁使用系统的主要功能 谁改变系统的数据 谁从系统获取信息 谁需要系统的支持以完成日常工作任务 谁负责日常维护、管理并保证系统正常运行 谁使用或删除系统中的信息 谁(或什么)对系统运行产生的结果(值)感兴趣 系统需要应付(处理)那些硬设备 系统需要和那些外部系统交互 在预定时间,是否有事件自动发生 时间、气温等内部外部条件 ……

用例和用例图解读

用例和用例图解读

怎样识别用例
参与者希望系统执行什么任务? 参与者在系统中访问哪些信息?(创建、存储、修改、删
除等) 需要将外界的哪些信息提供给系统? 需要将系统的哪个事件告诉参与者? 如何维护系统?
如何判断一个用例是否是一个优秀的用例呢? ① 用例是否描述了应该做什么,而不是如何做? ② 用例的描述是否采取了参与者的视点? ③ 用例是否对参与者有价值? ④ 用例描述的时间流是否是一个完整场景? ⑤ 是否所有的参与者、用例都有相应的关联用例或关 联参与者?
Icon形式
Label形式
Decoration形式
由于Actor实际上是一个类, 因此它们之间可以存在 一定的关系,参与者之间的关系一般表现为特殊/一 般化关系,即,泛化关系。
思考: 1、这样一个需求:每天自动统计网页访问量,
生成统计报表,并发送至管理员信箱。这个
需求的参与者是谁? 2、自动售货机的参与者是谁?
用例和用例图
用例建模是UML建模的一部分,它也是UML里最基 础的部分; 用例建模的最主要功能就是用来表达系统的功能性需 求或行为; 用例建模可分为用例图和用例描述; 用例图是由软件需求分析到最终实现的第一步,它描 述人们如何使用一个系统,是外部参与者所能观察到 的系统功能的模型图,该图呈现了一些参与者和一些 用例,以及它们之间的关系,主要用于对系统、子系 统或类的功能行为进行建模,用画图的方法来完成; 用例描述用来详细描述用例图中每个用例,用文本文 档来完成。
怎样识别参与者
谁向系统提供信息? 谁从系统获取(使用)信息?
谁管理这个系统?
谁维护这个系统? 系统要使用哪些外部资源?(系统启动打印机、扫描仪)
系统是否和已经存在的系统交互?(跨行转账的外部银行

uml第03章 用例和用例图

uml第03章 用例和用例图

3.8 用例的描述
ATM系统“取款”用例的两个错误描述: 系统“取款”用例的两个错误描述: 系统
Use case: Withdraw cash Actor: customer 主事件流: 主事件流: (1) 储户插入 储户插入ATM卡,并输入密码 卡 并输入密码 Use case: Withdraw cash Actor: customer 主事件流: 主事件流: • ATM系统获得 系统获得ATM卡和密码 系统获得 卡和密码
例:一个银行业务系统中的参与者 例:一个银行业务系统中的参与者 1. 客户:从系统获取住处并执行金融交易 客户: 2. 管理人员:创建系统的用户, 获取并更新信息 管理人员:创建系统的用户 3. 厂商:接受作为转账支付结果的资金 厂商: 4. Mail系统:与系统交互, 发送或接收邮件 系统:与系统交互 系统
右图的例子演示了 包含关系
注意: 箭头方向为基本用例到包含用例. 注意 箭头方向为基本用例到包含用例
14 面向对象分析与设计 & UML
3.4.2 包含关系
15
面向对象分析与设计 & UML
3.4.3 扩展关系
扩展关系的基本含义与泛化关系类似, 扩展关系的基本含义与泛化关系类似 但对扩展用例 有更多限制, 即基本用例必须声明若干”扩展点” 有更多限制 即基本用例必须声明若干”扩展点”, 扩展用例只能在扩展点上增加行为和含义. 扩展用例只能在扩展点上增加行为和含义 扩展关系是依赖关系版型. 扩展关系是依赖关系版型
例:在“订货”用例中包括几个相关脚本: 订货”用例中包括几个相关脚本: • 订货顺利进行的脚本 订货顺利进行的脚本; • 相关货源不足时的脚本 相关货源不足时的脚本; • 购货者的信用卡被拒绝时的脚本 购货者的信用卡被拒绝时的脚本; • ……

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>>可以把几个用例的公共步骤分离出来成为一个单独的被包含用例。

UML的图和关系

UML的图和关系

3、导图概述
4、用例图(机房收费系统)
(二)、类图



1、定义:是由若干类关联在一起,反映系统 或者子系统组成结构的静态图。 2、简要介绍:类图的建模贯穿工程的分析和 设计阶段的始终。 类图是用来描述系统的静态部分。
3、导图概述
4、类图(机房收费系统)
(三)、对象图



1、定义:对象图描述一个系统在某个具体时刻 的静态结构。 2、简要介绍:对象图实际上就是类图的实例。 对象图表示一组对象及他们之间的联系,它是 系统的详细状态在某一时刻的快照,常用于表 示复杂类图的一个实例。 UML中对象图与类图具有相同的表示形式。 在UML中,对象图的使用相当有限,主要用于 表达数据结构的实例,以及了解系统在某个特 定时刻的具体情况。
3、导图概述
4、状态图(机房收费系统-注册)
(五)、活动图


1、定义:阐明业务用例实现的工作流程。 2、简要介绍:活动图是UML用于对系统的动 态行为建模的另一种常用工具,它描述活动的 顺序,展现从一个活动到另一个活动的控制流。 活动图在本质上是一种流程图。活动图着重表 现从一个活动到另一个活动的控制流,是内部 处理驱动的流程。 活动图描述的是对象活动的顺序关系所遵循的 规则,它着重表现的是系统的行为,而非系统 的处理过程。活动图能够表示并发活动的情形, 活动图是面向对象的。
3、导图概述
4、活动图(机房收费系统-注册)
(六)、序列图(又称顺序图,时序图)




1、定义:是对对象之间传送消息的时间顺序的可 视化表示。 2、简要介绍:序列图的目的在于描述系统中各个 对象按照时间的顺序的交互过程。 序列图将交互关系表示为一个二维图。纵向是时间 轴,时间沿竖线向下延伸。横向轴代表了在协作中 各独立对象的类元角色。类元角色用生命线表示。 当对象存在时,角色用一条虚线表示,当对象的过 程处于激活状态时,生命线是一个双道线。 消息用从一个对象的生命线到另一个对象生命线的 箭头表示。箭头以时间顺序在图中从上到下排列。

uml用例与用例之间的关系

uml用例与用例之间的关系

UML用例与用例之间的关系1. 引言在软件系统开发过程中,需求分析是一个至关重要的环节。

用例是一种常用的需求表示工具,用来描述系统与用户之间的交互过程。

用例图是一种在统一建模语言(UML)中常用的图形化表示工具,它能够清晰地描述不同角色之间的交互以及系统的功能。

在用例图中,用例之间存在着不同的关系,这些关系能够帮助我们更好地理解和分析需求,从而有助于正确地设计系统。

2. 用例与用例之间的关系用例与用例之间的关系主要体现在用例图中的连接关系,以下是用例与用例之间可能存在的几种关系:2.1 包含关系(include)包含关系描述了一个用例(被包含用例)在执行过程中调用了另一个用例(包含用例)的场景。

被包含用例是包含用例的一部分,它们之间有一个可选的包含关系,即被包含用例可以选择是否执行包含用例。

包含关系在用例图中用带箭头的虚线表示。

举例来说,如果一个系统中有一个支付用例和一个生成订单用例,那么支付用例可以调用生成订单用例来创建订单。

但是在某些情况下,比如采用现金支付时,生成订单用例就可以不执行,所以这个关系是可选的。

2.2 扩展关系(extend)扩展关系描述了一个用例(扩展用例)在某个基本场景(基础用例)的执行过程中可以选择性地插入另一个场景(扩展用例)。

扩展关系使得系统的功能可以按需进行扩展,而不会影响基础用例的执行。

扩展关系在用例图中用带箭头的虚线表示。

以在线购物系统为例,基础用例是购物,而扩展用例可以是添加到购物车、查看商品详情等。

这些扩展用例可以根据用户的需求来选择性地应用,从而实现购物功能的扩展。

2.3 泛化关系(generalization)泛化关系描述了一个用例(子用例)继承了另一个用例(父用例)的属性和行为。

子用例可以复用父用例的功能,并在其基础上进行扩展或修改。

泛化关系在用例图中用带空心箭头的实线表示。

例如,一个系统有多种角色,比如管理员和普通用户,它们都可以登录系统,所以可以有一个登录用例作为父用例,而管理员登录和普通用户登录可以作为子用例,从而实现用例的复用。

UML用例建模解析(一)----------用例概述

UML用例建模解析(一)----------用例概述

UML⽤例建模解析(⼀)----------⽤例概述UML(统⼀建模语⾔):1. 绘制⽤例图⽤例图是UML中⽐较简单的⼀种图形,它包含两个主要组成元素,分别是执⾏者(Actor)和⽤例(Use Case)。

执⾏者⼜称为参与者或⾓⾊,⽤例⼜称为⽤况或案例。

在⽤例图中,执⾏者⽤⼀个“⼩⼈”符号表⽰,⽤例⽤⼀个“椭圆”符号表⽰,因此⽤例图⼜有⼀个名字为“⼩⼈椭圆图”。

最简单的⽤例图如下:在该⽤例图中,“仓库管理员”表⽰执⾏者,“⼊库”表⽰⼀个⽤例,即系统的⼀个功能。

执⾏者是指直接和系统交互的⼀类事物,执⾏者主要有如下三类:(1) 直接使⽤系统的⼈,如使⽤⼀个库存管理系统的仓库管理员、仓储部经理等⽤户,仓库管理员可以通过系统进⾏⼊库和出库操作,仓储部经理可以通过系统查看各种报表,如库存报表、财务报表等;(2) 与该系统相关的其他系统,如在库存管理系统中如果涉及到付款操作,需要使⽤另⼀个软件——⽀付系统,此时⽀付系统就是库存管理的执⾏者之⼀;(3) ⾃动发⽣的事件,如时间、温度等⾃动事件,如果库存管理系统要求每晚零点执⾏⼀个数据汇总操作,此时时间就成为该操作的执⾏者。

识别⼀个系统的执⾏者是⽤例建模的第⼀步,在识别出⼀个系统的执⾏者后,需要寻找系统的⽤例,即功能需求。

⽤例是执⾏者对系统操作的⼀个动作序列,每⼀个⽤例对应执⾏者对系统的⼀个完整操作流程。

如库存管理系统中,仓库管理员可以登录系统,可以进⾏⼊库、出库等操作,在这⾥登录、⼊库、出库都是⽤例,它们都对应系统所提供的⼀个功能。

执⾏者通过执⾏⽤例来完成相应的⼯作。

⽤例体现了执⾏者和软件系统的交互过程,因此只⽤⼀个简单的“椭圆”来表⽰⽤例太过简单,对于每⼀个⽤例,需要编写⼀个详细的⽤例⽂档,在下⼀节将介绍如何编写⽤例⽂档。

UML用例图的用例间关系处理技巧与案例分享

UML用例图的用例间关系处理技巧与案例分享

UML用例图的用例间关系处理技巧与案例分享在软件开发过程中,UML(统一建模语言)用例图是一种常用的工具,用于描述系统的功能需求和用户行为。

用例图可以帮助开发团队更好地理解系统的功能,并且在需求分析和设计阶段提供指导。

然而,用例图中的用例之间的关系处理是一个关键问题,本文将介绍一些处理这些关系的技巧,并分享一些实际案例。

1. 泛化关系(Generalization)泛化关系是用例图中的一种重要关系,用于表示两个用例之间的继承关系。

通过泛化关系,可以将通用的用例抽象为父用例,然后通过继承关系衍生出具体的子用例。

这样可以减少冗余的用例描述,提高模型的可读性和可维护性。

例如,在一个电商系统中,可以定义一个父用例“用户管理”,然后通过泛化关系创建两个子用例“注册用户”和“登录用户”。

这样,父用例中的共同行为可以在子用例中继承并具体化。

2. 包含关系(Include)包含关系用于表示一个用例包含了另一个用例的行为。

通过包含关系,可以将一个用例的行为模块化,并在其他用例中重复使用。

这样可以提高模型的可重用性和可维护性。

例如,在一个银行系统中,可以定义一个用例“转账”,然后通过包含关系将“验证账户”和“更新账户余额”两个用例包含在“转账”用例中。

这样,其他用例中需要进行账户验证和更新余额的地方可以直接调用“转账”用例中的这两个子用例。

3. 扩展关系(Extend)扩展关系用于表示一个用例可以在另一个用例的基础上进行扩展。

通过扩展关系,可以在不修改原有用例的情况下,为系统添加新的功能。

例如,在一个学生管理系统中,可以定义一个用例“学生信息管理”,然后通过扩展关系将“添加学生信息”和“修改学生信息”两个用例扩展到“学生信息管理”用例中。

这样,当系统需要添加新的功能,比如“删除学生信息”,可以通过扩展关系在“学生信息管理”用例中添加该功能。

4. 关联关系(Association)关联关系用于表示两个用例之间的关联。

UML有关用例图知识及用例关系

UML有关用例图知识及用例关系

UML有关⽤例图知识及⽤例关系1. 如何识别⽤例 任何⽤例都不能在缺少参与者的情况下独⽴存在。

同样,任何参与者也必须要有与之关联的⽤例。

所以识别⽤例的最好⽅法就是从分析系统参与者开始,在这个过程中往往会发现新的参与者。

可以通过以下问题来寻找⽤例: (1)参与者希望系统提供什么功能? (2)参与者是否会读取、创建、修改、删除、存储系统的某种信息?如果是的话,参与者⼜是如何完成这些操作的? (3)参与者是否会将外部的某些事件通知给系统? (4)系统中发⽣的事件是否通知参与者? (5)是否存在影响系统的外部事件。

2.⽤例的粒度 ⽤例的粒度指的是⽤例所包含的系统服务或功能单元的多少。

⽤例的粒度越⼤,⽤例包含的功能越多,反之则包含的功能越少。

如果⽤例的粒度很⼩,得到的⽤例数就会太多。

反之,如果⽤例的粒度很⼤,那么得到的⽤例数就会很少。

如果⽤例数⽬过多会造成⽤例模型过⼤和引⼊设计困难⼤⼤提⾼。

如果⽤例数⽬过少会造成⽤例的粒度太⼤,不便于进⼀步的充分分析。

3.⽤例规约 对于每⼀个⽤例,我们还需要有详细的描述信息,以便让别⼈对于整个系统有⼀个更加详细的了解,这些信息包含在⽤例规约之中。

每⼀个⽤例的⽤例规约都应该包含以下内容: (1)简要说明:对⽤例作⽤和⽬的的简要描述。

(2)事件流:事件流包括基本流和备选流。

基本流描述的是⽤例的基本流程,是指⽤例“正常”运⾏时的场景。

(3)⽤例场景:同⼀个⽤例在实际执⾏的时候会有很多不同的情况发⽣,称之为⽤例场景,也可以说⽤例场景就是⽤例的实例。

(4)特殊需求: 特殊需求指的是⼀个⽤例的⾮功能性需求和设计约束。

特殊需求通常是⾮功能性需求,包括可靠性、性能、可⽤性和可扩展性等。

例如法律或法规⽅⾯的需求、应⽤程序标准和所构建系统的质量属性等。

(5)前置条件: 执⾏⽤例之前系统必须所处的状态。

例如,前置条件是要求⽤户有访问的权限或是要求某个⽤例必须已经执⾏完。

(6)后置条件:⽤例执⾏完毕后系统可能处于的⼀组状态。

UML用例图的用例拓展与关联分析

UML用例图的用例拓展与关联分析

UML用例图的用例拓展与关联分析UML(Unified Modeling Language)是一种用于软件系统的建模语言,用例图是UML中的一种图示工具,用于描述系统的功能需求和用户与系统之间的交互。

在用例图中,用例是对系统功能的描述,用例之间的关系则表示了不同用例之间的交互和依赖关系。

本文将探讨UML用例图中用例的拓展与关联分析。

一、用例拓展用例拓展是指在某个用例执行过程中,根据特定的条件和需求,对该用例进行扩展或修改。

用例拓展可以通过扩展关系(extend)来表示,该关系表示一个用例的行为可以被另一个用例的行为所扩展。

扩展关系可以帮助我们更好地理解系统的功能需求,并且可以在系统设计过程中提供更多的灵活性。

举个例子,假设我们正在设计一个在线购物系统的用例图。

其中一个基本用例是“下订单”,但是在某些情况下,用户可能需要修改订单中的商品数量或者删除某个商品。

这时,我们可以通过用例拓展的方式来描述这些特定的需求。

我们可以创建一个名为“修改订单”的拓展用例,它扩展了“下订单”用例,并且在用户需要修改订单时触发。

二、用例关联分析用例关联分析是指在用例图中,通过关联关系(association)来描述不同用例之间的关联和依赖关系。

关联关系表示了用例之间的相互关系,可以帮助我们更好地理解系统中不同用例之间的交互和依赖。

举个例子,假设我们正在设计一个社交媒体应用的用例图。

其中一个基本用例是“发布动态”,而另一个基本用例是“评论动态”。

这两个用例之间存在着关联关系,因为用户在发布动态后,其他用户可以对该动态进行评论。

我们可以在用例图中使用关联关系来表示这种关联和依赖关系。

除了关联关系,还有其他类型的用例关系可以用于描述不同用例之间的关系,如包含关系(include)和泛化关系(generalization)。

这些关系可以帮助我们更好地组织和理解系统的功能需求,同时也可以在系统设计中提供更多的灵活性和可扩展性。

综上所述,UML用例图的用例拓展与关联分析是系统设计过程中重要的一环。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

识别参与者思路
用例图
谁使用系统的主要功能 谁改变系统的数据 谁从系统获取信息 谁需要系统的支持以完成日常工作任务 谁负责日常维护、管理并保证系统正常运行 谁使用或删除系统中的信息 谁(或什么)对系统运行产生的结果(值)感兴趣 系统需要应付(处理)那些硬设备 系统需要和那些外部系统交互 在预定时间,是否有事件自动发生 时间、气温等内部外部条件 ……
可观测:用例止于系统边界
用例图
系统
描述交互,而不是内在的系统活动
边界---Boundary
用例图
也叫系统边界,用于界定系统功能范围
用一个带名称的矩形框,把描述系统功能的用例都 置于其中,而描述的与系统交互的角色都置于其外 系统----完整系统或子系统 一个系统包括一个或多个用例
准确的定义系统的边界(功能)不是一件很容 易的事 先识别出系统的基本功能集,以此为基础定义 一个稳定的、精确定义的系统体系结构,再不 断地扩充系统功能,以逐步完善
统一建模语言
用例图
11软件工程
CH4 用例图 系统用例及用例关系
知识回顾—需求获取
用例图
需求工程
需求管理
需求开发
问题获取
分析
编写规格说明
验证
教学目标
用例图
掌握用例图的地位作用及定义
重 点 掌握用例图模型元素 能够根据需求分析使用用例图建模
难 点
确定用例及用例间的关系
教学内容
用例图
用例图建模应用 用例图 需求获取
用例图
识别用例
关键词:价值 定义
用例实例是系统执行的一系列动作, 这些动作将生成特定参与者可观测的结 果值 一个用例定义一组用例实例(场景) 简洁:参与者使用系统达到目标
识别用例要点
用例图
可观测→用例止于系统边界 结果值→用例是有意义的目标 系统执行→结果值由系统生成 由参与者观测→业务语言、用户观点 一组用例实例→用例的粒度 用例命名
用例粒度-4
用例图
如果确实是CRUD?
如果CRUD不涉及复杂的交互,一个用例“管理××” 即可 不管是C、R、U、D,都是为了完成“管理”目标 甚至很多种的基本数据管理都可以用一个用例表示
结果值:有意义的目标
用例图
业务功能,而非系统处理
设定查询条件

会员 检索零件
会员
×
选择零件
系统执行:结果值由系统生成
用例图
出纳员
×
吃饭
系统需要处理的,由系统生成
参与者观测:用户观点而非系统观点
用例图
订票 旅客 查看今日航班
旅客
×
处理订票
显示今日航班
用户观点
系统观点
要点:用例粒度
用例图
用例要有路径,路径要有步骤;而这一 切都是可观测的 最常犯错误:粒度过细,陷入功能分解
用例2
用例图
用例捕获某些角色可见的需求,实现 一个具体的角色需求 用例由其用户角色使用,并提供确切 的输出给角色 用例可大可小,但它必须是对一个具 体的角色目标实现的完整描述 用例的动态执行过程可以用UML的交互 作用来说明,可以用状态图、顺序图、 协作图或非正式的文字描述来表示
识别用例
参与者的类型和职责
用例图
主要参与者
直接与系统交互的人,或执行系统主要功能的执 行者
次要参与者
使用系统次要功能的执行者,或维护系统一般功 能的执行者
外部硬件
作为系统一部分的、运行应用的非计算机的硬件
其他系统
为其工作需要与系统交互的外部系统
参与者之间的关系
用例图
独立关系 泛化关系
过细的粒度,一般都会导致技术语言的描 述,而不再是业务语言
用例粒度-1
用例图
把步骤当用例
会员 输入用户名
<<include>>
×
把系统活动当用例
<<include>> 建立数据库连接 <<include>> 查询订单 执行SQL语句
会员
登录

验证用户名和密码
×
用例粒度-2
用例图
×
增加用户 查询用户
修改用户
管理员
删除用户
用例粒度-3
用例图
“四轮马车”
C(Create) R(Read) U(Update) D(Delete)
所有业务最终会成为CRUD? CRUD能为Actor提供价值? CRUD掩盖业务,锐变成关系数据库的建模:
“系统就是数据的增删改查” 关心数据的存储和维护,反而忽略了用户的目的
4
Click to add title in here
一 需求获取
用例图
2 解答问题
在需求获取过程中,主要需要弄清楚三个问题
What
•明确需要获取的信息
Where
•明确所获取信息的来源和渠道
How
•怎样获取需求
用例图
二 用例图相关概念介绍
用例图
1. 什么是用例图
由参与者(Actor)、用例(Use Case)以及它们之 间的关系构成的用于描述系统功能的动态视图称为用 例图。
2. 用例图的作用
用例图
用例图是需求分析中的产物,主要作用是描述参 与者和用例之间的关系,帮助开发人员可视化的 了解系统的功能。 用例图可视化地表达了系统的需求,具有直观、 规范等优点,克服了纯文字性说明的不足。 用例方法是完全从外部来定义系统功能,它把需 求和设计完全的分离开来。
识别参与者1 参与者,Actor
一个参与者的抽象描述 可以被一个或多个具体的 参与者所共享
客户
商业客户
个体客户
用例1
用例图
用例
定义:Use Case 用例表示系统的一项外部 功能,它从用户的角度分析 所得的需求。为完成一个相 对完整的一种功能,系统执 行的一系列动作的集合
是外部可见的一种系统功能 代表的是一个完整的功能 有一系列动作
用例图
关键词:边界 参与者:在系统之外,透过 系统边界与系统进行有意义交 互的任何事物
识别参与者2 要点
系统外
用例图
参与者代表在系统边界之外的真实事物,并不是 系统的成分
系统边界
参与者透过系统边界直接与系统交互,参与者 的确定代表系统边界的确定
有意义交互的任何事物
人、外系统、外部因素、时间
需求获取及分析 需求的基本方法 什么叫用例图 用例图的构成要素 用例的重要元素 用例之间的各种重 要关系 识别参与者 确定用例
用例建模
一 需求获取
用例图
1 问题引入 需求是客户在项目立项时就有的一个远景,客户需求 将决定在整个项目中需求承办方具体做些什么,即承 办方的任务。承办方在明确了需求后,就会开始后期 的设计、开发、测试、部署等工作。
相关文档
最新文档