用例图(Use Case Diagram)是整个UML9种图中最基础、最重要的一种图。为什么说它重要呢?因为用例图描述的是待开发系统的功能需求,这些功能需求是UML其它几种视图的依据和基础,其它几种图都要围绕用例图中定义的用例来建模,也可以说其它几种图都是为了实现用例图中的用例而存在的。

那么用例图都有哪几种元素组成呢?
角色(Actor)
角色用一个小人,但这并不代表角色只能是人,而不能是其它的物。角色可以是人、也可以是物。
那么怎样分析一个系统所涉及到的角色呢?下面是几种常用来确定系统角色的方法:
1、直接使用系统的人
2、系统的维护人员
3、从系统被动接受信息的人
4、系统使用的外设
5、需要与此系统相连的其它系统
1-3是人,4、5是物。所以一定不要认为角色只能是人。
用例(Use Case)

用例就是系统的功能需求,就是待开发系统将要完成的功能,所以用例一般都用动词表示
用例的粒度有粗有细,按照用例的粒度可以将其划分为以下几个粒度
1、概述级
此图中用户使用收费系统,“使用收费系统(UseChargeSystem)”就是一个比较粗的概述级的用例(简单的表示了人和系统之间的关系)
2、用户目标级
此图中用户查询余额,“查询余额(QueryRemainCash)”就是一个相对比较具体的功能”,是我们最常用的一种用例粒度
3、子功能级
此图中用户在查询余额和查询使用金额之前都要先登录系统,登录系统(Login)是在完成其他基本用例时必须要执行的一个子过程,这一用例的粒度相对较细。子功能级的用例常用来被其它用例包含(include)、细化(refine)其他用例。
关系:包括角色和用例之间的关系、用例和用例之间的关系、角色和角色之间的关系
角色和用例之间的关系通常为关联(表示某一角色和某一用例有关系):
角色和角色之间的关系通常为继承:
角色Administrator继承了角色User,那么Administrator也就具有QueryRemainCash和QueryUseCash的权限了。继承的最大好处就是实现复用,同使用角色之间的继承关系,可以大大减少角色和用例之间的“连线”。
用例和用例之间的关系就比较复杂了,下面我为大家一一介绍:
一、包含关系(include):
上面在讲用例粒度时讲到的查询余额(QueryRemainCash)和登录(Login)之间的关系就是包含关系
那么什么是包含关系呢?是不是就像大家想的那样,一个大用例划分为几个小用例,大的包含小的呢?答案是:不是。下面我为大家具体讲一下包含关系。
包含关系用一个虚箭头另加版型(stereotype)《include》表示,从包含用例指向被包含用例,如上图所示
包含关系可以基于以下理由:
1、从基本用例中分解出这样的行为:它对于了解基本用例的主要目的并不是必须的,但是它必须在执行基本用例前先执行,只有它的结果才是比较重要的。如上图所示:对于用户来说,他在了解系统的功能时,“查询余额”是主要的,对于登录,只有它的结果才是重要的,但是用户在查询余额前必须先登录。
2、分解出两个或更多用例所共有的行为,这样可以实现用例的复用,简化用例图。如上图所示:"查询余额"和“查询消费金额”都能抽出一个“登录”用例。
举一个大家最常见的例子:你去银行办业务,无论你办什么业务,都需要你输入账号的密码。假如有人问你:你去银行干什么呀?你的回答可能是取钱,但是绝对没有人回答我去银行输密码和取钱。因为输入密码对于用户了解基本用例的目的不是必须的,只有输入密码的结果才是重要的(但它是取钱时必须执行的步骤),所以取钱和输入密码之间就是包含关系
二、扩展关系(extend)
扩展关系用一个虚箭头外加版型《extend》表示,由扩展用例指向被扩展用例
扩展关系可以基于以下理由:
1、表明用例的某一部分是可选的系统行为,这样就可以将用例图中的可选行为和必选行为分开。
2、表明只在特定条件下才执行的特定分支用例
3、表明多个基本用例中都有可能触发的某个可选用例
extend关系和include关系最明显的区别就是:扩展用例是可选的,包含用例是必选的,如上图所示:手机用户在用自动缴费机充值之后,可以打印小票,也可以不打印,这完全取决于用户的意愿,并不是必须要执行的。
三、实现关系(realize)
大家可能很少听说在用例模型中使用realize关系,用例模型中实现关系用于连接用例和用例实现,说明基本用例的一个实现方式。
实现在用例模型中的含义是:基本用例描述了一个业务目标,但是该业务目标有多种实现途径,每一种实现途径都可以用一个实现用例来表示。这样实现用例和基本用例之间就构成了实现关系。
用例图中的实现关系和类图中的实现关系一样,这里不再赘述。
写到这里,用例图就讲完了,以后我会出关于UML中其它几种图的文章,希望大家多多关注。最后希望此文能对大家有所帮助。

UML建模之用例图(重点讲extend和include关系)相关推荐

  1. UML 建模步骤 用例图 类图 对象图 包图 顺序图/时序图 状态图 活动图 协作图

    统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明.可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言. UML是面向对象设计的建 ...

  2. 【UML建模】(2) UML建模之用例图

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦.

  3. UML建模—EA创建Use Case(用例图)

    用例图主要用来描述"用户.需求.系统功能单元"之间的关系.它展示了一个外部用户能够观察到的系统功能模型图. 1.新建用例图 2.用例图工具: 3.一个简单用例: 用例图所包含的元素 ...

  4. 设计模式——UML建模之精选核心知识用例图、构件图、部署图、对象图的小结(一)

    文章大纲 引言 一.UML 的核心图概述 二.用例图 1.用例图概述 2.用例图的核心元素 2.1.参与者 2.2.用例 2.3.容器 2.4.用例图内的关系 三.组件图 四.部署图 五.对象图 引言 ...

  5. UML基础、建模与设计实战笔记03第3、4章建模工具简介,常见uml建模工具,创建模块,创建类,用例图,参与者,用例,用例描述,用例之间的可视化表示,用例图建模技术及应用,进销存系统用例图

    1.常见uml建模工具 建模工具应该具有的功能 绘图 存储 一致性检查 对模型进行组织 导航 写作支持 代码生成 逆向项目 集成 支持多种抽象层和开发过程 文档生成 脚本编程 工具主要有 Rose P ...

  6. 需求分析——掌握UML建模语言的用例图

    在前面的课程中,我们主要讨论了人脉V1.0系统的角色及角色间的关系,也讨论了角色的属性和行为.在这节课中,我们将使用UML建模语言的用例图对人脉V1.0系统的角色及角色行为建立系统功能模型. 在建模之 ...

  7. UML中的用例图、活动图、顺序图

        想要完成用户的需求分析,一般需要用例图.用例说明文档.活动图.顺序图.用户界面原型的相互配合.用例图描述系统具有哪些功能,谁使用这些功能:用例说明文档解释用例的场景.使用者.触发条件等内容:活 ...

  8. 耦合关系从强到弱顺序_18秋东大学期《软件工程与UML建模》在线作业123标准满分...

    18秋东大学期<软件工程与UML建模>在线作业1 一. 单选题 (共 15 道试题,共 75 分) 1.在下列内聚性序列中,复合从强到弱排列的是( ). A.偶然.瞬时.功能.通信.逻辑. ...

  9. UML系列图——用例图(Use Case)

    擂鼓备战:     UML语言(Unified model language)是用来对软件密集系统进行可视化建模的一种语言.说到可视化,那就是用图描述软件系统,达到语言表达不出来的抽象逻辑.这里我们先 ...

最新文章

  1. 北大率先官宣朱松纯加盟,现身燕园,任职AI研究院院长,“AI发展离不开哲学思考”...
  2. echarts堆叠图tooltip中如何仅展示鼠标当前位置相应的指标数据
  3. OpenJudge NOI 1.2 04:填空:类型转换1
  4. python中 [ 闭包 ] 小结
  5. 解决SQLServer事物日志过大的方法
  6. 魔兽美服服务器维护,美服《魔兽世界》低人口密度服务器合并计划最新动态
  7. 《WEB全栈工程师的自我修养》--索引笔记
  8. vue + element插件 首次运行白屏原因分析
  9. C语言 一元二次方程求解
  10. Java实现 蓝桥杯 算法提高 天天向上(DP)
  11. 解决:TransportException: Cannot execute request on any known server
  12. 基于SAAS的都昌商业平台设计
  13. PS-sixday-裁剪和切片(标尺使用)
  14. 红外焦平面阵列调试传递函数测试方法
  15. Spark Steaming流式日志过滤与分析
  16. unity 神笔画画
  17. 计算机近几年自考本科题,近几年自考管理系统中计算机硬应用题汇总.doc
  18. 大争之世智造为基,瑞科智能将亮相第21届SIMM深圳机械展
  19. 【uniapp】压缩图片image-conversion
  20. 至少9所大学!将要招收计算机/软件专业第二学士学位!

热门文章

  1. OpenCV颜色空间——Luv颜色空间
  2. 数据标注软件 【labelimg】
  3. Python爬虫实战之12306抢票开源
  4. educoder 数据库原理与应用 实验六 约束与索引
  5. 【J2EE】模仿天猫商城(后台篇)
  6. uniapp 简单有效判断手指滑动方向
  7. 图文结合带你搞懂InnoDB MVCC
  8. linux mysql 命令行查询 乱码_mysql命令提示行连接乱码的解决
  9. android js下载地址,js点击下载跳转iOS或安卓
  10. Node.js进阶基础技能—Koa基本使用