需求分析是介于系统分析和软件设计阶段之间的桥梁。用户需求是软件项目成败的关键。
需求工程
应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统所有外部特征的学科。
需求开发
- 需求获取:了解用户需要系统完成的任务
- 需求分析:对要解决的问题进行详细分析
- 规格说明:编写需求规格说明书(SRS)
- 需求验证:确保需求准确完整
需求管理
- 变更管理:控制需求变更
- 需求跟踪:跟踪满足需求的地方
软件需求层次 重点
- 业务需求:组织或客户高层次目标(Vision & Scope 文档)
- 用户需求:用户目标或系统必须完成的任务(用例、场景描述)
- 功能需求:开发人员必须在产品中实现的功能
- 非功能性需求:质量属性、约束等
需求获取方法
- 访谈和调研:了解系统需求、市场调查、访问用户和领域专家
- 专题讨论会:通过协调讨论和群体决策达成共识
- 头脑风暴:无限制自由联想和讨论,产生新观念
- 场景串联:用事件触发描述情景
需求分析建模方法
- 用例分析方法(UML):用例图 + 用例描述,识别 Actor 和 Use case
- 原型分析方法:快速构造原型,逐步完善
- 结构化分析方法:数据流图(DFD)+ 数据字典(DD)
需求规格说明书(SRS)
需求分析完成标志,使双方对软件初始规定有共同理解。
- 描述 ” 做什么 ” 而不是 ” 怎样实现 ”
- 包括:引言、系统定义、应用环境、功能规格、性能需求、产品提交、实现约束、质量描述
- SRS 是 任务分解结构WBS 分解范围、成本计划 进行规模估算、质量计划 制定验收标准的重要输入。
- 经批准的需求会进入 配置管理计划 的需求基线;需求变更需要通过变更控制,避免 核心计划执行与控制 中的范围蔓延。