需求分析是介于系统分析和软件设计阶段之间的桥梁。用户需求是软件项目成败的关键。

需求工程

应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统所有外部特征的学科。

需求开发

  • 需求获取:了解用户需要系统完成的任务
  • 需求分析:对要解决的问题进行详细分析
  • 规格说明:编写需求规格说明书(SRS)
  • 需求验证:确保需求准确完整

需求管理

  • 变更管理:控制需求变更
  • 需求跟踪:跟踪满足需求的地方

软件需求层次 重点

  1. 业务需求:组织或客户高层次目标(Vision & Scope 文档)
  2. 用户需求:用户目标或系统必须完成的任务(用例、场景描述)
  3. 功能需求:开发人员必须在产品中实现的功能
  4. 非功能性需求:质量属性、约束等

需求获取方法

  • 访谈和调研:了解系统需求、市场调查、访问用户和领域专家
  • 专题讨论会:通过协调讨论和群体决策达成共识
  • 头脑风暴:无限制自由联想和讨论,产生新观念
  • 场景串联:用事件触发描述情景

需求分析建模方法

  1. 用例分析方法(UML):用例图 + 用例描述,识别 Actor 和 Use case
  2. 原型分析方法:快速构造原型,逐步完善
  3. 结构化分析方法:数据流图(DFD)+ 数据字典(DD)

需求规格说明书(SRS)

需求分析完成标志,使双方对软件初始规定有共同理解。

  • 描述 ” 做什么 ” 而不是 ” 怎样实现 ”
  • 包括:引言、系统定义、应用环境、功能规格、性能需求、产品提交、实现约束、质量描述
  • SRS 是 任务分解结构WBS 分解范围、成本计划 进行规模估算、质量计划 制定验收标准的重要输入。
  • 经批准的需求会进入 配置管理计划 的需求基线;需求变更需要通过变更控制,避免 核心计划执行与控制 中的范围蔓延。

敏捷需求 重点

  • Product Backlog:产品想法列表,逐渐完善
  • Sprint Backlog:按迭代计划细化需求
  • User Stories:As a <用户>,I want <目标>,so that <原因>
  • INVEST 原则:Independent、Negotiable、Valuable、Estimatable、Small、Testable
  • MoSCoW 优先级:Must have、Should have、Could have、Want to have
  • 敏捷需求通过 Product Backlog 连接 任务分解结构WBS 的 Story 分解,并在 进度计划 的发布计划、迭代计划中逐步细化。