基于软件工程中主流静态分析工具的分类模型

来源 :兰州大学 | 被引量 : 0次 | 上传用户:xuliyong
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在软件工程领域,源代码分析是软件上线前必不可少的一环。静态分析工具的作用就是在不执行代码的情况下检查代码的缺陷,并对可能的缺陷生成报告。目前,Coverity,Kolowork,CppTest等主流的静态分析工具在源代码分析方面都有着不错的表现。然而这些工具所生成的报告中原本不存在的代码错误数量比代码本身所存在的错误要多出至少3倍以上,这使代码审核工作变得庞大而复杂。随着人工智能的高速发展,现有的分类模型日趋成熟。本文尝试将人工智能运用在软件工程领域,从而提出使用人工智能算法对静态分析工具的结果进行分类预测,将报告中真的代码错误与非代码错误分开,来大幅度降低人工审核的难度。本文将人工智能算法运用到源代码分析的尝试中。首先,针对静态分析工具所生成的分析报告中不同的数据特征,我们采用了与之相对应的特征工程方法来提取更多信息。对于自然语言特征我们采用了TF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文件频率)算法、LSI(Latent Semantic Index,隐含语义索引)等自然语言处理方法,对于有序特征我们进行了数字转化,对于类别型特征我们进行了 one-hot编码之后并科学降维保证了数据所携带信息的完整性。接着,由于人工智能算法对训练数据的要求,考虑到人工打标签的巨大工作量,本文提出采用半监督学习算法通过机器为训练数据打标签,这样可以使得在不损失数据有效性的前提下,尽量保证最终模型的分类准确率。最后,本文采用了LightGBM(Light Gradient Boosting Machine)进行分类,给出最终的分类模型。本文采用的软件项目含有106372个C++文件,其中包含的代码错误共65363个。我们分别采用Coverity,KlocWork,CppTest和codesonar四种主流的代码分析工具对其进行扫描形成报告。实验证明,本文提出的基于弱监督的分类模型在4个报告集上都获得了不错的效果,实现了人工智能在软件工程领域的应用。
其他文献
目的:系统探索评价窄带成像技术膀胱镜(NBI)膀胱镜相对于普通白光膀胱镜(WLI)在非肌层浸润性膀胱肿瘤(NMIBC)患者的诊疗价值。方法:收集PubMed、Medline、EMBASE,CNKI(中国国
2003年,李宏晨游戏装备被盗事件使得“网络虚拟财产”引起了司法界的重视。此后十几年间,侵犯网络虚拟财产案件屡见不鲜,但是由于我国法律体系中部门法诸多,包括刑法、民法、
阐述图书馆用户对文献信息需求的特点,有消遣需求、学习需求和研究需求。需求的文献可分为“面”、“线”和“点”3种类型。探讨用户在寻找文献信息过程中的心理效应,有第一印
目的探讨气管插管固定方法改良的应用及护理效果。方法50例需要气管插管患者,按照随机方式分为实验组和对照组,每组25例。对照组患者采用传统的气管插管固定方法,实验组患者
感应耦合电能传输(Inductively Coupled Power Transfer,ICPT)技术是指基于电磁感应原理实现电能从电源端到用电设备端的无电气连接传输技术,其具有供电灵活、安全可靠、维护
目的:观察米索前列醇用于预防产后出血的效果。方法:抽取2000年3月-7月340例及2000年9月-2001年1月产发340例在我院分院分娩产妇。前者为基线组,后者为干扰组,基线组即按常规给予宫
谷氧还蛋白(GRXs)是植物中广泛存在的一类依赖谷胱甘肽的氧化还原酶,在植物生长发育以及抵御逆境的过程中发挥着重要的作用。植物中的GRXs按照活性位点的保守氨基酸分为CPYC
随着我国经济的高速发展与公路网络的快速构建,各行各业对商用车的需求日益增多,商用车现已成为人们生活中不可或缺的交通运输工具,但是体积大、装载重、惯性大的商用车在运