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

目录

背景:

基本组成:

关联(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):

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

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

完整银行系统用例图:

总结:

用例图的好处 解释
清晰表达系统需求 通过展示参与者与系统之间的交互,使系统需求更加明确和直观
促进沟通 为开发团队、测试团队、业务分析师等提供了共同的语言和理解基础
识别系统功能 明确列出系统需要实现的功能,有助于后续的设计和开发工作
降低开发风险 通过早期识别潜在的问题和需求变更,减少开发过程中的风险和不确定性
支持迭代开发 易于更新和调整,适应迭代开发过程中的需求变化
提高开发效率 为开发团队提供了明确的指导,减少不必要的开发和测试工作
相关推荐
「QT(C++)开发工程师」3 天前
UML | 最好的类图设计工具结合CSDN天启呈现-领路架构师
数据库·uml·类视图
小鱼儿LY3 天前
软考系统架构设计师之UML统一建模语言
系统架构·软考·uml·架构设计师
AndrewHZ7 天前
【3D算法技术】blender中,在曲面上如何进行贴图?
算法·3d·blender·贴图·三维建模·三维重建·pcg
在下胡三汉14 天前
3dmax烘培插件3dmax法线贴图烘焙教程glb和gltf元宇宙灯光效果图烘焙烘焙光影贴图支持VR渲染器
vr·贴图
workflower15 天前
GitHub宕机自救指南
测试用例·需求分析·uml·敏捷流程·结对编程
二川bro18 天前
第21节:环境贴图与PBR材质升级——构建电影级真实感渲染
材质·贴图
AndrewHZ19 天前
【三维渲染技术讨论】Blender输出的三维文件里的透明贴图在Isaac Sim里会丢失, 是什么原因?
算法·3d·blender·nvidia·贴图·具身智能·isaac sim
青草地溪水旁21 天前
Astah UML 中,状态机(State Machine)的建模最合适使用「UML 状态图(State Diagram)」
uml·状态机
Liquad Li22 天前
UML(统一建模语言)详解
架构·uml
CG_MAGIC1 个月前
主流 3D 模型格式(FBX/OBJ/DAE/GLTF)材质支持与转换操作指南
3d·渲染·动画·材质·贴图·3d 模型格式·材质支持与转换操作指南