论文部分内容阅读
随着软件系统的复杂程度越来越高,维护软件可追踪性变得越来越重要。由于软件开发流程的迭代速度越来越快、开发人员的流动性越来越大,需求是否被实现、代码是否完成测试等问题对于系统的开发人员和维护人员来说已经越来越难以把握。因此,软件的开发及维护过程中各个软件制品之间的跟踪关系也变得越来越重要。当软件制品发生变化时,可以通过这些跟踪关系来帮助开发人员确定这些变化的范围及造成的影响。目前在软件跟踪领域普遍存在的问题是跟踪链建立和维护过程困难、跟踪效果不佳。针对以上分析,本文将动态跟踪方法与版本控制机制相结合,并加入了语义分析和本体相关的知识,提出了一种基于代码版本控制的软件跟踪方法。其中,结合版本控制机制可以解决软件制品之间书写语言不一致的问题,引入语义分析和本体相关的知识可以解决词汇隐含语义未被发掘的问题。本文主要完成了以下工作:(1)针对目前中文文档到源代码之间跟踪方法精度不高的问题,提出了一种基于版本控制的中文设计文档到源代码的动态跟踪方法。在该方法中,首先定义了一组语义分析规则和文本到代码的启发式规则,给出了相关数据的获取和预处理方法,采用基于信息检索的相似度计算方法与自定义规则相结合的方法计算出中文设计文档与源代码之间的相似度;然后对版本控制软件中的版本更新信息进行处理,获取版本更新信息中版本描述语句与源代码之间的映射关系,利用该映射关系来修正前面的相似度得分;最后根据设定的阈值确定中文设计文档与源代码之间的跟踪关系。(2)为了让项目相关人员更好的理解动态跟踪方法生成跟踪链的缘由,判别跟踪链的正确性,本文设计了一种基于启发式规则的跟踪链解释方法。该方法分析了跟踪链的生成过程,同时分析了领域概念之间的关系和动作框架之间的关系,然后根据这些关系制定了跟踪链解释的启发式规则,最后通过这些规则生成跟踪链解释语句。(3)针对目前软件系统迭代速度加快,软件集成测试不及时、不准确等问题,设计了一种集成测试用例自动推荐的方法。首先,本文给出了一种基于领域本体与向量空间模型相结合的设计文档到集成测试用例文档的跟踪方法,得出设计文档到集成测试用例文档之间的跟踪链;然后,当源代码版本发生变更时,根据变更的代码查找设计文档到源代码之间的跟踪链,得出相应的设计文档语句,再根据该语句查找设计文档到集成测试用例文档之间的跟踪链,得出相应的集成测试用例。通过实验对本文提出的方法的可行性和效率进行了验证。实验结果表明本文的软件跟踪方法是可行且有效的,与常规的基于向量空间模型的跟踪方法相比,查准率和查全率都得到了一定的提高;并且在设计文档与源代码跟踪链形成时,能给出相应的跟踪链解释语句;在代码版本发生变更时,能自动推荐相应的集成测试用例。