基于源码的疑问代码和不良编程习惯检测

来源 :北京邮电大学 | 被引量 : 3次 | 上传用户:chlo16105
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
本文介绍了作者在疑问代码和不良习惯检测方面所做的工作,包括疑问代码模式收集、分析和检测,并对疑问代码中一类重要模式--重复代码模式提出和实现了一种参数化非连续重复代码检测方法。 疑问代码指那些令代码走查人员产生疑问、其运行时表现不同于预期、违反了良好的编程实践规则的代码。我们采用基于源码的静态分析技术构建了面向缺陷的静态分析工具DTS,通过构造源码的抽象语法树、控制流图以及编译时上下文等数据,跟踪发现各种缺陷模式所表现的特征。在实践中作者收集了涵盖C/C++和Java语言的多种疑问代码模式,对其产生原因和表现特征进行深入分析,并结合缺陷检测系统DTS实现对这些模式的检测,在实现过程中引入了别名分析、定义使用系列链分析等技术。重复代码的出现往往意味着设计不合理并令人产生疑问,作者对重复代码检测技术进行了深入研究,设计和实现了一种基于抽象语法树和上下文信息的检测方法。在该方法中,作者设计了一套哈希计算规则将基于树结构的比较化简为简单数值比较,降低了算法复杂度并能够进行灵活的参数化匹配,同时利用上下文信息以一种有效的方式决定搜索距离,最终实现参数化非连续重复代码检测,获得了较好的结果。
其他文献
本体搜索引擎是本体选择与重用过程中的重要工具,在语义网快速发展的今天,随着本体文档的数量级不断攀升,本体搜索引擎的研究得到了越来越多的关注并发挥了日益重要的作用。近几
图像分割在计算机视觉领域应用广泛,是图像分析与图像处理中研究的重点和难点之一。生活中常见的图像为彩色图像,与灰度图像相比,彩色图像包含有更丰富的颜色和纹理信息,这些信息
计算机辅助的三维颅面复原采用计算机图形学技术从颅骨数据样本复原人脸面貌,可以应用于刑侦、考古、医学等领域。本文研究内容作为计算机辅助的三维颅面复原项目的一部分,研
许多组合最优问题都可以抽象为计算图的生成树问题。最小标记生成树就是其中之一,它的目标是给出一个边上带有颜色的图,计算使用颜色种类最少的生成树。这个问题在通信网络领
语义Web服务的主要研究内容包括服务发现,服务选择、服务组合以及服务监控等,其中一个重要的研究目标在于如何通过语义网技术提高web服务的用户查询体验,满足用户的个性化需
Web服务合成是指从互联网中选取相对简单、可用的Web服务并将它们组合成新服务的技术。对于该技术的研究已经引起了业界广泛的关注,众多研究机构都提出了自己的解决方案,比如
无线传感器网络在军事和民用领域有着广阔的应用前景,是目前一个非常活跃的研究领域。与传统网络不同,无线传感器网络资源非常有限,且以采集监测区域内的相关信息为主要任务,
随着信息技术的发展,数据规模呈爆炸性增长。为了满足数据存储的需求,大量数据中心被建立来存储数据。这些数据中心由大规模的存储集群构成,它们使用成千上万台大容量的服务器/
随着用户需求的改变,通信世界正在经历着从简单的通信方式到多元化通信方式的巨大变化。基于网络融合的下一代电信网因此被提了出来。而其异构网络的融合互通的特性会引发更
随着交通的发展,交通视频的处理越来越重要。本文重点研究固定背景下交通视频中运动目标的检测和跟踪技术,最后从一个系统的角度讨论了后续的特征提取和分类识别方面的内容。