当前位置: 首页 > ai >正文

UML用例模型与用例图

本篇来介绍UML中的用例模型。

1 什么是用例模型

用例模型(Usecase Model)

用例模型包括:

  • 系统边界
  • 参与者
  • 用例
  • 用例图
  • 用例描述

用例模型是系统分析的结果,是系统设计的输入

2 用例模型具体介绍

2.1 参与者

2.1.1 Actor简介

参与者(Actor),也有翻译为“执行者”,它代表位于系统之外并和系统进行交互的一类事物,包括人、物、其它软件子系统等。

通过参与者,可以:

  • 对系统软件与外界发生的交互进行分析和描述
  • 了解客户希望软件系统提供哪些功能

参与者有两种图形表示:

  • 参与者是人:用“小人图”
  • 参与者是某个系统:用方框图,构造型《actor》,(stereotype)

对每一类参与者要有简短描述,例如:

  • 学生:需要参加培训计划规定的课程,并通过考核

2.1.2 如何寻找系统的Actor?

可以根据下面的问题来寻找Actor

  • 谁使用系统?
  • 谁安装系统、维护系统?
  • 谁启动系统、关闭系统?
  • 谁从系统中获取信息,谁提供信息给系统?
  • 在系统交互中,谁扮演了什么角色?
  • 系统会与哪些其它系统相关联?
  • 内/外部定时器

2.1.3 小例子:寻找Actor

学院管理系统的Actor有:

  • 用户/学生/教师/系统管理员
  • 数据库
  • 如果有子系统
    • 其它系统作为一个Actor
    • 有时数据库可以作为一个Actor

2.2 用例

2.2.1 Usercase简介

用例(Usecase),也被翻译为“用况”,是系统为响应参与者引发的一个事件而执行的一系列的处理/动作,而这些处理应该为参与者产生一种有价值的结果,这些动作包括:

  • 正常情况的各种动作序列
  • 非正常情况时软件系统的动作序列的描述,Exception / Alternate

每个用例都有一个名称,注意是短小精悍的动名词,如

  • ATM系统,经典的用例有:取钱、存钱、修改密码等

2.2.2 如何寻找用例?

可以根据下面的问题来寻找Usecase:

  • 参与者希望系统提供什么功能?
  • 系统是否存储和检索信息?
  • 当系统改变状态时,是否通知参与者?
  • 是否存在影响系统的外部事件,是哪个参与者通知系统这些外部事件?
  • 哪个参与者触发了活动?

2.3 用例图

2.3.1 用例图基本元素

用例图包括:

  • 边界:一个泛泛的概念,在图中用一个方框表示
  • 参与者:Actor
  • 用例:Usecase
  • 关系:关联关系

2.3.2 用例图中的关系

  • 参与者用例:关联关系,实线表示
  • 用例用例
    • include包含:ATM系统输入密码
    • extend扩展:ATM是否要打印单据
    • 泛化:下订单与网上下订单(泛泛的概念与具体的概念)

  • 参与者参与者(两个小人之间:买家与顾客、销售代理):泛化关系,实线+空心箭头

2.4 用例描述

仅有用例图还不够,还需要详尽的文字描述!这就是用例描述(Usecase description)。

用例描述包括:

  • 主事件流:一切正常时的动作序列
  • 异常事件或可选事件流:主事件流的每一步都有可能出现异常,此处描述异常情况的处理

用例描述的格式

  • 总述(Summary),这个用例大概是什么功能
  • 参与者列表(Actor List),这个用例涉及到哪些参与者
  • 前置条件(Pre-condition),这个用例要想运行,一定要满足一些条件。TAM取钱,需要网络要通,ATM里要有钱
  • 描述(Description),怎么取钱,第一步,插卡,第二步,系统提示,第三步,输入密码,第四步,验证密码等等
  • 后置条件(Post-condition),用例执行完后,系统应该处于哪种状态,取钱的后置条件,取到了真的钱,同时银行账户要扣掉对应的钱,不能多扣也不能少扣
  • 异常情况(Exception),密码输错,余额不足,取的钱没吐出来

3 用例模型案例:POS系统

用例图

用例描述

用例:处理销售

  • 总述(Summary):完成一笔日常销售的业务处理
  • 参与者列表(Actor List):顾客、收银员、财务子系、税金计算器…
  • 前置条件(Pre-condition):收银员必须经过确认和认证
  • 描述(Description):
    • 1)顾客s携带所购商品或服务到收银台通过POS机付款
    • 2)收银员开始一次新的销售交易
    • 3)收银员输入商品条码
    • 4)系统记录出售的商品,显示品名、价格、数量
    • 重复第3~4步,直到输入结束
    • 5)系统显示应付总额
    • 6)顾客付钱,系统处理支付
    • 7)系统记录完整的销售信息,打印票据
    • 8)顾客携带商品和票价离开,销售结束
  • 后置条件(Post-condition):
    • 系统完整记录该笔销售业务的信息
    • 系统正确协同其它子系统,确保数据一致性
  • 异常情况(Exception):
    • 3a:无效商品ID,收银员手工输入,或取消该商品
    • 3b:顾客要求删除某项已输入的商品,需要经理授权,并删除商品
    • 6a:顾客信用卡不足部分,需要现金支付,请经理授权,并接受现金

4 总结

本篇介绍了UML中的用例模型,包括参与者、用例、用例图、用例图中的关系、用例描述等等。

http://www.xdnf.cn/news/12792.html

相关文章:

  • 【RK3588嵌入式图形编程】-Cairo- 变换、旋转、缩放、剪切
  • C++基础进阶:函数、内联函数与Lambda函数详解
  • 开源项目实战学习之YOLO11:12.8 ultralytics-models-utils.py
  • 分布式锁实战:Redisson vs. Redis 原生指令的性能对比
  • 论文MR-SVD
  • [嵌入式AI从0开始到入土]18_Ascend C算子开发环境(S5赛季)
  • 大模型在蛛网膜下腔出血预测与诊疗方案制定中的应用研究
  • 从零开始学Flink:揭开实时计算的神秘面纱
  • jieba实现和用RNN实现中文分词的区别
  • Git配置代理
  • LinuxSamba服务器配置篇
  • 在uniCloud云对象中定义dbJQL的便捷方法
  • MCP是啥?技术原理是什么?Windows系统配置MCP,Cursor使用MCP
  • 【计算机网络】三报文握手建立TCP连接
  • 第三章支线三 ·异步幻境 · 时间之缝的挑战
  • 《算法复杂度:数据结构世界里的“速度与激情”》
  • 深入理解 Spring Cache 及其核心注解
  • 【明日方舟 × 红黑树】干员调度如何不掉线?算法工程的平衡魔法全揭秘!
  • 第11篇:数据库中间件系统可配置化设计与动态规则加载机制
  • 小数据,大智慧:如何用有限数据玩转机器学习训练?
  • 嵌入式学习--江协stm32day5
  • C 语言数组指针与指针数组深度剖析:一道 VIP 笔试题引发的思考 随笔#2
  • 量子计算导论课程设计 之 PennyLane环境搭建
  • LLMs之RLVR:《Absolute Zero: Reinforced Self-play Reasoning with Zero Data》翻译与解读
  • csharp基础....
  • QT的工程文件.pro文件
  • 软件更新机制的测试要点与稳定性提升
  • <3>-MySQL表的操作
  • Java多线程从入门到精通
  • UML活动图与泳道图