软件需求读书笔记_2006年4月18日 需求的开发与管理

  软件需求工程可以划分为需求开发和需求管理。
  软件需求工程的组成
  需求工程由需求开发和需求管理组成,需求开发是由获取、分析、编写规约、确认组成。

需求开发

  需求开发可进一步细分为获取(Elicitation)、分析(analysis)、规格说明(specification)和确认(Validation)。
  为软件和软件相关产品收集、评估和记录需求相关的所有活动,包括:

  • 确定产品将要面对的各类用户。
  • 从各类用户的代表处收集需求。
  • 了解用户的任务和目标,以及这些任务要实现的业务目标。
  • 分析从用户处得到的信息,将用户的任务目标与功能需求、非功能需求、业务规则、解决方案建议及其他无关信息区分开来。
  • 将顶层的需求分配到系统构架内定义好的软件组件中。
  • 了解各质量属性的相对重要性。
  • 协商需求的实现优先级。
  • 将收集的用户需求表述为书面的需求规格说明和模型。
  • 审阅需求文档,以确保在认识上与用户声明的需求相一致。应在开发小组接受需求之前解决所有分岐。

  迭代(iteration)是需求开发成功的关键。需求开发计划应包含多个周期,每个周期包括研究需求,细化高层需求以及请用户确认需求的正确性。这一过程很费时而且可能会遇到挫折,但却是定义软件新产品时消除不确定性所必需的过程。

需求管理

  需求管理的任务是“与客户就软件项目的需求达成并保持一致”。这种一致应体现在书面的需求规格说明和模型中。取得用户认可只满足了批准需求所需的一半条件,还必须让开发人员接受需求规格说明并同意在产品中加以实现。需求管理活动包括下列活动:

  • 定义需求基线(某一时刻,对特定版本中已达成一致的需求内容的描述)
  • 审查需求变更请求,评估其可能产生的影响以决定是否批准
  • 以可控的方式将批准的需求变更融入项目中
  • 保持项目计划与需求的同步
  • 估计需求变更的影响,在此基础上协商新的需求约定
  • 跟踪每项需求,找到与其对应的设计、源代码和测试用例(test case)
  • 在项目开发过程中,始终跟踪需求的状态和变更

  定义需求基线是需求开发与需求管理的分界。

posted on 2006年4月18日 14:37 由 dongwei

Comments