【技术实现步骤摘要】
基于方法约束关系的代码预测模型的构建方法
本专利技术属于软件
,尤其涉及基于方法约束关系的代码预测模型的构建方法。
技术介绍
在软件开发过程中,开发人员需要调用大量的API,以实现软件的各种功能。但遗憾的是,开发人员通常无法掌握所有API的使用方法。当需要使用一个陌生的类时,即使是有经验的开发人员也需要花费大量的时间来学习该类以及其包含的数十种API的使用方法。为提高软件开发的效率,构建代码预测模型并实现代码推荐已成为目前代码分析领域的研究热点。之前的研究表明,编程语言具有良好的重复性。Gabel等人(GabelM,SuZ.Astudyoftheuniquenessofsourcecode[C].EighteenthACMSigsoftInternationalSymposiumonFoundationsofSoftwareEngineering.ACM,2010:147-156)观察到代码重复,并以6-40个代码元素的粒度报告语法冗余。如循环语句for(inti=0;i<n;i++)在许多源代码中频繁出现。Hindle等(HindleA,Ba ...
【技术保护点】
1.基于方法约束关系的代码预测模型的构建方法,其特征在于,包括以下步骤:步骤1:将面向对象代码抽象为对象涉及的方法调用语句序列集合,所述方法调用语句序列集合包括多个方法调用语句序列;所述方法调用语句序列包括一个对象涉及的所有方法调用语句;步骤2:根据方法之间的约束关系,将所述方法调用语句序列的方法调用语句表示为四元特征组,根据所述四元特征组得出所述面向对象代码的代码特征词序列集合;步骤3:利用N‑gram模型将所述代码特征词序列集合滑动切分为多个3‑gram序列,提取调用所述3‑gram序列,构建代码预测模型。
【技术特征摘要】
1.基于方法约束关系的代码预测模型的构建方法,其特征在于,包括以下步骤:步骤1:将面向对象代码抽象为对象涉及的方法调用语句序列集合,所述方法调用语句序列集合包括多个方法调用语句序列;所述方法调用语句序列包括一个对象涉及的所有方法调用语句;步骤2:根据方法之间的约束关系,将所述方法调用语句序列的方法调用语句表示为四元特征组,根据所述四元特征组得出所述面向对象代码的代码特征词序列集合;步骤3:利用N-gram模型将所述代码特征词序列集合滑动切分为多个3-gram序列,提取调用所述3-gram序列,构建代码预测模型。2.根据权利要求1所述的基于方法约束关系的代码预测模型的构建方法,其特征在于,所述步骤1包括:步骤1.1:将面向对象代码中的方法调用语句根据对象的不同进行分类,方法调用语句之间的相互顺序保持不变,对于包含多个对象的方法调用语句复制多份,放入每个对象中,Code={Object1,Object2,…,Objectn},Object=Method1·Method2…Methodn其中Objectn表示第n个对象涉及到的所有方法调用语句,即第n个对象涉及到的方法调用语句序列;Methodn表示同一个方法调用语句序列中的第n个方法调用语句;源代码被转化为若干个对象涉及的方法调用语句序列集合;步骤1.2:对面向对象代码中的别名现象和代码结构进行分析,并根据分析结果调整所述步骤1.1中所述方法调用语句序列集合,包括:对指向同一地址的不同别名进行归并,视为同一对象;对于条件选择结构,将Objectn根据条件的不同分成若干个相互独立的、不含有条件选择结构的子序列;对于循环结构,将循环的迭代次数统一限定为2次;步骤1.3:将所述步骤1.2调整后的方法调用语句序列集合根据所属类的不同进行分类Code={Class1,Class2,…,Classn},将类中每个对象涉及的方法调用语句...
【专利技术属性】
技术研发人员:刘琰,方文渊,魏强,刘楝,张文悦,左青松,
申请(专利权)人:中国人民解放军战略支援部队信息工程大学,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。