论文部分内容阅读
需求跟踪支持软件工程中许多关键活动,对于了解软件系统有着不可替代的作用,其重要性得到了业界的广泛认可。当项目的需求发生变更的时候,可以根据需求跟踪链找到那些与之相关的代码进行变更。需求到代码的可追溯性是至关重要的,它可帮助后续的工程师更好的开发和维护软件。需求跟踪在软件系统的生命周期中将需求和代码实现关联起来,已经成为了一种管理软件项目和提高软件质量的有效方法。需求跟踪可分为静态需求跟踪和动态需求跟踪。静态需求跟踪需要手动建立,当需求发生变更时,需要手动修改。这使得静态需求跟踪费时费力,且达不到需求跟踪效果。动态需求跟踪能自动建立跟踪关系,并且能够进行需求跟踪关系变更提醒与自动更新,弥补静态需求跟踪的缺陷。现阶段对动态需求跟踪研究的最多的就是基于信息检索(IR)动态需求跟踪模型,这些模型的精度是根据标引词来匹配来计算的,当需求和代码采用不同的标引词的时候,即使标引词之间是相似的或是关联的,匹配也会失联,这严重的影响了动态需求跟踪的精度。本文针对动态需求跟踪过程中不能进行潜在语义匹配造成需求跟踪的低精度问题,在现有的需求跟踪技术和本体匹配技术基础上,提出了一个新的基于本体的动态需求跟踪机制。该机制通过构建需求本体和代码本体将需求文档和代码规范化,通过需求本体与代码本体间节点的相互匹配度进行需求跟踪关系的建立。本文研究的主要内容包括:(1)分析了原始需求分解方法,提出了需求到本体的映射模型和映射规则,以及如何使用本体来验证需求分解正确性的推理规则。(2)对比了面向对象语言的代码与本体的相似之处,提出了代码到本体的映射模型和映射规则。(3)在需求本体模型和代码本体模型的基础上,建立了需求与代码的关联模型,该模型实现了需求本体节点词汇与代码本体节点词汇的语义相似度计算,同时还实现了本体节点的关联相似度计算和内部相似度计算。关联规则是将需求分解为最小子需求后将其构建为需求本体,同时将相对应的功能性代码构建为代码本体,通过两本体间的节点匹配,找到功能需求在代码中具体实现的类和方法,从而达到需求跟踪目的。通过实验,对该需求跟踪方法的可行性和效率进行验证。实验结果表明该模型是可行有效的,且与常规的基于信息检索的模型相比,该模型的需求跟踪的查准率与查全率都得到了一定的提高。