初学者指南:用例图——开启您的软件工程之旅

目录

背景:

基本组成:

关联(Assciation):

包含(Include):

扩展(Extend):

泛化(Inheritance):

完整银行系统用例图:

总结:


背景:

用例图(Use Case Diagram)是一种在软件开发和系统设计中广泛使用的图形化工具,它属于UML(Unified Modeling,统一建模语言)的一部分。用例图通过展示参与者(Actor)与系统用例(Use Case)之间的交互关系,来描述系统功能需求和行为

基本组成:

|-----------------|----------------------------------------------------------------------------|-----------------------------------------------------------------------|
| 名称 | 表示 | 名词解释 |
| 系统(System) | | 用一个矩形代表一个系统,然后将系统名称放在顶部。矩形用于定义系统的范围,矩形内的所有内容都在系统内发生,矩形外的所有内容都不会在系统外发生 |
| 参与者(Actor) | | 与系统交互的外部实体,可以是用户、其他系统或任何能够触发系统功能的实体 |
| 用例(Use Case) | | 描述系统的一个功能或行为,是系统参与者提供的一项服务或完成一个任务 |
| 关联(Assciation) | | 参与者与用例间的关系 |
| 包含(Include) | | 参与者之间或用例之间的关系 |
| 扩展(Exten) | | 用例之间的关系 |
| 泛化(Inheritance) | | 用例之间的关系 |

关联(Assciation):

关联关系,用实线表示。表示参与者与用例与用例之间的通信,任何一方都可以发送和接收消息。

例子:在银行系统中,客户(参与者)与登录(用例)之间存在关联关系。客户登录银行应用、客户检查账单、客户转账、客户付款。这种之间的连接或交互就是关联关系

包含(Include):

包含关系,把一个较复杂用例所表示的功能分解成较小的步骤,是上一个用例过程中不可可少的。箭头指向包含的子用例

例子:登录是基本用例,验证密码是包含用例,在银行系统中,每次客户登录时,银行应用都会验证密码

扩展(Extend):

扩展关系,用例功能的延伸,相当于为基础用例提供一个附加功能。(指向基础用例)

基本用例和扩展用例,当执行基本用例时,扩展用例有时候会触发有时候不会触发,扩展用例只会在满足某种条件的时候才会触发,

当有扩展关系时,使用一条带有箭头的虚线指向基本用例

例子:在银行系统中,登录是基本用例,而提示登录错误是一个扩展用例,银行应用不会在每次可客户登录时都提示登录错误消息,而是当客户输入错误的密码时,才会提示登录错消息。因为这是一个扩展关系,所以画一条带有箭头的虚线,箭头指向基本用例。

转账和支付者两个动作完成之前都需要检查余额是否充足

泛化(Inheritance):

泛化关系是一种继承关系,它表示一般与特殊的关系。在用例图中,泛化关系通常用于描述用例或参与者之间的继承关系。一个用例(或参与者)可以是另一个用例(或参与者)的特化或子类,继承父类(基类)的所有行为或者特征。

例子:在银行系统中,当客户使用银行应用付款时,可以从支票账户进行付款或者从储蓄账户进行付款,付款是一个通用用例。从支票账户付款和从储蓄账户付款是专门用例,可以把它们叫做父用例和子用例,子用例有着父用例的功能,并且子用例还具有特有的功能。

完整银行系统用例图:

总结:

用例图的好处 解释
清晰表达系统需求 通过展示参与者与系统之间的交互,使系统需求更加明确和直观
促进沟通 为开发团队、测试团队、业务分析师等提供了共同的语言和理解基础
识别系统功能 明确列出系统需要实现的功能,有助于后续的设计和开发工作
降低开发风险 通过早期识别潜在的问题和需求变更,减少开发过程中的风险和不确定性
支持迭代开发 易于更新和调整,适应迭代开发过程中的需求变化
提高开发效率 为开发团队提供了明确的指导,减少不必要的开发和测试工作
相关推荐
Tiger Z2 天前
R 语言科研绘图第 6 期 --- 散点图-基础
r语言·贴图
梁辰兴3 天前
UML 建模实验
软件工程·uml·建模
程序员_三木3 天前
Three.js资源-贴图材质网站推荐
javascript·webgl·three.js·材质·贴图
思忖小下7 天前
梳理你的思路(从OOP到架构设计)_UML应用:业务内涵的分析抽象&表达03
uml
思忖小下7 天前
梳理你的思路(从OOP到架构设计)_UML应用:业务内涵的分析抽象&表达01
uml·ooa
木市门7 天前
仿dota2渲染--shader常见贴图含义(直观展示)
贴图
JobDocLS7 天前
Halcon随机贴图生成缺陷图片脚本
深度学习·计算机视觉·贴图
肖老师+9 天前
可视化建模与UML《部署图实验报告》
uml·可视化建模
瞄喵11 天前
Unity24件捆绑包2D3D美术素材工具场景素材角色NPC模型动画程序化地编工具UI贴图编辑工具VR魔法特效音效插件20241212
ui·3d·贴图
思忖小下11 天前
开发中使用UML的流程总结篇
需求分析·uml