首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到10条相似文献,搜索用时 375 毫秒
1.
针对开源软件漏洞,提出一种基于深度聚类算法的软件源代码漏洞检测方法。该方法利用代码图模型构造开源软件代码属性图,遍历得到关键代码节点并提取出应用程序编程接口(API)序列,将其嵌入向量空间,以关键代码为中心进行聚类,根据聚类结果计算每个函数的异常值,生成检测报告并匹配漏洞库,从而检测出源代码中的漏洞。实验结果表明,该方法能够定位开源软件中漏洞所在的关键代码段并检测出相应漏洞。  相似文献   

2.
软件演化确认是软件工程领域的一个重点和热点的研究方向。由于开源软件具有群智开发,演化过程不可控和不可建模等特点,使得传统的确认方法不适合于开源软件,故从功能语义角度提出了一种软件演化确认方法,试图将代码按主题的方式进行聚类,每一个主题表征软件系统的一个功能集合,演化确认工作被转化为功能集合与演化需求之间的映射关系。通过对现有开源软件的源代码进行实验,获取了大量的真实可靠实验数据,对这些实验数据进行分析后得出的实验结果表明该方法相较基于文本的基线方法,更能有效区分是否已经演化,可以用于对软件演化进行确认工作。  相似文献   

3.
韩俊明  王炜 《计算机科学》2015,42(Z11):464-466, 489
演化是软件生命周期中一个重要的部分。现在有大量软件已经演化了数个版本,而如何确认演化后的软件与演化目的相符合,成为了一个需要解决的问题。由于目前还没有一个系统的方法来处理此类问题,提出了采用LDA主题模型的方法对演化确认进行建模分析。用LDA方法对软件源代码中的某些特征进行建模,通过模型能够分析出源代码内潜在的主题。将提取分析出来的主题与软件演化发布的相关报告做对比,找出它们之间的区别,以此确认演化后的软件是否符合演化目的。  相似文献   

4.
沈琦  钱莹  邹艳珍  伍仕骏  谢冰 《软件学报》2021,32(4):1023-1038
在软件复用过程中,简洁清楚的软件功能自然语言描述是帮助复用者快速了解待复用软件项目/代码库的前提和基础.但当前开源软件往往缺乏高质量的软件功能说明文档,使得这一过程变得更加复杂和困难.为此,本文提出了一种融合代码与文档的软件功能特征挖掘方法.该方法以动宾短语的形式描述软件功能特征,通过迭代挖掘软件源代码和以Stack Overflow讨论帖为代表的软件文档,自动提取开源软件的功能特征描述,并构造了层次化的软件功能特征视图.在针对多个开源软件项目的实验中,本文方法可覆盖官方文档中列举的95.38%的软件功能.挖掘结果中语句和功能特征的准确率分别达到了93.78%和92.57%.对比现有工作TaskNav和APITasks,本文方法在平均准确率上分别提升了28.78%和11.56%.  相似文献   

5.
为了能够通过软件的源代码度量面向对象软件的适应性,提出了一个包含七个具体度量指标的软件适应性度量模型,并开发了在Java软件中提取各度量指标的支持工具FlexTool;为了避免通过手动调整大量软件源代码的方式度量软件适应性,使研究人员能够在不太了解软件实现细节的情况下对适应性进行度量,提出了将该适应性模型应用于软件版本的演化从而度量软件适应性的方法,并通过著名开源软件Ant的版本演化对该方法的合理性进行了验证。  相似文献   

6.
针对单个版本克隆检测结果不足以体现克隆特征这一问题,从软件多版本中自动提取克隆谱系,获得克隆在软件演化过程中表现出的模式和特征。首先基于克隆代码Token表示及其所在文件名称、函数名称等位置属性,准确映射软件历时演化版本间的克隆代码,进而识别克隆演化模式;然后匹配克隆类ID号,合并所有相邻版本间的映射结果及演化模式信息,得到克隆谱系。同时开发了相应的克隆谱系自动提取工具FCG对6款开源软件进行了测试,发现当前版本中克隆代码平均生命周期占所研究版本总数的70%以上,且大部分没有发生变化,说明大部分克隆能被较好地维护,但也存在少量不稳定的克隆可能导致软件缺陷,需要修改或重构。实验结果表明FCG可高效提取克隆谱系,有助于更好地理解克隆及有针对性地管理克隆。  相似文献   

7.
《计算机科学与探索》2017,(10):1599-1608
软件特征定位是软件演化活动顺利展开的保证。基于文本的特征定位方法是目前特征定位研究的一个重要组成部分。当前基于文本的特征定位方法将代码关键词视为独立同分布的个体,忽略了代码间的语境。针对上述问题,基于深度学习语言模型RNNLM(recurrent neural networks language model)提出了一种源代码主题建模方法,并在此基础上实现了特征定位。实验结果表明,与基于LDA(latent Dirichlet allocation)和LSI(latent semantic indexing)的文本特征定位相比较,查准率提高8.61%和2.61%,表明该方法具有较优的查准率。  相似文献   

8.
大规模开源代码社区为开发者提供了丰富的软件资产,但要理解和利用这些代码却十分耗时耗力。为寻求代码理解、分析和挖掘的语义支撑,本文针对源代码变量名进行了研究,提出了一种基于字段相似度与语义关联度的自动语义标注方法,并实现了相应的工具。该方法首先建立英文、中文、拼音语料库,并构建字段相似度模型生成多种候选标注方案,然后利用马尔科夫转移矩阵和语义网WordNet构建概率模型评选出最优的标注方案,从而实现源代码变量名的自动语义识别。该方法通过积累用户的标注采纳反馈,能够不断提高标注准确度。本文使用GitHub开源项目代码进行标注准确度实验,结果表明初次标注准确度达到68.1%,随着用户反馈增加逐步提升到73.3%。  相似文献   

9.
张文  李自强  杜宇航  杨叶 《软件学报》2019,30(2):195-210
当软件缺陷报告在跟踪系统中被指派给开发人员进行缺陷修复之后,缺陷修复人员就需要根据提交的缺陷报告来进行软件缺陷定位,并做出相应的代码变更,以修复该软件缺陷.在缺陷修复的整个过程中,软件缺陷定位占用了开发人员大量的时间.提出了一种方法级别的细粒度软件缺陷定位方法MethodLocator,以提高软件修复人员的工作效率.MethodLocator首先对缺陷报告和源代码方法体利用词向量(word2vec)和TF-IDF结合的方法进行向量表示;然后,根据源代码文件中方法体之间的相似度对方法体进行扩充;最后,通过对扩充后的方法体和缺陷报告计算其余弦距离并排序,来定位为修复软件缺陷所需做出变更的方法.在4个开源软件项目ArgoUML、Ant、Maven和Kylin上的实验结果表明,MethodLocator方法优于现有的缺陷定位方法,它能够有效地将软件缺陷定位到源代码的方法级别上.  相似文献   

10.
刘阳  刘秋荣  刘辉 《计算机科学》2015,42(12):105-107
软件重构历史的自动检测是目前软件重构领域的一个研究热点。其主要目的是方便程序员或软件维护人员理解 软件演化的历史,也便于根据服务代码重构历史对其客户代码进行相应的重构操作。虽然相关研究人员已经提出了多种自动化的重构历史检测方法,但目前未见关于函数提取重构历史检测的方法或工具。为此,提出了一种基于版本比较的函数抽取重构自动检测方法,实现并验证了该方法的有效性。在8个开源项目上进行了实验验证,结果表明其查准率为65%~90%。此外,在一个小型项目上通过监控程序员的重构操作获得了全部的函数提取重构操作,进而计算出检测算法的查全率和查准率均为85%。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司    京ICP备09084417号-23

京公网安备 11010802026262号