陈 磊 王丹丹 王 青,2,3 石 琳
1(中国科学院软件研究所互联网软件技术实验室 北京 100190)2(计算机科学国家重点实验室(中国科学院软件研究所) 北京 100190)3(中国科学院大学 北京 100049)
在软件开发中,需求跟踪是连接开发阶段中重要活动的链条[1],可以辅助软件开发生命周期中很多活动的执行,比如软件维护[2]、变更影响分析[3]、需求验证[4]、需求重构[5]、需求复用[6]、测试用例生成[7]和源代码理解[8]等.因此获得软件工程师及其公司的重点关注[9].然而,建立和维护需求跟踪关系是一件耗时而且繁琐的事情,特别是对于一个大型和(或)复杂、周期长的系统,手工创建和维护准确的跟踪链接是需要耗费大量人力、时间而且容易出错[2,9].大量的实践经验表明:成本及效率问题是制约需求跟踪使用的根本原因.
为解决该问题,研究人员提出了各种不同的解决方案,以自动化技术为手段辅助开发人员建立和维护需求跟踪关系,从而降低成本.其中最常用的是基于信息检索(information retrieval, IR)[10-14]的方法.该方法利用IR模型计算需求文本与软件制品文本之间的文本相似度,并按照文本相似度的大小进行排序,通过设置阈值筛选需求与软件制品之间的跟踪链接.通常需求与软件制品之间的文本相似度越大,它们之间的跟踪关系就越有可能是正确的,反之则越有可能是错误的.虽然基于信息检索的方法能够有效地恢复需求与软件制品之间的跟踪链接,但是由于不同的软件制品通常遵循不……