基于代码依赖分析的软件可追踪技术研究

发布时间:2018-06-12 05:13

  本文选题:软件可追踪性 + 代码依赖关系 ; 参考:《南京大学》2017年博士论文


【摘要】:软件可追踪性(Software Traceability)是指软件系统在开发全生命周期中,能够生成和维护各类软件制品(例如需求和代码)在系统功能上的关联关系(也称作追踪线索)的一种能力。软件可追踪性的主要目的是当软件制品随版本变化而发生变化时,可以通过追踪这些关联关系来帮助开发人员确定软件制品功能变化的范围及影响。当前可追踪性的工程实践方法仍然是以人工实现为核心的一套围绕需求-代码矩阵生成、维护与验证的软件质量保障机制,从而造成了软件可追踪性分析耗时、费力、易错。同时,软件开发流程迭代加速、软件开发方法面向维护与演化、软件系统技术复杂性增高等趋势更加深了开发人员对软件可追踪性自动化分析的依赖。因此,研究需求到代码的可追踪性自动化分析成为软件工程学术领域最具代表性与挑战性的工作之一。一般而言,在学术界,大多数可追踪性关联关系的生成与维护是通过自动化地选择需求和代码中两个主要的信息维度来分析和实现的,即软件系统内的文本(如需求规约和源代码文本)与代码元素之间的依赖关系(如函数调用和数据依赖关系)。同时,可追踪性自动化分析方法还需要通过在可追踪性的追踪线索生成(Trace Recovery)、维护(Trace Maintenance)、验证(Trace Validation)三个应用场景下的验证来说明该分析方法的实践有效性。因此,对该领域研究的主要问题可以表述为:(1)如何从需求和代码这两类处于不同抽象层次、且具有不同数据格式的软件制品中选择相关信息,从而既精确又完整的生成和维护可追踪性;(2)如何评估这些信息在不同的可追踪性自动化分析应用场景中的有效性。然而,当前主流的可追踪性自动化分析技术主要关注可追踪性的生成问题,缺乏对可追踪性维护与验证的支持。且其分析手段主要侧重于基于文本的词法分析,往往忽略了代码元素之间的依赖关系这一维度,从而导致当前可追踪性自动化分析极度依赖于软件制品内嵌文本的质量。部分综合考虑了代码依赖关系的可追踪性自动化分析技术也有着分析的代码依赖关系类型单一(主要是函数调用)、分析算法较为简单等不足。因此,当前软件可追踪性自动化分析存在着对可追踪性应用场景支持不足、分析方法精度较弱、用户对工具结果缺乏信心等问题。针对上述研究现状,我们首先通过实验验证了以函数调用和数据依赖为代表的代码依赖分析与可追踪性自动化分析之间所存在的强关联性。以此发现为基础,我们在实践中逐步提出了以代码依赖关系紧密度分析为代表的一系列代码依赖关系分析方法,并与具体的可追踪性应用场景相结合,从而为可追踪性的追踪线索验证、生成、维护三个不同应用场景分别提出了一个基于代码依赖的自动化分析方法。三个方法的评估实验表明,我们提出的代码依赖分析有效地改进了三个可追踪性应用场景下的自动化分析,充分展示了代码依赖对于软件可追踪性自动化分析的重要意义。本文具体工作如下:·提出并验证了代码依赖分析与可追踪性自动化分析之间所存在的强关联性。我们首先设计实现了一个动态分析工具以捕获高质量的函数调用与数据依赖关系。基于捕获的两类代码依赖关系,通过衡量目标函数的追踪线索与其“邻居”函数(通过直接的函数调用或数据依赖与目标函数交互的函数)的追踪线索是否一致的方式来验证函数调用与数据依赖是否有助于理解软件可追踪性。相关实验结果表明,函数调用与数据依赖都有助于理解和分析软件可追踪性,且二者在功能上相互补充。·提出了一种基于函数调用与数据依赖分析来验证一个已知软件可追踪性质量的自动化方法。在之前提出的衡量邻居函数及其追踪线索的基础上,我们进一步提出了逆向数据类型频率(inverse data type frequency, idtf)算法来排除通过共享公用数据类型与被评估函数相关联的邻居函数,以提升方法的准确性。相关实验结果表明:(1)该方法能够有效的指出已知可追踪性中存在的不一致;(2)该方法对已知可追踪性中所存在的错误与缺失、已知可追踪性的粒度等客观因素有着较强的适应能力。·提出了一种将函数调用与数据依赖分析与信息检索技术相结合来生成软件可追踪性的自动化方法。基于之前的研究,我们进一步提出了代码依赖关系紧密度(Closeness)这一指标来衡量两个代码元素(如类或函数)在功能上的相似性,并与当前主流的基于信息检索(Information Retrieval)技术分析文本信息的可追踪性生成技术相结合,设计并实现了一个追踪线索生成的自动化分析方法TRICE (Traceability Recovery based on Information retrieval and ClosEness analysis)。相关实验结果表明TRICE能够显著地优于单纯基于信息检索的可追踪生成工具和其它混合了信息检索和代码依赖关系分析的追踪线索生成方法。·提出了一种基于代码变更上的紧密度分析来识别过时需求的自动化方法。通过分析代码变更来识别因系统演化而产生的过时需求可以被视作一类特殊的可追踪性维护技术。我们实现的分析方法SPRUCE (SuPport Requirement Update based on ClosEness analysis)能够有效地从变更代码元素以及与变更代码元素紧密关联的未变更代码元素中抽取文本信息来描述变更代码的功能,并通过信息检索技术将抽取的信息与系统中的需求进行匹配,从而发现受此次代码变更影响而导致的过时需求。相关实验结果表明SPRUCE能够显著地优于未使用紧密度分析的基线方法,并更好地应对包含多个功能变更的代码变更。
[Abstract]:Software Traceability refers to the ability of software system to generate and maintain the relationship between software products ( such as demand and code ) on the system function . The main purpose of the software traceability is to help the developer to determine the scope and influence of software product function change .
This paper presents a series of code - dependent relationship analysis methods based on the analysis of code - dependent relationship .
( 2 ) The method has strong adaptability to the objective factors such as the error and the missing of the known traceability , and the granularity of known traceability . The results show that TRICE can be better than traceable generating tools based on information retrieval and other trace lead generation methods that mix information retrieval and code - dependent relationship analysis . A method for identifying outdated demand based on code change is proposed . The analysis method SPRUCE ( SuPport Requirement Update based on entropy Eness analysis ) can effectively extract text information from the unchanged code elements closely associated with the change code elements to describe the outdated demand caused by the change of code .
【学位授予单位】:南京大学
【学位级别】:博士
【学位授予年份】:2017
【分类号】:TP311.5

【相似文献】

相关期刊论文 前6条

1 王玉磊;邓淼磊;杨录山;;标签不可追踪性验证改进模型[J];华中科技大学学报(自然科学版);2010年08期

2 王振利;软件工程中的需求可追踪性方法研究分析[J];甘肃科技;2005年03期

3 邓淼磊;朱昭;石金娥;周利华;;RFID标签的不可追踪性[J];北京邮电大学学报;2010年02期

4 杨丙贤;刘超;;基于软件结构的文档与代码间可追踪性研究[J];计算机科学与探索;2014年06期

5 ;博士考考你[J];电子质量;2003年08期

6 王明华;周渊;李爱平;张冰;罗娜;;一种IP可追踪性的网络流量异常检测方法[J];南京邮电大学学报(自然科学版);2009年03期

相关博士学位论文 前1条

1 匡宏宇;基于代码依赖分析的软件可追踪技术研究[D];南京大学;2017年



本文编号:2008505

资料下载
论文发表

本文链接:https://www.wllwen.com/shoufeilunwen/xxkjbs/2008505.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户c4ed0***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com