需求跟踪是一个高阶的管理活动,目标是为了更好地管理需求的状态,更好地分析需求变更产生的影响。虽然执行需求跟踪会带来不错的效益,但其所需付出的工作量也是巨大的。因此在需求定义,需求开发和需求管理还没有非常顺畅时,不太建议引入需求跟踪活动。
11.1 需求跟踪的基本概念
需求跟踪是将单个需求和其他系统元素之间的依赖关系和逻辑联系建立跟踪。这些元素包括:各种类型的需求,业务规则,系统架构,设计组件,源码,测试用例,以及帮助文档等。具体来说需求跟踪涉及5中类型的跟踪链:
通常需求跟踪的收益体现在以下几个方面,都属于比较高阶的管理收益:
》审核:跟踪信息可以帮助审核确保所有需求都被应用。
》变更影响分析:跟踪信息在增删改需求时,可以确保不忽略每个受到影响的系统元素。
》维护:可靠的跟踪信息使得维护时能正确,完整地实施变更,从而提高生产率。
》项目跟踪:认真记录跟踪数据,可以使得计划当前的实现状态。
》再设计:可以列出传统系统中将要替换的功能,记录他们在新系统的需求和软件组件中的位置。
需求跟踪是比较高阶的管理活动,所需的工作量非常大,特别是软件需求到设计元素的跟踪,因此一定要考虑投入与收益是否成正比。
11.1.1 用户需求到软件需求的跟踪
跟踪链第一类是用户需求到软件需求的跟踪,工作量中等,对与项目管理好处很明显,建议有时间尽量实现此类跟踪。
11.1.1.1 目的:保证所有的用户原始需求都得到满足。
11.1.1.2 好处:
》开发人员在实现时能精确地定位到相关的原始需求。
》可以为软件需求是否必要提供第一手证据。
》容易找到需求之间的矛盾和歧义。
11.1.1.2 具体手段:在第六章 需求分析与建模最佳实践中介绍到一种方法,就是将一句话标识的用户原始需求直接归并到软件需求的用例中。
11.1.2 软件需求到软件需求的跟踪
跟踪链中的第二类是软件需求到软件需求的跟踪,这类跟踪工作量规模较小,对于需求管理的好处十分明显,此类跟踪最应该建立。
11.1.2.1 主要内容:
》项目目标,stakeholder关注点到软件需求的跟踪。
》相关软件需求之间的跟踪。
11.1.2.2 目的:确保项目目标,stakeholder关注点被实现。
11.1.2.3 好处:
》更好地理解软件需求的实现意义。
》更好地处理软件需求之间的逻辑相关性。
11.1.2.4 具体手段:为项目目标,stakeholder关注点,创建唯一编号,通过表格或链接法实现跟踪。
11.1.3 软件需求到下游工作产品的跟踪
跟踪链中第三类是软件需求到下游工作产品(系统架构,设计组件,源码,测试用例,帮助文件等)的跟踪。这类跟踪对于变更管理的好处十分明显,但工作量巨大,因此此类跟踪应该谨慎使用。
11.1.3.1 目的:维护软件需求与设计元素,测试元素之间的关联关系。
11.1.3.2 好处:
》在针对变更的技术影响分析时,能够得到更加精确的评估结果。
》可以更好地隔离变更影响。
11.1.3.3 具体手段:手动更新或通过配置管理软件来实现更新。
11.2 需求跟踪的操作方法
要对需求进行跟踪,就必须对每个需求定义唯一标识。在实际操作过程中,主要有表格法和链表法两种跟踪策略。
11.2.1 表格法
在使用需求跟踪矩阵时,只是制定了计划而没做具体工作时还不能填写这些信息,必须完成了工作并且通过验证后才能填入这些信息。
11.2.2 链表法
链表法主要是用于特定软件上,比如需求管理工具Telelogic DOORS。
11.3 小结
每当谈起需求跟踪活动,总是有一句话作为核心:需求开发活动都是必须的,需求管理活动都是可选的。因为任何管理活动都是有成本的,因此我们必须做好成本效益分析,而不是将所有管理活动都做到位了就是最好的。
我们可以根据项目,人员,团队的特点,选择部分意义重大,价值较高的项目做需求跟踪,甚至可以在一个项目内,选择部分需求进行跟踪;另外还应该选择合适的需求管理工具,以降低需求跟踪的工作量。