用例图的含义

参与者(Actor)用例(Use Case) 以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。
其中用例和参与者之间的对应关系又叫做通讯关联(Communication Association)。

用例图的作用

用例图是需求分析中的产物,主要作用是描述参与者与和用例之间的关系,帮助开发人员可视化地了解系统的功能。借助于用例图,系统用户、系统分析人员、系统设计人员、领域专家能够以可视化的方式对问题进行探讨,减少了大量交流上的障碍,便于对问题达成共识。

用例图的构成元素

构成很简单火柴人,鸭蛋,小方块和连线。

参与者(Actor)——与应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。

参与者(Actor)是指存在于系统外部并直接与系统交互的人、系统、子系统或类的外部实体的抽象。每个参与者可以参与一个或多个用例,每个用例也可以有一个或多个参与者。

用例(Use Case)——用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。

用例(Use Case)是参与者(角色)可以感受到的系统服务或功能单元。它定义了系统是如何被参与者使用的,描述了参与者为使用系统所提供的某一完整功能而与系统之间发生的一段对话。
用例最大的优点就是站在用户的角度上(从系统的外部)来描述系统的功能。它把系统当作一个黑箱子,并不关心系统内部是如何完成它所提供的功能的,表达了整个系统对外部用户可见的行为。

系统边界——系统边界是指系统与系统之间的界限。用方形框+系统名称表示。

系统边界是指系统与系统之间的界限。通常所说的系统可以认为是由一系列相互作用的元素形成的具有特定功能的有机整体。系统同时又是相对的,一个系统本身又可以是另一个更大系统的组成部分,因此,系统与系统之间需要使用系统边界进行区分。
系统边界在用例图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。

元素之间的关系

关系类型 说明 表示符号
关联 参与者与用例之间的关系
泛化 参与者之间或用例之间的关系
包含 用例之间的关系
扩展 用例之间的关系
  1. 关联
    可以理解为参与者使用了什么功能。

  2. 泛化

    • 当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。
    • 在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。
    • 泛化关系一般很少使用。
  3. 包含
    包含关系指用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。


    主要由以下两种情况需要用到包含关系

    • 多个用例用到同一段的行为,则可以把这段共同的行为单独抽象成一个用例,然后让其他用例来包含这一用例。
    • 当某一个用例的功能过多、事件流过于复杂时,也可以把某一段事件流抽象成一个被包含的哟管理,以达到简化描述的目的。
  4. 扩展

    • 扩展用例可以在基用例之上添加新的行为,但是基用例必须声明某些特定的“扩展点”,并且扩展用例只能在这些扩展点上扩展新的行为。
    • 在扩展(extend)关系中,基础用例(Base)中定义有一至多个已命名的扩展点,扩展关系是指将扩展用-例(Extension)的事件流在一定的条件下按照相应的扩展点插入到基础用例(Base)中。

一文带你学会 UML--用例图相关推荐

  1. 一文带你学会 UML 统一建模语言

    文章目录 一.简介 二.分类 1. 用例图(UseCase Diagrams) 2. 类图(Class Diagrams) 3. 对象图(Object Diagram) 4. 状态图 (Statech ...

  2. 一文带你学会linux系统 史上最全linux命令大全

    一文带你学会linux系统 史上最全linux命令大全 文章目录 linux系统简介 linux命令 1.启动网络命令 2.pwd命令 2.ls命令 3.cd命令 4.mkdir命令 5.rmdir命 ...

  3. java环境变量的配置_一文带你学会Java环境变量配置(小白向)

    很多人初学Java的时候,因为Java环境变量的配置卡的心烦意乱. 又有很多人百度上翻来翻去,得到的答案五花八门,让你头晕眼花. 你肯定也在想,不就是个环境变量的配置吗?为什么搜了那么多答案,依然不能 ...

  4. python绘制饼状图图例_Python图表绘制很简单,一文带你学会如何生成带图例的饼图...

    matplotlib库,作为Python数据可视化的常用库和经典库,咱们已经探讨了多次,并了解了内部多个函数的使用,上次咱们聊了如何在图表中添加各种样式的图例,今天呢,咱们接着上次的内容继续深入聊聊, ...

  5. 一文带你入门UML!

    导读 1:什么是UML? 2:UML图的基本介绍 3:UML类图的精讲 4:UML状态图精讲 5:总结 6:参考资料 7:画图工具 什么是UML? 简单介绍 官方定义:UML - Unified mo ...

  6. 一文带你学会0编程基础做木马免杀

    更多渗透技能 ,10余本电子书及渗透工具包,搜公众号:白帽子左一 作者:掌控安全-骚骑 背景 之前分享了个免杀入门文,很浅显,比较适合小白看- 文章在社区,地址我放在这了,有兴趣可以一戳: https ...

  7. 一文带你学会java的jvm精华知识点

    前言 本文分为20多个问题,通过问题的方式,来逐渐理解jvm,由浅及深.希望帮助到大家. Java类实例化时,JVM执行顺序? 正确的顺序如下: 1父类静态代码块 2父类静态变量 3子类静态代码块 3 ...

  8. 一文带你学会基于SpringAop实现操作日志的记录

    前言 大家好,这里是经典鸡翅,今天给大家带来一篇基于SpringAop实现的操作日志记录的解决的方案.大家可能会说,切,操作日志记录这么简单的东西,老生常谈了.不! 网上的操作日志一般就是记录操作人, ...

  9. 性能测试很难吗?一文带你学会性能测试核心流程和概念

    在很多人的概念中,性能测试就是使用Loadrunner.Jmeter等工具进行压测,然后得到测试结果即可,但仔细想想,对谁进行测试?测试目的是什么?监测指标有哪些?得到的结果如何分析(怎样的结果算通过 ...

最新文章

  1. Verilog初级教程(11)Verilog中的initial块
  2. 一些著名的软件都用什么语言编写?
  3. 大三实验室 经验总结
  4. 纪中B组模拟赛总结(2020.2.3)
  5. MySQL中CREATE DATABASE和CREATE SCHEMA区别(转)
  6. 23岁研究生校内坠亡!家人称导师经常辱骂讽刺他,事件涉及两所高校!
  7. python 爬虫 scrapy1_官网教程
  8. python3正式发布时间_Python3 日期和时间
  9. Spring通过静态方法factory-method或实例工厂factory-bean获取bean对象
  10. JAVA 疯狂讲义 学习笔记
  11. WINDOWSXP主题风格美化教程
  12. C语言编写游戏的程序教程,用C语言写贪吃蛇游戏图文教程
  13. 蝴蝶f8手机是鸿蒙系统,中华酷联御三家回归,从电信定制机到高端,你期待鸿蒙系统吗?...
  14. 优动漫PAINT上色小技巧——套索填充功能教程
  15. 2012年8月24日--学习笔记---螺旋队列
  16. 第5章第16节:案例:制作一份漂亮的翻页动画 [PowerPoint精美幻灯片实战教程]
  17. SQL AlawaysOn 之一:安装域控制器
  18. iMX6ul开发指导
  19. SpringBoot————Flyway的使用
  20. 硬件设计:电路防护--陶瓷气体放电管(GDT)

热门文章

  1. redis缓存数据表
  2. JMeter入门(3):录制JMeter脚本
  3. centos下hadoop的安装
  4. Linux中read接收用户输入
  5. OS中atomic的实现解析
  6. php实现解压功能的函数
  7. Linux使用locate命令查找,Linux如何使用locate命令查找数据(2)
  8. 利用MATLAB进行系统时域分析,实验二 利用matlab进行系统的时域分析
  9. zigbee协议_智能家居的ZigBee到底是什么?和Wi-Fi有何区别?
  10. EJB之JPA(UUID与TABLE影射策略)