一种基于动态仿真的软件状态监控点选择方法及系统

    公开(公告)号:CN112231175B

    公开(公告)日:2022-05-13

    申请号:CN202011095616.3

    申请日:2020-10-14

    IPC分类号: G06F11/30 G06F8/41

    摘要: 本发明涉及一种基于动态仿真的软件状态监控点选择方法及系统,该方法包括:获取目标软件完整的源代码;对源代码进行静态扫描,得到源代码与软件网络的节点和边之间的映射关系;根据映射关系构建第一软件网络;对源代码进行解析,得到结构化数据;根据结构化数据对第一软件网络进行扩展,得到第二软件网络;对第二软件网络的节点内部运行程序进行仿真分析,根据第二软件网络的节点间关系和仿真结果生成运行路径;对运行路径再次进行仿真分析,并根据该仿真结果计算监控点价值量化指标值;获取价值量化指标值最大的节点作为监控点。本发明能够在降低监控点资源消耗和保证监控效果的情况下优化监控点的设置。

    一种基于谱聚类的软件缺陷特征选择方法

    公开(公告)号:CN111338950A

    公开(公告)日:2020-06-26

    申请号:CN202010116211.7

    申请日:2020-02-25

    发明人: 严亮 许嘉熙 艾骏

    IPC分类号: G06F11/36 G06K9/62

    摘要: 本发明公开了一种基于谱聚类的软件缺陷特征选择方法,包括如下步骤:导入待进行特征选择的软件缺陷数据集,并提取软件缺陷预测特征集;剔除软件缺陷预测特征集中的无关特征;建立特征间相关性矩阵;基于谱聚类对特征集进行聚类分析,得到若干组高内聚低耦合的特征簇;计算出特征簇中每个特征的质量系数,依照特征质量系数对特征进行排序,将排序结果作为特征前项选择的搜索顺序,并选择机器学习性能最佳的特征子集作为软件缺陷特征集。该方法解决了主流特征选择方法无法兼顾无关特征和冗余特征排除、特征选择算法性能随特征数量增加而迅速下降、选择出的特征子集通用性不强、用于预测效果不好等缺陷。

    一种面向开源软件缺陷特征深度学习的软件缺陷预测方法

    公开(公告)号:CN110597735B

    公开(公告)日:2021-03-05

    申请号:CN201910907932.7

    申请日:2019-09-25

    摘要: 本发明提供了一种面向开源软件缺陷特征深度学习的软件缺陷预测方法,属于软件工程技术领域。本发明包括:采集开源软件缺陷信息,构建软件缺陷数据库,将源代码生成抽象语法树;利用社团检测算法将抽象语法树进行剪枝得到缺陷子树,然后结合修复描述和项目基础信息、源代码来建立缺陷子树的信息语料库,从中提取主题单词并转化为向量表示,作为缺陷子树中节点的属性;最后建立基于图分类的卷积神经网络的软件缺陷预测模型,将缺陷子树表示为邻接矩阵和属性矩阵作为模型的输入训练卷积神经网络,识别待预测软件模块源代码是否具有缺陷倾向性。本发明利用深度学习的方法直接从结构化的软件代码中提取缺陷深度特征,能够取得更好的缺陷识别效果。

    一种基于抽象语法树的开源软件缺陷数据分类方法及系统

    公开(公告)号:CN112181428A

    公开(公告)日:2021-01-05

    申请号:CN202011036601.X

    申请日:2020-09-28

    IPC分类号: G06F8/41 G06F11/36

    摘要: 本发明公开了一种基于抽象语法树的开源软件缺陷数据分类方法及系统。该方法包括:获取软件缺陷源代码信息;软件缺陷源代码信息包括缺陷修复前的代码文件和缺陷修复后的代码文件;生成软件缺陷源代码信息的抽象语法树,并确定抽象语法树的修改行为信息;基于修改行为信息中的修改节点识别有意义节点;基于有意义节点和有意义节点的行为名称识别潜在节点和潜在行为名称;基于潜在节点和潜在行为名称生成缺陷类别信息,并对缺陷类别信息进行整合,得到缺陷分类结果;缺陷类别信息包括缺陷模块信息和缺陷修复方式信息。本发明能解决人工操作过程复杂、人力成本和时间成本高、受主观意见影响分类过程、缺陷分类数据来源有限的问题。

    一种软件复用代码检测方法及系统

    公开(公告)号:CN110554868B

    公开(公告)日:2020-07-31

    申请号:CN201910857936.9

    申请日:2019-09-11

    IPC分类号: G06F8/36 G06F11/36

    摘要: 本发明公开一种软件复用代码检测方法及系统。该方法包括:获取两个待检测软件的软件代码;以软件代码中的函数作为节点,以函数之间的调用关系作为边建立软件函数网络;分别计算两个软件函数网络特征参数;特征参数包括节点参数和边参数;节点参数包括节点结构特征参数和节点代码特征参数;根据各个节点与周围节点的连通关系将两个软件函数网络中的各个节点进行分类;根据节点参数计算两个软件函数网络中属于同一类别的节点中的相似节点,得到多组相似节点对;以每组相似节点对作为基准节点,逐步识别两个软件函数网络中的相似边,得到多对相似子网,从而确定每对相似子网所对应的软件代码为复用代码。本发明能提高复用代码的检测精度。

    基于增强代码属性图的软件缺陷预测方法及预测装置

    公开(公告)号:CN114780403A

    公开(公告)日:2022-07-22

    申请号:CN202210426987.8

    申请日:2022-04-21

    IPC分类号: G06F11/36 G06F8/41

    摘要: 本申请公开了一种基于增强代码属性图的软件缺陷预测方法及预测装置。其中,所述软件缺陷预测方法,包括以下具体步骤:对软件源代码进行图形化建模,得到增强代码属性图;根据目标缺陷类型筛选所述增强代码属性图,得到潜在缺陷节点集合;根据所述增强代码属性图、所述潜在缺陷节点集合、区域提取算法,得到缺陷特征识别区域子图;处理所述缺陷特征识别区域子图,得到节点属性矩阵和缺陷结构矩阵;通过软件缺陷预测模型处理所述节点属性矩阵和所述缺陷结构矩阵,得到所述软件源代码的缺陷预测结果。本申请通过增强代码属性图、缺陷特征识别区域子图及软件缺陷预测模型的综合运用,提高了软件缺陷预测性能。

    一种基于代码语义及背景信息的软件缺陷数据采集系统

    公开(公告)号:CN110134613B

    公开(公告)日:2020-09-08

    申请号:CN201910429108.5

    申请日:2019-05-22

    IPC分类号: G06F11/36 G06K9/62 G06N20/00

    摘要: 本发明公开了一种基于代码语义及背景信息的软件缺陷数据采集系统。所述软件缺陷数据采集系统包括数据分析模块、数据采集模块、数据处理模块和数据库模块;利用GitHub网站的合并请求工作流作为标记索引,实现了既包括软件缺陷代码,又包含软件缺陷背景信息的软件缺陷数据的采集,解决了大部分软件缺陷数据采集方法存在的数据量少,数据来源不足,缺乏背景信息,数据标记准确度差,类不平衡问题严重的缺陷。

    一种面向开源软件缺陷特征深度学习的软件缺陷预测方法

    公开(公告)号:CN110597735A

    公开(公告)日:2019-12-20

    申请号:CN201910907932.7

    申请日:2019-09-25

    摘要: 本发明提供了一种面向开源软件缺陷特征深度学习的软件缺陷预测方法,属于软件工程技术领域。本发明包括:采集开源软件缺陷信息,构建软件缺陷数据库,将源代码生成抽象语法树;利用社团检测算法将抽象语法树进行剪枝得到缺陷子树,然后结合修复描述和项目基础信息、源代码来建立缺陷子树的信息语料库,从中提取主题单词并转化为向量表示,作为缺陷子树中节点的属性;最后建立基于图分类的卷积神经网络的软件缺陷预测模型,将缺陷子树表示为邻接矩阵和属性矩阵作为模型的输入训练卷积神经网络,识别待预测软件模块源代码是否具有缺陷倾向性。本发明利用深度学习的方法直接从结构化的软件代码中提取缺陷深度特征,能够取得更好的缺陷识别效果。

    一种基于代码语义及背景信息的软件缺陷数据采集系统

    公开(公告)号:CN110134613A

    公开(公告)日:2019-08-16

    申请号:CN201910429108.5

    申请日:2019-05-22

    IPC分类号: G06F11/36 G06K9/62 G06N20/00

    摘要: 本发明公开了一种基于代码语义及背景信息的软件缺陷数据采集系统。所述软件缺陷数据采集系统包括数据分析模块、数据采集模块、数据处理模块和数据库模块;利用GitHub网站的合并请求工作流作为标记索引,实现了既包括软件缺陷代码,又包含软件缺陷背景信息的软件缺陷数据的采集,解决了大部分软件缺陷数据采集方法存在的数据量少,数据来源不足,缺乏背景信息,数据标记准确度差,类不平衡问题严重的缺陷。

    一种基于抽象语法树的开源软件缺陷数据分类方法及系统

    公开(公告)号:CN112181428B

    公开(公告)日:2021-10-22

    申请号:CN202011036601.X

    申请日:2020-09-28

    IPC分类号: G06F8/41 G06F11/36

    摘要: 本发明公开了一种基于抽象语法树的开源软件缺陷数据分类方法及系统。该方法包括:获取软件缺陷源代码信息;软件缺陷源代码信息包括缺陷修复前的代码文件和缺陷修复后的代码文件;生成软件缺陷源代码信息的抽象语法树,并确定抽象语法树的修改行为信息;基于修改行为信息中的修改节点识别有意义节点;基于有意义节点和有意义节点的行为名称识别潜在节点和潜在行为名称;基于潜在节点和潜在行为名称生成缺陷类别信息,并对缺陷类别信息进行整合,得到缺陷分类结果;缺陷类别信息包括缺陷模块信息和缺陷修复方式信息。本发明能解决人工操作过程复杂、人力成本和时间成本高、受主观意见影响分类过程、缺陷分类数据来源有限的问题。