软件工程 个人学习笔记(第三章)
软件需求管理——用例建模
1、用例建模概念
1.1用例在需求管理过程中的作用
描述系统的功能性需求
- 关联干系人需要以及软件需求
- 确认于系统交互的人或对象(参与者)
- 定义系统的边界
- 捕捉和传达系统的理想行为(用例)
1.2用例模型的表示
- 文本描述
- 用例图
1.3 用例图的主要元素
- 参与者:
与系统交互的人或外部系统
与系统交互的硬件组件
关注的重点是所承担的“角色”
参与者的名要明确定义其角色
- 用例:
定义一个参与者要用到的系统功能
通过此刻为参与者提供有价值且可观测的结果
描述系统为实现参与者价值所开展的行为序列
对参与者与系统之间的交互活动进行建模
从特定的用户角度出发,是完整的,实现特定用户的事件流
- 关联:
用例图中用例与参与者之间的交互关系
用一条直线表示交互——关联
有箭头的关联指出是谁发起的交互
没有箭头则表明双方都可以放弃交互
- 场景:
场景是用例的实例
2、用例建模过程
2.1 构建用例模型的步骤
- 找到所有的参与者和用例
- 识别出参与者并做简单的描述
- 识别出用例并做简单的介绍
- 编写用例
- 给用例事件流程划分重要等级
- 按照重要程度排序详细描述事件流程
2.2 参与者
- 谁/什么使用系统?
- 谁/什么从系统中获取信息?
- 谁/什么向系统提供信息
- 公司的哪个部门会使用系统
- 谁/什么负责系统的维护
- 还有哪些其他的系统会使用系统
- 是否找全所有的参与者?是否对系统环境中的所有的角色进行了描述和建模?
- 每个参与者是否至少与一个用例发生了交互?
- 是否可以为每一个角色找到至少两个实例?
- 不同参与者与系统的交互是否一致扮演的角色是否相似?如果有,则应该要合并这些参与者作为同一个角色
2.3 用例
寻找用例
- 描述系统为参与者提供的服务/参与者如何与系统交互
- 基本策略:把自己当作actor,与设想中的系统进行交互。
- 每个参与者的目标是什么?
- 为什么参与者要使用这个系统?
- 参与者是否需要对系统中数据进行创建,存储,更改,删除或者读取的操作?为什么?
- 参与者是否需要将外部事件或发生的改变告知系统?
- 参与者是否需要找到系统内部发生的事件或改变?
- 系统是否能够应对业务中所有的正确行为与操作?
用例的命名
- 表面参与者的目标或者作用
- 使用主动语态:用动词起始
- 设计一系列操作流程( to-do list)
用例建模过程中的检查项
- 用例建模是为了表示系统的行为。通过模型可以很容易理解系统进行的操作
- 应该识别出所有的用例,用来表达所有的需求
- 系统的任何一个特性都可以找到对应的用例
- 用例模型并不包括多余的行为;所有的用例可以追溯到系统的功能性需求作为验证
- 去掉所有的CRUD类的用例
2.4用例建模的过程
用例图——>用例提纲——>用例详细规约
2.5 总结:Use Case模型的建立步骤
- 找出系统外部的参与者和外部系统,确定系统的边界和范围;
- 确定每一个参与者所期望的系统行为;
- 把这些系统行为命名为Use Case;
- 使用泛化、包含、扩展等关系处理系统行为的公共或变更部分;
- 编制每一个Use Case的脚本;
- 绘制Use Case图;
- 区分主事件流和异常情况的事件流,可以把表示异常情况的事件流作为单独的Use Case处理;
- 细化Use Case图,解决Use Case间的重复与冲突问题。
3、用例建模精讲
3.1设定系统边界
- 系统边界:一个系统所包含的所有系统c成分与系统以外各种事物的分界线
- 系统边界会对用例以及参与者的定义有所影响
- 方案一
- 方案二
- 方案三
3.2不要把用例定义成功能分解
如何避免功能性分解?
问题现象:
- 非常细小的用例
- 用例过多
- 没有实际价值的用例
- 通过底层操作进行命名
- “操作”+“对象”
- “功能”+“数据”
- 很难理解整体模型
修改思路:
- 寻找更大的应用场景
- 从一个用户的角度出发
3.3 何时使用包含关系?
- 当多个用例有共享行为时,使用包含关系
- 为共享行为单独创建用例,被相关用例“包含”
3.4 何时使用扩展关系?
- 一个用例与另一个用例近似,只有少许额外的活动
- 将代表普遍或基本行为的情况定义为一个用例
- 将特殊的、例外的部分定义为扩展用例
3.5 用例图中的主要图标
4、 建模工具介绍
4.1 系统建模工具的主要功能
- UML模型
- Web模型,例如Azure
- 数据库模型,例如Power Designer
- 用户自定义模型,例如Visio
4.12常用系统建模工具
软件工程 个人学习笔记(第三章)相关推荐
- 《Go语言圣经》学习笔记 第三章 基础数据类型
<Go语言圣经>学习笔记 第三章 基础数据类型 目录 整型 浮点数 复数 布尔型 字符串 常量 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记, ...
- 机器人导论(第四版)学习笔记——第三章
机器人导论(第四版)学习笔记--第三章 3 操作臂运动学 3.1 引言 3.2 连杆的描述 3.3 连杆连接的描述 3.4 连杆坐标系的定义 3.5 操作臂运动学 3.6 驱动空间.关节空间和笛卡尔空 ...
- 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第三章:简单控件
第 3 章 简单控件 本章介绍了App开发常见的几类简单控件的用法,主要包括:显示文字的文本视图.容纳视图的常用布局.响应点击的按钮控件.显示图片的图像视图等.然后结合本章所学的知识,演示了一个实战项 ...
- Win32学习笔记 第三章 HelloWin 选择自 villager 的 Blog
Win32学习笔记 作者: 姜学哲(netsail0@163.net) 教材: Windows程序设计(第五版)北京大学出版社 [美]Charles Petzold 著 北京博彦科技发展有限公司 ...
- ros2 Navigation 学习笔记 第三章(the construct 网站)
第三章 如何在环境中给机器人定位 序言 本章包括: 机器人定位的意义(即需要知道它对于环境中的位置和方向) 如何在ROS2中用AMCL定位 如何设置机器人的初始位置(手动.自动与使用ROS API) ...
- 信号与系统学习笔记 第三章
第三章 周期信号的傅里叶级数表示 下面将讨论信号与线性时不变系统的另一种表示,讨论的出发点仍是将信号表示成一组基本信号的线性组合.这是因为,将信号表示成基本信号的线性组合是有利的,如果基本信号具有一下 ...
- 仿生学导论学习笔记——第三章
第三章 仿生学基本要素 3.1 仿生需求 3.1.1 需求驱动 3.1.1.1 生存需求 3.1.1.2 健康需求 3.1.1.3 军事需求 3.1.1.4 发展需求 3.1.1.5 精神需求 3.1 ...
- 计算机网络学习笔记——第三章:数据链路层
目录 第三章:数据链路层 3.1 数据链路层功能概述 3.2 封装成帧和透明传输 3.3 差错控制 3.3.1 检错编码 3.3.2 纠错编码 3.4 流量控制与可靠传输机制 3.4.1 流量控制.可 ...
- JavaScript高级程序设计红宝书学习笔记第三章基本概念
第三章 基本概念 本章内容 语法 数据类型 操作符 语句 函数 3.1 语法 3.1.1 区分大小写,ECMAScript中的一切(变量.函数名和操作符)都区分大小写. 3.1.2 标识符 标识符:变 ...
- [吴功宜]计算机网络学习笔记--第三章 数据链路层
教材:计算机网络(第四版) 作者:吴功宜 吴英 出版社:清华大学 第三章 数据链路层 3.1 差错产生的原因与差错控制方法 物理线路:由传输介质与通信设备组成 设计数据链路层的主要目的:在有差错的物理 ...
最新文章
- 2020年第十五届全国大学生智能汽车竞赛浙江赛区比赛成绩分析
- windows下cd无法切换到指定目录下
- Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
- 【图像处理】RGB Bayer Color分析
- UVA - 12338 Anti-Rhyme Pairs(后缀数组)
- LeetCode 第 29 场双周赛(890/2259,前39.4%)
- PID控制器改进笔记之五:改进PID控制器之串级设定
- 外媒:华为或将在2月24日发布麒麟820 支持5G网络
- 自动驾驶车辆控制 最终项目作业 实现分析
- 向量交点坐标公式_高中数学必修1-5常用公式(定理)
- yytextview多种格式_YYText之图文混排
- 再见,996!程序员开源考公指南火了:三人已成功上岸!
- KNY三人组对YiSmile小程序的项目总结
- MIPI换EDP芯片-LT8911EXB芯片,商显行业新选择
- 【Bug解决】curl: (7) Failed connect to 192.168.159.133:8888; No route to host
- 优链时代入围Internet Deep 【2022元宇宙TOP500】榜!
- python篮球弹跳训练方法_业余篮球爱好者的弹跳训练全攻略(附6个月训练计划)...
- html网站一行代码改变灰黑色哀悼日风格
- Python通过图片识别实现连续点击
- html5图片与文字垂直对齐