文章目录

  • 用例图的作用
  • 什么时候创建用例图
  • 什么是用例
  • 用例说明书
  • 场景
  • 用例图外框
  • 用例图
  • 系统边界
  • 执行者
  • 执行者与用例关联
  • 基础用例
  • 内含用例
  • 扩展用例
  • 总结

用例图的作用

用例图会简洁地传递一系列用例一一系统提供的外部可见服务一一以及触发和参与用例的执行者。

用例图是系统的一种黑盒视图,因此也很适合作为系统的情境图。

什么时候创建用例图

用例图是一种分析工具,一般会在系统生命周期的早期创建。

用例图有系统级别的用例和组件级别的用例。在不同的设计阶段要创建不同层级的用例图。

什么是用例

《统一建模语言参考手册(第二版)》中的定义:特定的一系列动作,包括变种系列动作和错误系列动作,系统、子系统或者类可以通过与外部对象交互来执行,以提供值的服务。

《编写有效用例》一书中的描述:用例会捕获系统利益相关者之间关于系统行为的契约。用例会描述系统响应一种叫做主执行者的利益相关者请求时,在各种条件下的行为。主执行者会初始化与系统的交互以完成某些目的。系统做出响应,保护所有利益相关者的利益。不同序列的行为或者场景可以折叠,这依赖于特定请求,以及请求的环境。用例会把那些不同的场景搜集在一起。

关键点:

  • 用例是系统将会执行的一种服务一一一种行为。
  • 系统所执行的所有行为并非都是用例。用例只是系统行为的子集,是外部执行者能够直接触发或者参与的那些行为。
  • 执行者可以是一个人或者一个外部系统,执行者和你的系统之间存在接口。
  • 触发用例的执行者叫做主执行者。参与到用例中的执行者叫做次执行者。主执行者也可以是次执行者。
  • 用例应该代表主执行者的目的。你要从执行者的角度而不是系统的角度来为用例起名字一一一那个动词短语。例如,如果卫星的飞行控制器需要发送命令,那么用例的名称应该是发送命令而不是接收命令。
  • 用例名称不会传达大量信息。你要为每个用例创建用例说明书,以讲述系统和它的执行者会如何协作来达成用例目标。

用例说明书

用例说明书会传达主执行者触发用例的时候发生的情况。用例说明书在传统上是文字文档。

《编写有效用例》中提供了用例说明书的格式。

场景

用例和场景并不是同义词。

通过用例执行的每个路径,从开始到结束是一个独立的场景。因此用例至少会包含一个场景。

用例至少会包含一个主要成功场景一一也就是正常的执行路径。通常它还会包含额外的场景,代表错误和异常的序列,那些都是主要成功场景的分支。

一幅Sys ML 序列图很适合用图形化的方式表示单独的场景。常用的技术是仔细分析单个用例说明书一一可能是文字说明,或者是活动图一一来创建一系列序列图,每个场景一幅。

用例图外框

用例图

用例图的标识法是一个椭圆形。

和模块一样,用例可以泛化,也可以特殊化,这意味着你可以创建并显示从一个用例到另一个用例的泛化关系。

系统边界

系统边界(也叫做主题)代表拥有并执行图中用例的系统。系统边界的标识法是围绕用例的矩形框(不要和图的外框混淆) 。主题的名称一一显示在矩形的顶部一一必须是一个名词短语。

就是上图中中间的框

执行者

执行者有两种标识法: 火柴棍小人,或者是名称前面带有<<ac to r》关键字的矩形。建模者约定俗成,会使用火柴棍小人代表人,矩形标识法代表系统。

执行者与用例关联

在执行者和用例之间创建关联,从而表示执行者与系统交互,以触发和
参与到用例中。

非法关联:

  • 你不能在执行者和用例之间创建复合的关联
  • 你不能在两个执行者之间创建(任意类型)关联
  • 你不能在两个用例之间创建(任意类型)关联

基础用例

基础用例是通过关联关系与主执行者连接在一起的任意用例。这意味着基础用例代表的是主执行者的目标。上图中与火柴人关联的是基础用例,另外三种是内含用例。

内含用例

内含用例是任意一种用例,它是内含关系的目标一一也就是位于箭头端的元素。

内含关系的标识法是带有箭头的虚线,在旁边会有关键宇《inc lude》。

内含关系表示的是,当源端一一关系的尾端一一的用例被触发时,目标端的内含用例也会执行。换句话说,内含用例行为是源端用例所需要的组成部分。

遗憾的是,内含关系并没有传达内含行为在源用例中何处执行一一开始、中间还是结束一一只知道它执行了。为了确定内含用例在序列中的何处发生,看图者可能需要查看与源用例相关的文字描述、活动图或者序列图。

永远不要在主执行者和内含用例之间创建关联关系。

扩展用例

扩展用例是任意一种用例,它是扩展关系的源一一位于尾端的元素。扩展关系的标识法是带有箭头的虚线,附近带有关键字<<exte nd >> 。

和内含关系一样,扩展关系并不是一种依赖,尽管它们的标识法非常类似。扩展关系要传达的是,当目标端的用例一一位于关系的箭头端一一被触发时,源端的扩展用例可能被选择性地执行。这意味着扩展关系目标端的用例自动完成。

例如, 雷达操作者每次触发跟踪卫星轨道用例的时候,切换到TDRS 遥感输入用例也可能会执行一一也可能不执行;那个扩展用例是否执行,取决于跟踪卫星轨道用例中的某些触发条件是否满足。

总结

建模者通常会创建用例图作为系统情境图一一利益相关者在生命周期早期期望看到的系统视图。

用例图可以显示执行者之间以及用例之间的泛化关系:一种用于抽象行为的设计技术。

你还可以在用例之中显示内含关系和扩展关系:用于重构多个高层次服务拥有的通用行为的技术。

生命周期早期期望看到的系统视图。

用例图可以显示执行者之间以及用例之间的泛化关系:一种用于抽象行为的设计技术。

你还可以在用例之中显示内含关系和扩展关系:用于重构多个高层次服务拥有的通用行为的技术。

MagicDraw-用例图相关推荐

  1. UML用例图概要(转)

    用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员根据客户的需求来创建和解 ...

  2. [UML]UML系列——用例图中的各种关系(include、extend)

    [UML]UML系列--用例图中的各种关系(include.extend) 原文:[UML]UML系列--用例图中的各种关系(include.extend) 用例图中的各种关系 一.参与者与用例间的关 ...

  3. 不使用powerdesigner手工绘制用例图例题详解

    文章目录 1.题目 2.分析过程 3.结果 4.需要注意的细节 5.本题易错的地方 1.题目 根据以下场景绘制用例图. 某公司预开发一个反馈系统作为其CRM(客户关系管理)的一部分.系统基本功能描述如 ...

  4. 【转】Visual Studio 2010 架构图之用例图(UML Use Case Diagram)

    这篇文章是来自园子的,我只是把自己觉得重要的地方,做了更鲜明的标记和解释. 使用Visual Studio 2010可以在项目中添加架构图,项目可以是ASP.NET.Windows Forms.... ...

  5. 用visio画用例图小人_教你如何用 Python 打飞机 ?

    前言:python 除了生孩子 ,啥都会 .包括打飞机 !今天就来教你如何用 python 打飞机 ! 简述 相信你是一个单纯的孩子说的打飞机是指啥意思 ,对吧 ?嗯 ,没毛病 .就是 pygame ...

  6. Chart.js-极区图分析(参数分析+例图)

    Chart.js-极区图分析(参数分析+例图) 极区图样式总览 基本写法 参数解析 极区图1 - 普通极区图 极区图样式总览 基本写法 首先在< script >标签里面引入chart.j ...

  7. Chart.js-饼状图分析(参数分析+例图)

    Chart.js-饼状图分析(参数分析+例图) 饼状图样式总览 基本写法 参数解析 饼状图2 - 中空同心圆 饼状图3 - 多同心圆 饼状图样式总览 基本写法 首先在< script >标 ...

  8. Chart.js-雷达图分析(参数分析+例图)

    Chart.js-雷达图分析(参数分析+例图) 雷达图样式总览 基本写法 参数解析 雷达图样式总览 基本写法 首先在< script >标签里面引入chart.js: <script ...

  9. Chart.js-线形图分析(参数分析+例图)

    Chart.js-线形图分析(参数分析+例图) 线形图样式总览 基本写法 参数解析 线形图1 - 普通线形图(直线.曲线.虚线) 线形图2 - 普通线面图 线形图3 - 步进线(像极了哈夫曼编码) 线 ...

  10. UML工具 MAGICDraw

    今天启动UML工具  MAGICDraw时,提示 一个对话框: Java Virtual Machine Launcher Could not find the main  class,Program ...

最新文章

  1. android 图标的格式,Android Design
  2. avalon.js实践 svg地图配置工具
  3. 【Python】单线程异步多线程多进程实例
  4. python---图表的使用
  5. rhel7 ifconfig command not found
  6. 模型融合之stacking和blending
  7. 【渝粤教育】电大中专建筑力学 (3)作业 题库
  8. 科技庄园(背包dp)---对于蒟蒻来说死了一大片的奇题
  9. Linux 初始化系统 systemd - journald 日志
  10. MATLAB 绘图基础
  11. 分析百度搜索算法中:收录骤增骤减背后的原因
  12. RSPAN-华为二层(s2000 HI)
  13. 幻想世界正在连接服务器,旅行物语桌面版连接不上怎么办 pc电脑版无法连接服务器怎么办...
  14. 第三方邮件、短信服务
  15. 马海峰,杨家海,计算机应用,杨家海
  16. 耐克中国物流中心三期在江苏太仓落成和运营
  17. 如何使用计算机蠕虫病毒软件,incaseformat蠕虫病毒是什么?电脑若中病毒后如何修复。...
  18. 计算机教学在语文中应用,浅谈信息技术在中学语文教学中的运用
  19. 中国金属切削液市场深度研究及未来前景分析报告2022-2028年
  20. python使用 tkinter + you-get 实现视频下载器以及 pyinstaller 打包时的问题

热门文章

  1. 精心整理的10套最美Web前端新年特效---提前祝大家新年快乐(文末送书)
  2. 2020 智慧旅游系统总体设计方案
  3. Mblock的扩展模块的编写
  4. mbot机器人编程课件_mbot机器人教程创客大赛
  5. 基于IM实现直播礼物效果
  6. 微软小娜服务器,微软小娜正在继续被边缘化中:奇妙清单也不再支持小娜连接-...
  7. sip协议详解 系列(三)
  8. .net web页面嵌入海康视频(winform)
  9. PHP: ThinkPHP获取客户端IP地址
  10. 全网首发PHP版留言系统源码