第四章 软件需求管理
一、需求获取
需求获取是开发者、用户之间为了定义新系统而进行的交流。需求获取是需求分析的前提,需求获取是获得系统必要的特征,或者是获得用户能接受的、系统必须满足的约束。
1.1 需求内容
- 问题范围
- 功能需求
- 应用环境
- 假设条件
1.2 阐述规则
- 应该阐明“做什么”而不是“怎样做”
- 应该描述用户需求而不是提出解决问题的方法
- 应该指出哪些是系统必要的属性哪些是可选的属性
- 应该避免对设计策略施加过多的约束
- 也不要描述系统的内部结构,否则会限制系统实现的灵活性
1.3 获取方式
- 用户面谈
- 需求专题研讨会
- 问卷调查
- 现场观察
- 原型化方法
- 基于用例的方法
1.4 获取步骤
- 开发高层的业务模型
- 定义项目范围和高层需求
- 识别用户类和用户代表
- 获取具体的需求
- 确定目标系统的业务工作流
二 、需求分析
需求分析是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。
2.1 内容
- 功能性需求
- 必须实现的功能
- 软件需求的主体
- 形成软件需求规格说明书
- 非功能性需求
- 性能要求
- 运行环境要求
- 遵循的相关标准、规范
- 用户界面设计的具体细节
- 未来可能的扩充方案
- 设计约束
- 也称作设计限制条件
- 例如要求开发必须使用Oracle数据库
- 例如必须基于Linux环境等
2.2 过程
- 问题识别
- 从系统角度来理解软件
- 功能需求(做什么)
- 性能需求(要达到什么指标)
- 环境需求(如机型、操作系统等)
- 可靠性需求(不发生故障的概率)
- 安全保密需求
- 用户界面需求
- 资源使用需求(软件运行时所需的内存、CPU等)
- 软件成本消耗与进度需求
- 预先估计以后系统可能达到的目标。
- 分析与综合
- 逐步细化所有的软件功能
- 找出系统各元素间的联系、接口特性和设计上的限制
- 剔除不合理部分,增加需要部分
- 最后综合成系统的解决方案,给出开发的系统的详细逻辑模型(做什么的模型)
- 制定规格说明书
- 需求分析阶段的输出成果
- 评审
- 对功能的正确性、完整性和清晰性,以及其它需求给予评价。
- 评审通过才可进行下一阶段的工作,否则重新进行需求分析。
2.3 方法
- 功能分解法
- 结构化分析方法
- 信息建模方法
- 面向对象的分析方法
参考资料