需求链和需求跟踪

发表于:2008-09-28来源:作者:点击数: 标签:需求跟踪
如果你是一个开发人员,一天,市场部的小莉跑过来让你修改你正在开发产品的一个小小的功能,这是应客户的要求添加的,你觉得这个要求很简单,再加上你对小莉有好感,可能你就答应了她的要求。可是实际的情况是怎么样的呢?你会发现小小的修改并没有想象的那
  如果你是一个开发人员,一天,市场部的小莉跑过来让你修改你正在开发产品的一个小小的功能,这是应客户的要求添加的,你觉得这个要求很简单,再加上你对小莉有好感,可能你就答应了她的要求。可是实际的情况是怎么样的呢?你会发现小小的修改并没有想象的那么简单,对这项产品的修改导致了进程的延误,最糟糕的是,由于这项修改没有传达到整个需求链,其他的开发人员那里由于你的修改出现了一些要命的错误。

    软件工程重视的是过程能力,如果不能严格的确保过程的每一个环节都被不择不扣的执行,软件过程就会不成功,我们都学过法律常识,都知道有法可依还不够,还必须有法必依,执法必严。遗憾的是,中国的软件组织对过程的严格执行并不是特别重视,上面的例子在各团体中都是很普遍的,这可能和中国人的思维方式有些关系,关于这一点,鲁迅先生在很早的时候已经讨论过了,我们就不用在此罗嗦了。

    需求链的概念指的是需求能够上传下达,从客户传达到需求过程,并从需求过程传达到需求过程的下游开发链。而这个传达是可以逆向的。

    需求跟踪提供了一个表明与合同或说明一致的方法。更进一步,需求跟踪可以改善产品质量,降低维护成本,而且很容易实现重用( Ramesh 1998)。

    在CMM三级中要求软件团体必须具备需求跟踪的能力:“在软件工作产品之间,维护一致性。工作产品包括软件计划,过程描述,分配需求,软件需求,软件设计,代码,测试计划,以及测试过程。”

    实际上,创建需求跟踪能力是困难的,尤其是在短期之内会造成开发成本的上升,虽然从长远来看可以减少软件生存期的费用,软件团体在实施这项能力的时候应循序渐进,逐步实施。

    需求跟踪的一种通用的方法是采用需求能力跟踪矩阵。它的前提条件是将在需求链中各个过程的元素加以编号,例如:需求的实例号,设计的实例号,编码的实例号,测试的实例号。他们的关系都是一对一和一对多的关系。通过编号,你可以使用数据库进行管理,需求的变化能够立刻体现在整条需求链的变化上。

    需求跟踪矩阵并没有规定的实现办法,每个团体注重的方面不同,所创建的需求跟踪矩阵也不同,只要能够保证需求链的一致性和状态的跟踪就达到目的了。

原文转自:http://www.ltesting.net