需求分析
优秀需求的特性
- 完整性
每一个描述包含开发人员设计和实现这项功能需要的所有信息。 - 正确性
真实反映用户意图 - 精确性
需求的描述要具有可理解性,充分。包括必要的信息 - 可行性
在现有系统和环境已知条件和约束实现,必要时通过开发原型来验证 - 必要性
每一项需求都是必要的,满足用户业务需求所必需的,没有可以忽略的 - 无歧义
每一需求只有一种解释,在需求开发定义一个共同理解的词汇表 - 可验证
通过分析、检查、模拟、测试能判断需求是否被满足
文档
项目前景和范围文档、用户需求文档、需求规格说明文档
1. 项目前景和范围文档定义了系统的业务需求,明确了系统开发的努力方向和工作范围
2. 用户需求文档定义了系统的用户需求,以用户立场表达了对系统行为的期望
3. 需求规格说明文档系统规格说明和软件规格说明
系统规格说明定义整个系统的需求,软件需求、硬件需求、其他需求
软件规格说明定义软件需求
需求获取困难
- 用户和开发人员的背景不同,立场不同
- 知识理解的困难
- 默认知识现象
- 普通用户缺乏概括性、综合性表述能力
- 用户存在认知困境
- 用户越俎代庖
- 用户提出的不是需求,是解决方案
- 用户固执地坚持某些特征和功能
- 缺乏用户参与
- 用户数量太多,选择困难
- 用户认识不足,不愿参与
- 用户情绪抵制,消极参与
- 没有明确的用户
获取信息的来源
-
涉众
- 用户
- 客户
- 领域专家
- 市场人员、销售人员
-
硬数据
- 登记表格、单据、报表 定量
- 备忘录、日志 定性
- 相关产品
- 原有系统
- 竞争产品
- 协作产品
-
重要文档
- 原有系统的规格说明
- 竞争产品的规格说明
- 协作产品的规格说明
- 客户的需求文档、委托开发的规格说明、招标书
-
相关技术标准和法规
- 相关法律、法规
- 行业规范、行业标准
- 领域参考模型
项目前景与范围文档
- 业务需求
1.1 应用背景
1.2 业务机遇
1.3 业务目标
1.4 业务风险- 项目前景
2.1 前景概述
2.2 主要特性
2.3 假设与依赖- 项目范围
3.1 第一版范围
3.2 后续版本范围
3.3 限制与排除- 项目环境
4.1 操作环境
4.2 涉众
4.3 项目属性词汇表
参考资料
附录
面谈结构
- 金字塔结构
主动情况,被会见者需要对话题进行预热
被动情况,会见者发现自己事先对事实的确认存在较大偏差或被会见者不情愿讨论某个话题 - 漏斗结构
主动情况,开始面谈提供容易的途径
被动情况,被会见者对话题有情绪或会见者事先对事实了解不多
好处,用这种方式得到很多详细信息, - 菱形结构
有金字塔结构和漏斗结构好处,缺点是时间比较长
面谈优点
- 面谈的开展条件较为简单,经济成本较低
- 能获得包括事实、问题、被会见者观点、被会见者态度和被会见者信仰等各种信息类型在内的广泛内容
- 通过面谈,需求工程师可以和涉众建立相互之间的友好关系
- 通过参与面谈,被会见者会产生一种主动为项目作出贡献的感觉,提高涉众的项目参与热情
面谈的缺点和局限性
- 面谈比较耗时,时间成本较高
- 在被会见者地理分散的情况下往往难以实现
- 面谈参与者的记忆和交流能力对结果影响较大,尤其是面谈的成功较高地依赖于需求工程师的人际交流 能力
- 交谈中常见的概念结构不同、模糊化表述、默认知识、潜在知识和态度偏见等各种问题在面谈中都不可避免,进而影响面谈的效果,导致产生不充分的、不相关的或者错误的数据
- 在会见者不了解被会见者认知结构的情况下,面谈不可能取得令人满意的效果