基于静态程序分析的Python文档缺陷检测方法

来源 :南京大学 | 被引量 : 0次 | 上传用户:myulyx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
现代软件开发通常由许多个人的贡献组成,并且严重依赖可重用的软件构件,如库和框架等,以提高效率。为了正确使用他人的代码,开发人员需要理解文档和源代码,以熟悉必要的知识。文档作为承载软件系统领域知识的重要载体,其正确性与可靠性直接影响到包括程序理解、系统维护等软件工程任务的完成质量。由于现代软件系统的快速迭代与演化,文档很容易过时或包含错误信息。然而由于文档和源代码本身的体系繁杂,手动找出缺陷是非常耗时且容易出错的。因此,自动化检测出Python文档中的缺陷,提高系统文档的准确性和可维护性,具有非常重要的现实意义。本文的主要研究内容为一种基于静态程序分析的Python文档缺陷检测方法。针对Python项目来说,在优秀的代码注释中,通常会包含参数说明、设计原理、范例代码等信息。我们聚焦于以上三个方面,即示例代码错误检测、参数约束一致性检测以及反语言模式检测,这涵盖了API文档中对用户理解最重要的三个方面。本文通过将开源Python框架的源代码包解析成抽象语法树,对Python文档进行静态分析,从而对Python文档中的存在的缺陷进行自动检测。主要方法为:从源代码包的注释中提取代码示例,对示例中所提及的代码名进行分析,检测其是否被预定义过;提取源代码中方法的参数异常规范以及注释中相关的参数使用约束,检测是否存在不一致的情况;从源代码包中提取出对外开放的方法,对代码中的方法名进行反模式检测,最后统一输出文档缺陷。本文在包括Num Py、Sci Py、Sklearn等十个框架上开展实验验证,包括4000多个文件和170多万行Python代码。其中,输入内容为框架的源代码包,输出内容为所检测到的三类文档缺陷。我们检测到了示例代码缺陷数145个,约束条件缺陷数464个,反模式缺陷数324个,经人工检验,可达到68%的精度和75%的召回率,极大地提高了检测文档缺陷的效率。
其他文献
2018年3月,《中华人民共和国监察法》出台,此乃以反腐败斗争经验为基础,总结制定的反腐败国家立法,显著推进了我国治理体系和治理能力的现代化。强力整合了原本较为分散的反
地下环境的污染在简单的垃圾填埋场渗滤液的渗漏问题已引起越来越多的关注和重视从社会。这样填埋区的治疗通常是一个全面的修复方法。垂直防渗墙是污染控制的重要措施,并且
外源性有机污染物给人类健康带来了潜在的危害,开发高灵敏度、快速的分离富集检测方法及高效的去除降解技术对控制污染物残留至关重要。近年来,沸石咪唑酯骨架纳米粒子作为一种具有超大比表面积、稳定性优异、可调控的笼状金属有机骨架材料,为实现食品和环境水中微量外源性有机污染物的快速分离富集及高效的去除提供了新思路。本论文构建了可调控的笼状ZIF-8复合材料,用于环境外源性有机污染物的高效分离富集及去除。(1)
证监会宣布将于2020年取消我国证券业对外资持股比例上限的限制,我国证券市场即将迎来全面对外开放的新篇章。券商作为IPO(Initial Public Offering)市场中生产财务信息和认证新股发行企业质量的重要中介机构,外资机构的进入会直接影响我国券商的声誉、执业水平与监管力度,而券商的声誉、执业水平以及对IPO公司监管力度均会影响IPO市场信息不对称程度,继而对IPO市场的效率产生差异化影
本课题的选择与研究基于笔者在导师的引导下对数字媒体专业的理解与对电影美术中视觉元素的研究与思考,通过增强现实技术,实现社交应用程序中具有沉浸感画面的制作;同时基于对传播学理论的探索,实现社交应用程序中的匿名自由讨论模式。本课题在设计学、戏剧与影视学、传播学的理论依托下,采用文献研究、市场调研、大数据实时分析、多学科交叉应用的研究方法,实现了从对数字媒体的理论研究到对增强现实移动应用程序的创作开发。
作为后黑格尔时代伟大的哲学家,尼采的权力意志、超人学说、“上帝死了”等诸多哲学理论受到人们的普遍关注,对现当代西方哲学也产生了极其深远的影响。但尼采关于科学的相关
随着我国经济社会的快速发展,人才越来越成为企业生存发展的重要组成部分,员工工作满意度和组织承诺更加受到业界和学界的重视。提高企业员工工作满意度,优化企业员工组织承诺,有助于降低离职率与培训成本,提高员工的工作积极性与企业忠诚度。D公司是一家地方政府全资控股公司,承担着城市保障性住房、市政工程等项目开发建设的重要职能。进行员工工作满意度和组织承诺研究,客观评价员工工作满意度和组织承诺现状,分析公司在
在实际工业生产中,被控对象不可避免会受到外部环境变化和人为操作不当所造成控制系统间存在不确定性、外界扰动及输入输出约束等不利因素影响,可能会导致系统跟踪不上设定值甚至造成系统运行不稳定。因此如何保证系统在可以有效跟踪上被控对象设定值的同时,实现最优控制是现代工业中仍需解决的一个重要问题。本文致力于研究上述工业过程控制方法中所存在的不足,提出基于扩展状态空间模型的鲁棒预测控制方法。本文首先将具有不确
近年来,根据信令和语音内容的电话分类技术已经取得了广泛的研究成果,但是在信令不完整或语音内容相关性弱的电话分类问题中难以有效应用。而电话分类问题在众多应用场景里非常重要,本文针对该问题展开研究,提出了基于音频特征的电话分类方法。本文提出了基于音频统计特征的VoIP电话分类方法。该方法通过提取和基于统计学方法计算音频中可区分VoIP与电信电话的特征,利用基于决策树的随机森林和LightGBM实现特征
状态反馈控制是一个系统研究中最常用和最基本的方法,然而在实际条件下,由于经费、设备和网络的限制,经常导致不能直接获取系统的状态信息,这就需要根据建立合适的观测器,以估计系统的状态.所以设计观测器的本质就是对原来的系统信息进行重构,同时又保留原系统的性质.因此观测器的设计,在实际工程中具有重要的意义,从而也引起了越来越多学者的兴趣.本论文主要针对几类不同的线性系统设计了相应的状态观测器,以使观测的状