需求工程考试总结
1.需求问题产生的原因
- 非技术性和社会性因素重视不足
- 传统需求分析方法的缺陷
- 软件规模的日益扩大
- 需求问题的高代价性
2.*需求工程的定义
利用工程化的手段进行需求处理,以保证需求处理的正确进行。它是所有需求处理活动的综合,它收集信息、分析问题、整合观点、记录需求并验证正确性。
3.需求工程的基本活动
- 需求开发
- 需求获取
- 需求分析
- 需求规格说明
- 需求验证
- 需求管理
- 跟踪需求变更
- 确保需求正确实现
4.需求工程的复杂性
- 处理范围广泛
- 涉及诸多参与方
- 处理内容多样
- 处理活动相交织
- 处理结果要求严苛
5.需求工程师具备的技能
- 交流技能
- 观察技能
- 抽象分析与问题解决技能
- 写作技能
- 关系协调和团队工作技能
6.*需求的定义
- 用户为了解决问题或达到某些目标所需要的条件或能力
- 系统为了满足合同标准、规范所规定的要求而具备的条件或能力
解决问题,改善现实,满足用户期望的条件与能力就是需求。
7.*问题域与解系统
- 问题域:解决问题必须设计的事件和事物
- 解系统:软件系统通过影响问题域帮助人们解决问题
- 问题域特性: 问题域的背景信息(用户关注)
- 解系统核心: 解决方案通过计算机实现(开发者关注),解决方案被称为软件系统的需求规格说明
8.*模拟与共享
模拟:一方仿制另一方的信息。
解系统部分模拟了问题域,将这种模拟性称为共享现象。
9.需求说明文档的定义
规定系统或部件的需求的文档,包括功能需求、性能需求、接口需求、设计需求和开发标准。
10.需求工程的主要工作
- 进行需求开发
- 研究问题背景
- 构建解系统
11.*需求的不同抽象层次
- 业务需求: 抽象层次最高的需求,是系统建立的战略出发点,表现为高层次的目标,它描述了组织为什么要开发系统。
- 用户需求: 执行实际工作的用户对系统所能完成的具体任务的期望,描述了系统能够帮助用户做些什么。
- 系统级需求: 适合软件开发者的层次,它关注软件系统的行为,尤其是系统与外界的交互。
12.*软件需求分类
- 功能需求:系统和环境之间的行为交互
- 性能需求:系统的性能特征
- 质量属性:系统的可靠性和可维护性
- 对外接口:系统与其它系统之间建立的接口
- 约束:系统构造时要遵循的约束
13.优秀需求的特性
- 完备性、正确性、可行性
- 必要性、无歧义、可验证
14.*需求工程的过程
需求获取、需求分析、需求规格说明、需求验证、需求管理
-
需求获取:
收集背景资料、获取问题、识别涉众、选择获取方法、记录结果
-
*需求分析:
1.背景分析 2.问题分析、需求建模、细化需求、确定优先级、需求协商
-
需求规格说明:
定制文档模版、编写文档
-
需求验证:
执行验证、问题修正
-
需求管理:
建立需求基线、跟踪需求、控制变更
15.需求获取的困难
- 用户和开发人员背景、立场不同
- 用户缺乏概括性表达
- 用户认知困境
- 缺乏用户参与
16.*获取信息的内容
- 需求:需求时获取的主要对象,是系统期望达到的目标
- 问题域描述:用来承载和解释需求的问题域特性,主要为业务情况
- 环境与约束:一种特殊的问题域特性,限定了解系统部署的环境和条件
17.*获取信息的来源
- 涉众: 用户、客户、领域专家、市场人员
- 硬数据: 定量文档和定性文档
- 相关产品: 原有系统、竞争产品和协作产品
- 重要文档: 相关产品的文档
- 相关技术标准: 相关规章制度
18.*获取信息的方法
- 传统方法:问卷调查、面谈、文档分析、文档检查、需求分离
- 集体获取方法:头脑风暴、专题讨论会
- 原型:在需求模糊情况下有效
- 模型驱动方法:面向目标方法、基于场景、基于用例方法
- 认知方法:任务分析、协议分析
- 基于上下文的方法:观察、民族志、话语分析
19.*获取信息的过程
-
注意事项
整体上制定组织方案、维护前景和范围、接收需求的不稳定性、控制探索性工作
-
防止遗漏需求
-
结束获取
20.问题分析的过程
- 获取问题:收集背景资料、涉众
- 明确问题:对问题达成共识
- 发现业务需求
- 定义问题解决方案及系统特性
21.*目标分析的过程
定义: 面向目标的需求工程方法,以此为基础开展需求活动。
过程:高层目标获取、目标精化、目标实现
目标主体: 系统环境的主动部分,可以是人、软件、硬件
目标分类: 功能目标(满足型目标、信息型目标)、非功能目标(安全目标、性能目标、可用性目标)
22.*业务过程分析
- 常用节点与流
- 动作节点、控制节点
- 控制流、对象流
- 令牌平衡
- 信号与事件机制
- 分区
- 层次结构与图简化元素
- 更多的复杂活动图元素
23.*定义系统边界
-
结构化方法—上下文图
注重系统与环境的输入/输出交流
-
面向对象方法—系统用例图
注重系统与环境的功能性交互
过程:
- 问题分析与系统边界定义
- 目标分析与系统边界定义
- 业务过程分析与系统边界定义
24.*涉众的概念
所有对软件系统的开发和应用具有发言权和决定权的人称为涉众。
25.*涉众分析的过程
目标与项目范围、涉众、问题域》涉众识别》涉众描述、涉众代表选择
(p147图)
26.涉众分析的任务
使用目标模型进行涉众分析
- 涉众识别
- 涉众描述
- 涉众评估
- 涉众代表选择
- 制定策略
27.*涉众评估
- 优先级评估
- 风险评估
- 共赢分析
28.*使用目标模型进行涉众分析
-
使用主体依赖模型描述涉众互动
目标依赖、软目标依赖、任务依赖、资源依赖
-
基于目标模型描述及评估涉众
29.*场景与用例
- 场景: 重点描述真实世界的特性,利用情景、行为者之间的交互来描述系统的使用
- 用例: 在系统和外部对象的交互中所执行的行为序列的描述
30.*面谈的概念和过程
面谈就是在需求获取活动中发生的需求工程师和用户之间的面对面会见,是一种问答模式,具有特定的直接会话。
过程:
- 前景和范围指导
- 准备面谈
- 主持面谈
- 整理面谈报告
31.*面谈问题的类型
- 开放式问题
- 封闭式问题
32.*面谈主体阶段的要求
- 保持礼貌倾听
- 控制面谈过程
- 保持面谈主题
- 使用探索式问题
- 观察被会见者
- 使用道具支持
33.面谈的类别
- 结构化面谈:通常被用来获取一些比较确定或者选择空间比较有限的信息
- 半结构化面谈:通常用来在一个基础框架下处理探索性的问题
- 非结构化面谈:主要被用来获取一些概要性和全局性的信息
34.*群体面谈
- 头脑风暴: 又叫自由讨论,一种特殊的群体面谈,目的是发现潜在需求,分为想法产生阶段和想法精简阶段
- 观察方法: 用户专心完成自己的工作,而且不需要向需求工程师解释自己的工作;需求工程是只通过观察用户的行为形成相关结论。
35.观察法
- 采样观察法、民族志(长期、侵入式的观察方法)
- 话语分析、协议分析、任务分析
36.*需求管理
- 维护需求基线:需求基线就是被明确和固定下来的需求集合,
- 跟踪需求:一种有效的控制手段,能够在涉众需求变化中协调系统的演化
- 控制变更:以可控、一致的方式进行需求基线中需求的变更处理
37.实体关系图的创建
- 依据充分描述信息的实体关系图创建
- 依据硬数据表单实体关系图创建
- 复杂情况下的实体关系图创建
38.实体关系图与过程模型的联系
- 功能/实体矩阵
- CRUD矩阵(创建、读取、更新、删除)
39.*建立领域模型的步骤
- 识别候选对象与类
- 确定概念类
- 建立类之间的关联
- 添加类的重要属性
评论区