-
公开(公告)号:CN106843840A
公开(公告)日:2017-06-13
申请号:CN201611204086.5
申请日:2016-12-23
Applicant: 中国科学院软件研究所
Abstract: 本发明公开了一种基于相似度分析的源代码版本演化注释复用方法。本方法为:1)查找目标源代码的新版本,生成该新版本的标识符信息并写入复用库;2)对该目标源代码与该新版本进行文本相似度分析,将该目标源代码中与该新版本相同的代码片段的标识符对应的注释写入复用库中对应注释字段,剩余代码片段的标识符写入一中间文件;3)根据该中间文件中每一标识符及其对应代码片段生成一功能相似度信息;4)对于该中间文件中的标识符,根据该目标源代码中该标识符对应的代码片段与该新版本该标识符对应的代码片段生成该标识符的克隆对;5)将功能相似度大于设定阈值的克隆对对应的标识符在该目标源代码中的注释写入该复用库中该标识符的注释字段。
-
公开(公告)号:CN104035772A
公开(公告)日:2014-09-10
申请号:CN201410252637.X
申请日:2014-06-09
Applicant: 中国科学院软件研究所
Abstract: 本发明涉及一种基于静态分析的源码多版本函数调用关系差异性标识方法。首先通过源码静态分析技术获取源码中定义的函数列表和函数之间的静态调用关系等信息;然后将选取的两个版本源码进行Diff,结合静态分析获取的函数定义列表和调用关系标识出变化的差异部分,将变化的部分进行细致的状态分析,分别标识出函数定义和调用的修改状态、新增状态和删除状态并入库;最后结合用户的需求和数据库中保存的状态数据进行单个版本的调用关系展示和多版本函数调用关系差异视图的展示。本发明可以完成单个版本的内部调用关系分析和展示以及多个版本之间的调用关系差异性分析和展示,为开源软件的分析、开发、升级和维护提供了高效的辅助方法。
-
公开(公告)号:CN103761092A
公开(公告)日:2014-04-30
申请号:CN201410025189.X
申请日:2014-01-20
Applicant: 中国科学院软件研究所
IPC: G06F9/44
Abstract: 本发明涉及一种基于知识社群的在线源码协同分析和分享方法及装置,该方法的步骤包括:1)知识社群认证和源码协同分析平台建设:通过知识社群认证接口绑定现有开源社区的用户并初始化社区成员权限,构建包含现有热门开源软件的源码上下文环境,解析其中文件所包含的编程要素并创建相应的知识库词条入口,提供源码和词条关联机制;2)在线源码协同分析:社群成员利用在线协同分析环境进行相关源码上下文环境中的源码分析和多历史版本的词条编辑;3)知识集成与分享:社群成员按照贡献程度有差别的分享和利用知识。本发明充分利用知识社群集中了开源软件开发者和爱好者,满足了社群成员便捷的知识创建、知识创新、快速查询、分享和利用的需求。
-
公开(公告)号:CN102799517A
公开(公告)日:2012-11-28
申请号:CN201110137793.8
申请日:2011-05-25
Applicant: 中国科学院软件研究所
IPC: G06F11/36
Abstract: 本发明公开了一种快速的循环扩展检测方法,属于软件模型检测技术领域。本方法为:1)限定测试空间中各个变量的取值范围,并将测试空间中的状态初始化为被测程序限定范围内所有满足被测程序的前置条件的状态;2)随机挑选一个未检测的状态s,调用被测程序,记录该状态s经过被测程序的执行路径p以及动态执行信息;3)根据动态执行信息,依次计算并检测执行路径p的循环扩展相似路径p’,检查路径p’的路径约束条件表示的所有状态是否正确;如果正确则将这些通过检测的状态从测试空间中裁剪掉;如果未通过检测,则打印出错状态并给出反例;4)迭代检查测试空间中的所有状态。本方法减少了执行的测试用例个数,加快检测速度。
-
公开(公告)号:CN106843840B
公开(公告)日:2020-04-17
申请号:CN201611204086.5
申请日:2016-12-23
Applicant: 中国科学院软件研究所
Abstract: 本发明公开了一种基于相似度分析的源代码版本演化注释复用方法。本方法为:1)查找目标源代码的新版本,生成该新版本的标识符信息并写入复用库;2)对该目标源代码与该新版本进行文本相似度分析,将该目标源代码中与该新版本相同的代码片段的标识符对应的注释写入复用库中对应注释字段,剩余代码片段的标识符写入一中间文件;3)根据该中间文件中每一标识符及其对应代码片段生成一功能相似度信息;4)对于该中间文件中的标识符,根据该目标源代码中该标识符对应的代码片段与该新版本该标识符对应的代码片段生成该标识符的克隆对;5)将功能相似度大于设定阈值的克隆对对应的标识符在该目标源代码中的注释写入该复用库中该标识符的注释字段。
-
公开(公告)号:CN104035772B
公开(公告)日:2017-11-14
申请号:CN201410252637.X
申请日:2014-06-09
Applicant: 中国科学院软件研究所
Abstract: 本发明涉及一种基于静态分析的源码多版本函数调用关系差异性标识方法。首先通过源码静态分析技术获取源码中定义的函数列表和函数之间的静态调用关系等信息;然后将选取的两个版本源码进行Diff,结合静态分析获取的函数定义列表和调用关系标识出变化的差异部分,将变化的部分进行细致的状态分析,分别标识出函数定义和调用的修改状态、新增状态和删除状态并入库;最后结合用户的需求和数据库中保存的状态数据进行单个版本的调用关系展示和多版本函数调用关系差异视图的展示。本发明可以完成单个版本的内部调用关系分析和展示以及多个版本之间的调用关系差异性分析和展示,为开源软件的分析、开发、升级和维护提供了高效的辅助方法。
-
公开(公告)号:CN106020950A
公开(公告)日:2016-10-12
申请号:CN201610313138.6
申请日:2016-05-12
Applicant: 中国科学院软件研究所
CPC classification number: G06F9/4843 , G06F9/546 , G06F16/21
Abstract: 本发明涉及一种基于复杂网络分析的函数调用图关键节点识别和标识方法。首先通过源码静态分析技术进行词法分析、语法分析和控制流分析,获取源码调用关系数据和函数长度数据,将全部数据分类存储在数据库中;然后根据获取的数据生成调用图,利用复杂网络分析方法进行调用图节点指标计算,包括交互度、接近中心性、节点介数和函数长度,最终利用多属性决策方法进行节点关键程度计算;然后结合用户的需求和数据库中保存的状态数据,利用获得的函数调用图节点的关键程度数据计算关键节点排序和相应灰度比例数据,并进行可视化展示。本发明可快速的在复杂调用关系图中识别和标识出关键节点,显著提高工作效率。
-
公开(公告)号:CN106021410A
公开(公告)日:2016-10-12
申请号:CN201610317968.6
申请日:2016-05-12
Applicant: 中国科学院软件研究所
CPC classification number: G06F16/35 , G06K9/6269 , G06K9/6276 , G06K9/6278
Abstract: 本发明涉及一种基于机器学习的源代码注释质量评估方法。该方法首先对原始的代码注释进行预处理,清洗掉干扰信息,然后利用特征项选择和提取技术生成特征向量,将不同类别的特征向量输入文本分类器进行训练和调优,使用了多种不同特性的分类器并最终进行分类器融合,得出较为完善和准确的质量评估分类结果。本发明填补了以往只分析代码质量而无注释质量分析方法的空白,克服了代码注释质量依靠个人经验和手工方式评估的低效、主观性强等问题,可用于分析和评估手工编写的代码注释、利用文档自动生成的注释以及挖掘工具自动生成注释等多种来源的注释质量,有效的保证了代码注释质量和可理解性,降低软件维护的成本。
-
公开(公告)号:CN106020950B
公开(公告)日:2019-08-16
申请号:CN201610313138.6
申请日:2016-05-12
Applicant: 中国科学院软件研究所
Abstract: 本发明涉及一种基于复杂网络分析的函数调用图关键节点识别和标识方法。首先通过源码静态分析技术进行词法分析、语法分析和控制流分析,获取源码调用关系数据和函数长度数据,将全部数据分类存储在数据库中;然后根据获取的数据生成调用图,利用复杂网络分析方法进行调用图节点指标计算,包括交互度、接近中心性、节点介数和函数长度,最终利用多属性决策方法进行节点关键程度计算;然后结合用户的需求和数据库中保存的状态数据,利用获得的函数调用图节点的关键程度数据计算关键节点排序和相应灰度比例数据,并进行可视化展示。本发明可快速的在复杂调用关系图中识别和标识出关键节点,显著提高工作效率。
-
公开(公告)号:CN102799517B
公开(公告)日:2015-03-11
申请号:CN201110137793.8
申请日:2011-05-25
Applicant: 中国科学院软件研究所
IPC: G06F11/36
Abstract: 本发明公开了一种快速的循环扩展检测方法,属于软件模型检测技术领域。本方法为:1)限定测试空间中各个变量的取值范围,并将测试空间中的状态初始化为被测程序限定范围内所有满足被测程序的前置条件的状态;2)随机挑选一个未检测的状态s,调用被测程序,记录该状态s经过被测程序的执行路径p以及动态执行信息;3)根据动态执行信息,依次计算并检测执行路径p的循环扩展相似路径p’,检查路径p’的路径约束条件表示的所有状态是否正确;如果正确则将这些通过检测的状态从测试空间中裁剪掉;如果未通过检测,则打印出错状态并给出反例;4)迭代检查测试空间中的所有状态。本方法减少了执行的测试用例个数,加快检测速度。
-
-
-
-
-
-
-
-
-