所有文章 >>  需求跟踪

        需求跟踪的目的是建立与维护“需求-设计-编程-测试”之间的一致性,确保所有的工作成果符合用户需求。

  需求跟踪有两种方式: (1)正向跟踪。检查《产品需求规格说明书》中的每个需求是否都能在后继工作成果中找到对应点。

  (2)逆向跟踪。检查设计文档、代码、测试用例等工作成果是否都能在《产品需求规格说明书》中找到出处。

  正向跟踪和逆向跟踪合称为“双向跟踪”。不论采用何种跟踪方式,都要建立与维护需求跟踪矩阵(即表格)。需求跟踪矩阵保存了需求与后继工作成果的对应关系。矩阵单元之间可能存在“一对一”、“一对多”或“多对多”的关系。由于对应关系比较复杂,最好在表格中加必要的文字解释。

  需求规格说明书(版本,日期) 设计文档(版本,日期) 代码(版本,日期) 测试用例(版本,日期)

  标题或标识符,说明 标题或标识符,说明 代码名称,说明 测试用例名称,说明! 使用需求跟踪矩阵的优点是很容易发现需求与后继工作成果之间的不一致,有助于开发人员及时纠正偏差,避免干冤枉活。主要麻烦是,当需求或工作成果发生变更时,开发人员要及时更新需求跟踪矩阵。

  很多人有这样的误解:如果依照“需求开发->系统设计->编程->测试”这样的顺序开发产品,由于每一步的输入就是上一步的输出,所以不必担心设计、编程、测试会与需求不一致,因此可以省略需求跟踪。

  需要指正的是,严格线性顺序的开发模型并不能保证各个开发阶段的工作成果与需求保持一致。因为开发者是人而不是机器。

  举个生活中常见的“以讹传讹”的例子吧。学生甲在精工实习时被机器弄破了手指于是到医院包扎。同学乙路过医院时看到甲的手血迹斑斑,以为甲的手指被机器割断,于是将这个坏消息告诉同学丙。丙急忙转告同学丁,说甲的手被机器割断,正躺在医院里。丁十万火急地告诉全班同学,大家陷入悲痛之中,都以为“甲的胳膊被机器割断了,正躺在医院里,人快不行了。”由于人们的表达能力、理解能力不可能完全相同,人与人之间的协作很难达到天衣无缝的境界。假如没有需求跟踪的话,软件开发过程中可能会发生这样的事情:用户的需求是“养一只天鹅”,却被需求分析员描绘成了一只“家鹅”,而系统设计师把“家鹅”画成了一只“鸡”,结果程序员拿出一盘“炒鸡丁”,最后测试员

  递交的测试报告表明这盘“鸭子”的味道非常好。

  如果你已经在需求调查、需求分析、需求定义、需求评审的过程中花费了不少精力,何不乘胜追击把需求跟踪也做好?目的 将系统设计、编程、测试等阶段的工作成果与需求文档进行比较,建立与维护“需求文档-设计文档-代码-测试用例”之间的一致性,确保产品依据需求文档进行开发。

  角色与职责 项目经理跟踪需求启动准则 需求文档已经通过正式评审并获得了承诺。系统设计、编程、测试等阶段的工作成果如设计文档、代码、测试用例已经产生。输入 需求文档、设计文档、代码、测试用例等主要步骤 第一步:建立与维护需求跟踪矩阵第二步:查找不一致第三步:消除不输出 需求跟踪报告(包含需求跟踪矩阵和问题处理)

  结束准则 每个开发阶段的“需求跟踪矩阵”都已经建立。已经消除了需求文档与后续工作成果之间的不一致性。度量项目经理统计工作量和上述文档的规模。