3.5.1.3 需求跟踪
  当某项业务需求发生变化时,可能会影响到系统需求和功能需求的变化,并且连带地影响到设计、测试、实现、项目计划等各方面的变化,从而构成了一个跟踪能力联系链,下图显示了许多能在项目中定义的直接跟踪能力联系链。

  需求跟踪包括编制每个需求同系统元素之间的联系文档,这些元素包括别的需求、体系结构、其他设计部件、源代码模块、测试、帮助文件、文档等,从而建立了需求的跟踪联系链。当需求发生变化时,使用需求跟踪可以确保不忽略每个受到影响的系统元素,实现需求变更的正确实施,降低由此带给项目的风险等。
  表示需求和别的系统元素之间的联系链的最普遍方式是使用需求跟踪能力矩阵。例如,下表显示了某个应用系统的一种需求跟踪能力矩阵,说明了每个功能性需求向后连接一个特定的用例,向前连接一个或多个设计、代码和测试元素。需求联系链需要由开发人员确定,但大量的需求跟踪信息可以使用特定的工具进行管理。

用例 功能需求 设计元素 代码 测试实例
UC1 Catalog.query.sort Class catalog Catalog.sort() test2
        test3

UC2

Catalog.update Class catalog Catalog.update() test10
        test11
        test12

  处理需求变更申请的一个重要环节是对这种变更产生的影响进行分析,这也是需求管理的一个重要组成部分。影响分析可以提供对建议的变更的准确理解,帮助做出信息量充分的变更批准决策。通过对变更内容的检验,确定对现有的系统做出是修改或抛弃的决定,或者创建新系统以及评估每个任务的工作量,而这项工作的好坏依赖于跟踪能力数据的质量和完整性。

  软件需求的最大问题在于难以清楚确定以及不断发生变化,这也是软件开发之所以困难的主要根源,因此,有效地管理需求是项目成功的基础。在软件过程能力成熟度模型(Capability Maturity Model,CMM)中,需求管理作为CMM二级所应达到的目标能力之一,其目的在于把软件需求建立一个基线供软件工程和管理使用,并使软件计划、产品和活动与其保持一致。
  需求管理不涉及收集和分析需求的过程,它是从形成需求基线开始,分析变更影响并控制变更过程,主要包括变更控制、版本控制和需求跟踪等活动。其中,变更控制就是在一定的程序下有效实施地整个变更过程,版本管理保证了在需求文档中记录和反映所有的需求变化,需求跟踪帮助人们全面地分析变更带来的影响,从而做出正确的变更决策。三者统一起来,真正做到了管理需求变化过程,以及维护需求变化后的一致性和完整性。