面向对象类源代码的编程逻辑建模与应用
发布时间:2021-10-09 12:04
美国国防部高级研究计划局于2014年提出MUSE计划,研究如何在大规模开源代码库上挖掘深层次的规范和协议并指导开发人员完成软件领域的复杂工作。编程逻辑的挖掘作为其中的一项关键技术逐渐成为国内外学者的研究热点。本课题以开源代码为研究对象,针对人类编程过程存在的普遍规则和个性化习惯,研究面向对象类开源代码编程逻辑建模与应用,挖掘人类编程的潜在逻辑和规则,为漏洞挖掘技术、预测编程行为、修复和构建复杂软件提供基础性支持。全文主要工作如下:1.对编程逻辑的概念进行了阐述,分析了研究编程逻辑的相关问题,在此基础上提出一种了面向对象类开源代码编程逻辑的研究框架,明确了各个研究内容之间的联系,为编程逻辑的研究奠定了基础。2.针对面向对象开源代码的复杂结构给编程逻辑分析建模带来困难的问题,提出一种面向对象语言代码分析方法,在以对象为分类标准、以方法调用序列为基本结构的基础上,融合别名归并和程序结构分析策略,尽可能保留程序原有语法结构信息,将源代码转化为统一范式的数据形式,为编程逻辑的研究奠定数据基础。3.针对现有适用于大规模数据的代码模型没有充分利用代码的语法、结构信息,对开发人员编程思维逻辑的描述存在...
【文章来源】:战略支援部队信息工程大学河南省
【文章页数】:57 页
【学位级别】:硕士
【部分图文】:
实验结果图
表 4.6 三种类型的 Java 类代表分类 类数据结构类java.lang.Stringjava.lang.Integerjava.util.Listjava.lang.Characterjava.lang.Doublejava.util.Calendar内部功能类java.util.Mapjava.util.HashMapjava.lang.reflect.Methodjava.util.regex.Patternjava.io.StringWriterjava.util.Locale外部接口类java.io.Filejava.io.InputStreamjava.io.FileInputStreamjava.net.URLjavax.servlet.http.HttpServletRequestjava.io.Reader
文件1文件2文件n模型1模型2模型n向量1向量2向量n图 5.1 基于 CPMMC 的面向对象代码缺陷检测方法流程图5.2.1 基于 CPMMC 的特征向量构建在第四章中,本文提出了方法约束关系的概念,并基于方法约束关系构建了代码逻辑模型 CPMMC。在 CPMMC 中,面向对象源代码被抽象为对象方法调用序列的集合,实验验证了该模型能在一定程度上反应开发人员在编写程序时的编程逻辑。本章方法采用同样的思想抽象源代码,形式化表示为:1 2{ , , , }nCode Class Class Class(5.1)1 2{ , , , }Object Object ObjectnClass Seq Seq Seq(5.2)1 2 nSeq Method Method Method(5.3)Method ClassN , Name, Return ,Relation (5.4)在代码抽象的基础上,本文受词袋模型(Bag of words)的启发,采用 N-gram 方法将每个对象的方法调用序列进行切分,例如,我们考虑第四章中表 4.1 中的代码片段,该片段可被抽象为 3 个对象的代码特征词序列,如表 4.2 所示。当采用 unigram(N-gram 切分时
【参考文献】:
期刊论文
[1]一种微观漏洞数量预测模型[J]. 聂楚江,赵险峰,陈恺,韩正清. 计算机研究与发展. 2011(07)
[2]采用统计技术的假设检验方法推断化验室检测差异[J]. 谢天泉. 冶金标准化与质量. 2006(03)
[3]基于支持向量机的入侵检测系统[J]. 饶鲜,董春曦,杨绍全. 软件学报. 2003(04)
本文编号:3426340
【文章来源】:战略支援部队信息工程大学河南省
【文章页数】:57 页
【学位级别】:硕士
【部分图文】:
实验结果图
表 4.6 三种类型的 Java 类代表分类 类数据结构类java.lang.Stringjava.lang.Integerjava.util.Listjava.lang.Characterjava.lang.Doublejava.util.Calendar内部功能类java.util.Mapjava.util.HashMapjava.lang.reflect.Methodjava.util.regex.Patternjava.io.StringWriterjava.util.Locale外部接口类java.io.Filejava.io.InputStreamjava.io.FileInputStreamjava.net.URLjavax.servlet.http.HttpServletRequestjava.io.Reader
文件1文件2文件n模型1模型2模型n向量1向量2向量n图 5.1 基于 CPMMC 的面向对象代码缺陷检测方法流程图5.2.1 基于 CPMMC 的特征向量构建在第四章中,本文提出了方法约束关系的概念,并基于方法约束关系构建了代码逻辑模型 CPMMC。在 CPMMC 中,面向对象源代码被抽象为对象方法调用序列的集合,实验验证了该模型能在一定程度上反应开发人员在编写程序时的编程逻辑。本章方法采用同样的思想抽象源代码,形式化表示为:1 2{ , , , }nCode Class Class Class(5.1)1 2{ , , , }Object Object ObjectnClass Seq Seq Seq(5.2)1 2 nSeq Method Method Method(5.3)Method ClassN , Name, Return ,Relation (5.4)在代码抽象的基础上,本文受词袋模型(Bag of words)的启发,采用 N-gram 方法将每个对象的方法调用序列进行切分,例如,我们考虑第四章中表 4.1 中的代码片段,该片段可被抽象为 3 个对象的代码特征词序列,如表 4.2 所示。当采用 unigram(N-gram 切分时
【参考文献】:
期刊论文
[1]一种微观漏洞数量预测模型[J]. 聂楚江,赵险峰,陈恺,韩正清. 计算机研究与发展. 2011(07)
[2]采用统计技术的假设检验方法推断化验室检测差异[J]. 谢天泉. 冶金标准化与质量. 2006(03)
[3]基于支持向量机的入侵检测系统[J]. 饶鲜,董春曦,杨绍全. 软件学报. 2003(04)
本文编号:3426340
本文链接:https://www.wllwen.com/shekelunwen/ljx/3426340.html