(大二上)软件需求工程笔记+考点+题目
作者:互联网
软件需求工程笔记
第1.5讲
面对对象主要由***对象、类、继承、通信***四个概念构成
UML
-
统一建模语言(UML)是基于面向对象的***可视化***的通用(General)建模语言
-
UML业务建模用***业务用例模型***和***业务对象模型***两个模型来描述现实:
-
UML主要由***用例图***、类图、状态图、***顺序图(时序图)***、***活动图***组成
1.用例图
Jacobson(雅各布森)提出
用于***描述系统的功能需求***
用例图由***执行者(Actor)***、***用例(Use Case)***、***执行者和用例的关系***和***用例之间的关系***组成
(1)执行者
执行者可以是人,也可以是一个***外界系统***
用例总是由执行者***启动***的
(2)用例
系统执行的一系列***动作(功能)***,用***椭圆***符号表示
(3)用例间的关系
关系分为三种:泛化、***使用(包含)***、扩展
泛化(细的指向广的) 包含(从ABC中提取D,指向D) 扩展(可选的分支,可选指向主干)
包含关系的误用
2.类图
类图(Class Diagram)包含了一组***类***以及***他们之间的关系***
类由***类名***、属性、***方法***组成
类间的关系有***关联***、聚集、泛化、依赖
(1)关联:类之间特定的对应关系 (就一条线)
(2)聚集:表示***整体和部分***关系 (菱形)
(3)泛化:表示类之间的一般与特殊关系,即***继承***关系 (三角形)
(4)依赖:表示两个或多个类之间的***调用***关系 (虚线)
3.状态图
状态图包含四种状态:初态、终态、中间状态、复合状态
活动必须包含***三个标准事件***:
(1)entry:进入该状态时要做什么
(2)do:该状态要做什么
(3)exit:退出该状态要做什么
一个对象的状态的变迁称为***状态迁移***。(往往由***事件***引起)
5.活动图
活动图描述了系统中各种活动的***执行的顺序***
构成活动图的元素:活动、转移、对象流、***泳道***等
(1)活动:活动用圆角框表示,标注活动名
其他图符
(2)转移:转移描述活动之间的关系
转移用带箭头的直线表示
(3)泳道(框框):泳道进一步描述完成活动的对象,并聚合一组活动
活动图的泳道代表***一组对象***
泳道也是一种分组机制
(4)对象流:活动图中可以出现对象,对象作为活动的输入/输出用虚箭头表示
6.顺序图
着重体现对象间***消息传递的时间顺序***
顺序图存在两个轴:水平轴表示一组对象,垂直轴表示时间。
顺序图组成要素:对象、生命线、激活、消息
第2讲
项目启动时要考虑的问题:愿景、涉众、投入、风险、可行
1.愿景
愿景描述项目的***核心价值***
愿景必须来自“老大” (开发部的负责人不是老大,老大是甲方)
愿景必须指出***度量指标***,没有度量指标的目标没有意义。
度量聚焦于价值
度量指标还是***定量***(增加,提高,减少,缩短)的,不能是定性的
指标可能是冲突的
2.涉众
同一件事情,不同的利益视角。
需求从涉众利益的交锋中得来。
探索系统需求就是探索涉众利益的平衡点。
客户是最大的涉众
没有用户的系统也有涉众(给别的系统服务)
系统需求(易变)
业务需求(涉众利益)(不变)
业务建模流程
业务建模的目的:描述现实,帮助发现需求
(1)区分业务单元与业务实体
业务单元是一个组织或人群
业务单元是淘宝网公司及内部的人员,业务实体是淘宝网站。
(2)区分业务执行者和业务工人
业务执行者(系统外,顾客)
业务工人(业务内,工人)
(3)业务用例:
业务用例只针对业务执行者
内部活动不是业务用例
(4)用例和功能:
用例是使用者的目标、愿望、想做的事。
功能是脱离使用者的愿望而存在的(为了完成用例而存在的)
用例尽量不要用CRUD(实在要用写一起,如对数据进行操作)
第3讲
活动图:活动图不仅能够表达***顺序流程控制***还能够表达***并发流程控制***
序列图:序列图能看到***一个单元的总体责任***。
(5)业务对象模型:
是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。
业务对象模型从业务角色内部的观点定义了业务用例
它注重业务中承担的角色及其当前职责。
第4讲
需求文档(编写步骤):
识别系统执行者
识别系统用例
书写系统用例文档
通过关系整理用例
用例的排序和分包
1.识别系统执行者
系统执行者:在系统之外,透过系统边界与系统进行***有意义交互的任何人或系统***
业务执行者:抛开计算机系统,没有这些系统业务人员也客观存在。
任何事物都可作为系统执行者
时间也可以是系统执行者(自动发生的事件)
问题:
业务执行者一定是系统执行者 ×
系统执行者一定是业务工人 ×
系统执行者一定要和系统交互 √
系统的涉众一定是系统的执行者 ×
监狱系统的执行者(和它有箭头的):监狱管理员、数码相机、指纹识别系统、医护人员
有多少个执行者就代表有多少个接口
(有箭头=有接口)
2.识别系统用例
不是完全相同的用例要拆分
第5讲
3.书写系统用例文档
前置条件需要能被系统检测到
前置条件必须是系统在用例开始前能检测到的
用例平衡涉众之间的利益
基本路径:用户最想看到、最关心的路径
把基本路径单独分离,凸显用例的核心价值
书写用例文档:
1.说人话,用户可观测的,看得懂的,不要技术性方面的(数据库方面不行)
2.使用主动语句
3.句子必须以执行者或系统作为主语
4.遵循四部曲
5.基本路径和扩展路径分开(如果……如果……)
6.不用涉及界面细节 (下拉框、点击什么按钮)
7.不要越界(提到系统之外的人)
8.不要假想系统不能负责的事情(收银系统:用户付款)
补充约束:字段列表、业务规则、非功能需求、设计约束
可以直接放在用例中 ,也可以单独放在另外的文档,从用例文档中指向
1.字段列表
2.业务规则
业务规则!=实现算法
警惕误把设计当成规则
前排涉众能否理解、验证。若能,就是需求
3.非功能需求:可用性、可靠性、性能
非功能需求常常是激烈竞争的决胜点
可用性:
可靠性:
MTBF:平均故障间隔时间(越大越好)
MTTR:平均维护时间(越小越好)
性能:
第6讲
4.通过关系整理用例
识别用例关系:扩展、包含(使用)、泛化
扩展:分离扩展路径(细分用例) (例子中1.2是可选项)
包含:提取公共步骤,便于复用 (例子中是从AB中提取C,箭头指向C)
泛化:同一业务目的的不同技术实现
用例图是静态的,不要添加顺序箭头
5.用例的排序和分包
用例的排序
用例的分包
按执行者分包、按主题分包、按开发团队分包、按发布情况分包
包:把语义上相近的可能一起变更的模型元素组织在同一个包中
包的依赖联系同样是用一条虚箭线表示,虚箭线从依赖包(源)指向独立包(目标)
第7讲
调研需求:需求调研对象、需求调研内容、需求调研方法、调研结果管理
第8讲
考点大纲
-
软件需求
- 需求的意义、定义、层次
-
产品经历/需求分析师
-
用例
- 业务用例、系统用例
-
涉众
- 视角、利益
-
执行者
- 业务执行者、系统执行者
-
愿景/产品前景、业务单元、业务工人、业务实体
-
敏捷开发
- 宣言、原则
- 用户故事
-
用例(一个中心)
- 执行者的识别、用例的识别、用例图、用例文档
- Chapter 5,6,7,8,9,10
-
模型(几个基本点)
- 序列图、活动图、状态图、类图
- 每种模型图的结点和连接线代表什么
- Chapter 12
-
质量属性/质量需求/非功能性需求
- 性能、可靠性、可用性
- Chapter 14
-
需求获取、需求调研、需求描述、需求变更
- Chapter 7,20,28
题目
1. 面向对象主要有哪四个概念构成?
A. 活动
B. 状态
C. 对象
D. 类
E. 时序
F. 继承
G. 通信
答案:CDFG
2. 以下哪些关于对象的描述是正确的?
A. 是客观世界中的一个实体
B. 在计算机中是可理解的、可操纵的、具有一定属性和行为的
C. 一个可标识的存储区域
D. 类的实例
答案:ABCD
3. 以下哪些描述的是类?
答案:ACD
4. UML中类之间的关系有?
A. 同步
B. 聚集
C. 关联
D. 泛化
E. 依赖
答案:BCDE
5. 下图描述的是UML类图中的哪种关系?
A. 聚集
B. 关联
C. 泛化
D. 依赖
答案:D
6. 状态迁移通常是由______引起的?
A. 动作
B. 事件
C. 活动
D. 对象
答案:B
7. 活动图的泳道代表的是________?
A. 一组对象
B. 一组活动
C. 一组状态
答案:A
8. 在时序图中,当调用者发出消息后不用等待消息的返回即可继续执行自己的操作,这种消息称为_______?
A. 简单消息
B. 同步消息
C. 返回消息
D. 异步消息
答案:D
9. 以下哪类需求相对而言,更容易发生改变?
A. 系统需求
B. 用户需求
答案:A
10. 业务建模步骤的正确顺序?
A. 识别业务执行者
B. 建立对象模型
C. 选定业务单元
D. 详述业务用例
E. 识别业务用例
答案:CAEDB
11. 以下哪些是业务用例?
A. 输入密码
B. 三次错误吞没卡片
C. 挂失卡片
D. 验证密码
E. 取钱
答案:CE
12. 判断对错(业务执行者和系统执行者)
业务执行者一定是系统执行者 ×
系统执行者一定是业务工人 ×
系统执行者一定要和系统交互 √
系统的涉众一定是系统的执行者 ×
标签:需求,系统,执行者,笔记,业务,用例,考点,涉众,大二 来源: https://blog.csdn.net/Yooooooga/article/details/122203120