下载
第1 8章 需求链中的联系链
“开发工作进展如何, G l e n n ?”,在一次项目状态检查会上“化学制品跟踪系统”
项目经理D a v e问道。
“我没有按计划执行” G l e n n 说,“我正在应M a r c i e 的要求添加一个销售分类查询
功能,比我原先预计的工作量超期多了。”
D a v e 似乎有点迷惑,“好像在最近的变更控制委员会的会议中我们没有讨论过这
个功能。M a r c i e是通过变更过程来提交要求的吗?”
“没有,她直接给了我这个建议,”G l e n n说,“本该请她通过正式渠道的,但这
个功能看上去较简单,所以当时我就答应她了。这个功能其实并不简单,每次当我
认为该完工了,但总能意识到在另一个文件中漏了一个变更,所以不得不修改它,
再测试一遍。原以为花 4个小时就可以了,实际上花了 4天时间,造成我没能按计划
完成任务。我知道延误了工期,那我应该加上这个功能还是放弃它呢?”
一个表面上简单的软件变更往往会很复杂,花费时间很难预料。经常很难发现哪怕一个
很小的修改会影响到的范围。开发过程中在同意接受建议的变更之前,要确信明白自己在做
什么。
本章讲述开发过程中的需求跟踪和需求变更影响分析的相关内容。需求跟踪包括编制每
个需求同系统元素之间的联系文档。这些元素包括别的需求、体系结构、其他设计部件、源
代码模块、测试、帮助文件、文档等。跟踪能力信息使变更影响分析十分便利,有利于确认
和评估实现某个建议的需求变更所必须的工作。
18.1 需求跟踪
跟踪能力(联系)链(traceability link)使你能跟踪一个需求使用期限的全过程,即从需
求源到实现的前后生存期( Gotel and Finkelstein 1994)。第1章指
出跟踪能力是优秀需求规格说明书的一个特征。为了实现可跟踪
能力,必须统一地标识出每一个需求,以便能明确地进行查阅
(Davis 1993)。
图1 8 - 1 说明了四类需求跟踪能力链( Jarke 1998)。客户需求
可向前追溯到需求,这样就能区分出开发过程中或开发结束后由
于需求变更受到影响的需求。这也确保了需求规格说明书包括所
有客户需求。同样,可以从需求回溯相应的客户需求,确认每个
软件需求的源头。如果用使用实例的形式来描述客户需求,图
1 8 - 1上半部分就是使用实例和功能性需求之间的跟踪情况。
图1 8 - 1 的下半部分指出:由于开发过程中系统需求转变为软
件需求、设计、编写等,所以通过定义单个需求和特定的产品元
素之间的(联系)链可从需求向前追溯。这种联系链使你知道每