01.用例图

用例图的4组成

①参与者(Actor)、用例(Use Case)、关系、系统

(一)参与者

  • 参与者是系统外部的一个实体,它以某种方式参与用例的执行过程
  • 参与者可以是人,也可以是事物,也可以是时间、气压、温度等环境因素或者其他系统等
  • 它在系统之外,与系统直接交互,可以用一个群体概念给参与者命名,反应该参与者的身份和行为(例如用户、管理员等)

(二)用例

  • 用例代表系统某项完整的功能,是动作步骤的集合
  • 系统的功能是通过参与者使用用例来实现的

(三)关系

  • 用例与参与者之间的关联关系
  • 参与者之间的泛化关系
  • 用例之间的包含关系扩展关系泛化关系
表达关系的符号
  • 关联关系(实线,带箭头)

  • 泛化关系(实线,空心箭头,指向功能少的一方)

  • 包含关系(虚线,实心箭头,《include》,箭头指向被包含的一方)(一定会发生)

    该用例 执行时 一定会发生 所指向用例

  • 扩展关系(虚线,实心箭头,《extend》,箭头指向扩展的一方)(可能会发生)

    该用例 可能会在 指向用例执行时 发生

泛化关系

用例与用例之间的泛化关系,通常表示同一业务目的(父用例)的不同技术实现(各个子用例)[子用例指向父用例]

用户与用户之间的泛化关系,(指着谁就拥有谁的用例)

(四)系统

系统是指一个软件系统,一项业务,一个商务活动或一台机器等

系统功能通过用例来表现(所有用例共同构成了整个系统)

其他

参与者+用例 构成主谓宾结构

参与者一定是用例的主语


02.用例文档

重点内容

  • 用例描述:简单描述用例的主要作用

  • 前置条件:参与者启动这个用例之前必须完成的所有用例

  • 后置条件:执行这个用例对系统所做的改变

  • 部署约束:即描述访问这个用例的所有约束

  • 事件流:描述参与者在完成用例的过程中发生的一系列交互行为,事件流有以下三种

    (1)基本事件流:

    (2)可选事件流:描述由参与者引起的变更

    (3)异常事件:描述由系统引起的变更

简化的用例文档

  • 用例编号
  • 用例名
  • 用例描述
  • 参与者
  • 前置条件
  • 后置条件
  • 事件路径
  • 扩展点
  • 补充说明

注意事项

前置条件:必须是系统在用例开始之前能检测到的。

后置条件:用例执行后对系统产生的所有改变

事件路径:书写尽量使用主动语句,以参与者或者系统为主语,不要涉及软件实现的细节(例如选择菜单、单击按钮或者修改数据库等)

事件路径的扩展点:一般是由参与者或系统引起的变更而形成的事件流


03.活动图

活动图用于描述系统、子系统、用例和程序模块中的工作流,帮助理解系统高层活动的执行过程

主要组件

建模活动图步骤

  • 定义活动图范围,确定开始和结束状态

  • 添加活动,建模主路径

  • 寻找分支和并行情况,建模扩展路径

  • 根据需要划分“游泳道”

    游泳道:将活动图的活动状态分组,每一组表示负责那些活动的业务组织

【软件工程与UML】第2章 用例图、用例文档、活动图 -- 系统的功能需求建模的更多相关文章

  1. 2018.1.4 UML 第三章 用例图

    第三章 用例图 (1)参与者 是指系统以外的需要使用系统或与系统交互的外部实体,吧阔人.设备.外部系统等. (2)参与者之间的关系 泛化关系的含义是参与者的共同行为提取出来表示成通用行为,并描述成超类 ...

  2. uml活动图

    uml是程序员需要掌握一个重要工具,特别在研究hadoop(http://www.iigrowing.cn/hadoop)系统中,有很多相关的uml图形需要绘制,为了方便大家了解uml,在网络上找了些 ...

  3. 重构之字段改名 UML行为图 用例图 时序图&协作图 状态图&活动图 依恋情结

    简单的使用一下字段改名 为什么使用字段改名: ​ 你在一个软件上做的工作越多,对这个软件的数据的理解就越深刻,你需要把这些理解融入到代码中.利用名字的解释作用,让代码更容易被理解. 如何找到该变量的所 ...

  4. 用rose画UML图(用例图,活动图)

    用rose画UML图(用例图,活动图) 首先,安装rose2003,电脑从win8升到win10以后,发现win10并不支持rose2003的安装,换了rose2007以后,发现也不可以. 解决途径: ...

  5. UML基础系列:用例图

    1. 概述 用例图(Use Case Diagram)描述“用户.需求.系统功能单元”之间的关系,是参与者所能观察和使用到的系统功能模型图. 用例图用于需求分析阶段 用例图包含6个基本元素:参与者(A ...

  6. UML 用例图,时序图,活动图的定义以及区别

    1.用例图,时序图,活动图的定义 1.用例图:  用例图描述了系统提供的一个功能单元.用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的"角色" ...

  7. (转)UML实践----用例图、类图、对象图、顺序图、协作图、状态图、活动图、组件图、配置图

    面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML ...

  8. 产品需求文档写作方法(三)用例文档(UML用例图、流程图)

    在产品和技术领域里都有UML的技能知识,而对于产品人员的UML则更多的是指用例图,也就是我所称呼的用户流程图.在讲PRD文档写作的第二篇文章里,我提到了用户流程图的制作,实际上用户流程图是我在产品规则 ...

  9. UML uml高级知识之用例图

    uml高级知识之用例图 建模工具推荐使用 visio2010: include:选择菜单栏中的'UML'->单击’构造型‘->新建->构造型那里输入include->基类那里选 ...

  10. DataUml Design 介绍10 - DataUML 1.4版本功能(增加UML活动图和用例图)

    DataUml Design 1.4版本正式发布 1.解决软件自动关闭的问题 2.增加UML活动图和用例图功能 详细介绍稍后继续...........................

随机推荐

  1. iOS 数据持久化方案-Realm的使用小结

    一.Realm介绍 1.1.Realm是一个跨平台移动数据库引擎,支持iOS.OS X(Objective-C和Swift)以及Android,核心数据引擎C++打造,并不是建立在SQLite之上的O ...

  2. 前端 export default 和 export const name 的区别?

    export default 是默认导出export const 是命名导出 在一个vue文件中export const可以有多个,但是export default只有且仅有一个,{}表示导入非默认变 ...

  3. threejs - js库 gui 的使用 调试开发3D效果

    // 导入 threejs import * as THREE from "three"; import { OrbitControls } from "three/ex ...

  4. FirewallD is not running 原因与解决方法

    解决方法关于linux系统防火墙: centos5.centos6.redhat6系统自带的是iptables防火墙.centos7.redhat7自带firewall防火墙.ubuntu系统使用的是 ...

  5. 4.flask 源码解析:上下文

    目录 一.flask 源码解析:上下文 1.1 上下文(application context 和 request context) 1.2 Update: 为什么要用 LocalProxy Flas ...

  6. Centos7下非lvm的分区扩容

    Centos7下非lvm的分区扩容(重要) 前言:一般在生产环境中,如果需要使用一个分区保存大量的文件,建议的做法是在虚拟化环境中增加一块单独的硬盘,挂载一个单独的分区,比如 /data 上图我们可以 ...

  7. 6.19 成都站云原生 Meetup,KubeSphere 和 APISIX 等你来!

    以容器技术和容器编排为基础的云原生应用,被越来越多的企业用户接受和使用,并且在生产环境中使用容器技术的比例逐年增加.KubeSphere 作为一款面向应用的开源容器混合云,经过 3 年的发展和 10 ...

  8. 在 Ubuntu 22.04 上安装 KubeSphere 实战教程

    作者:老 Z,中电信数智科技有限公司山东分公司运维架构师,云原生爱好者,目前专注于云原生运维,云原生领域技术栈涉及 Kubernetes.KubeSphere.DevOps.OpenStack.Ans ...

  9. sqluldr2linux64.bin命令行下的Oracle数据导出工具

    sqluldr2.bin是Oracle数据库下,数据导出的工具 (1)query导出 ./sqluldr2.bin user=用户/密码@主机IP/数据库名  query="select  ...

  10. pandas的一些基本操作

    Pandas 是一个开源的数据分析和操作库,它是 Python 编程语言的一个扩展.Pandas 提供了快速.灵活和表达能力强的数据结构,旨在使数据清洗和分析工作变得更加简单易行. 1.为什么要学习p ...