面向Java和Kotlin混用代码的空指针分析方法研究

来源 :吉林大学 | 被引量 : 0次 | 上传用户:dongshengly
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
空指针异常是软件开发过程中一类常见的缺陷,是导致软件运行异常或者强制退出的一个重要原因。Kotlin作为近年来新兴的一门安卓开发官方语言,其自身对空问题有着严格的安全检查。然而,由于Kotlin出现时间较短以及项目的持续开发性,很多项目实际由Kotlin和Java共同开发。当两种语言代码混合时,Kotlin在与Java互操作时会放宽对Java部分所传递信息的空检查,由此将会引发更多的空指针异常问题。目前,空指针问题的研究工作主要集中在Java语言开发的项目,难以支持Java和Koltin两种语言混合开发项目中此类问题的有效检测。因此,本文提出了一个面向Java和Koltin混用代码的空指针分析方法,以程序静态分析为基础,通过解析混用代码中数据的流动路径,发现可能出现的潜在空值,进而实现对空指针问题的准确定位。具体工作内容如下:(1)针对混合代码进行数据流分析。基于区间分析方法获取程序中方法内的控制流信息,同时,利用类层次方法确定函数调用关系,进而通过各个方法的控制流信息和函数调用关系整合得到程序整体的控制流信息。以此为基础,按照函数调用拓扑关系倒序分析函数并生成函数摘要,存储方法名、参数和返回值等关键信息,并对程序的控制流进行特征信息提取和定值信息生成,完成程序整体的数据流分析。(2)基于数据流信息进行空指针问题的定位。基于混合代码中的空指针故障进行详细分析,将混合代码中的空指针故障抽象成一种模式,建立故障模式状态机。在混合代码数据流信息的基础上迭代状态机,通过计算状态转换条件分析状态改变,探测可能存在的空指针故障。将探测到的空指针故障生成空指针故障报告,提交给开发人员,为项目的开发和测试提供参考信息。(3)通过对GitHub上的三个项目进行实验并对分析结果进行调查研究,验证方法的有效性和实验结果的有用性。结果表明,本文所提方法能够依据对代码的数据流分析检测潜在空指针异常,平均召回率为82.67%,平均准确率为77.04%,具有较高召回率和准确率。参与者对空指针故障结果的平均认可度为83.67%,可视化报告的平均认可度为82%,参与者具有较高认可度。上述结果证明本文方法能够为开发者在软件开发和测试中的空指针分析提供重要参考。
其他文献
目前,消防工作对于保证城市安全意义重大,对于一个城市来讲,火灾是一类常见的、危害高的安全问题。尤其是对于高层建筑而言,一旦发生火灾,不仅会造成较大的财产损失,也可能引起较大的人员伤亡问题。所以,在日常消防工作中,就要针对高层建筑等重点建筑或场所做好防火监督,及时消除存在的安全隐患,确保高层建筑的整体安全。
期刊
城市高层建筑消防设备正常是保证消防安全的关键,火灾是对建筑构成毁灭性打击灾害,建筑火灾存在时空不确定性,投入资金配套设置建筑消防设备保证正常功能状态对消防安全具有重要作用,高层建筑主红消防设备检查管理中存在许多问题影响消防安全,表现为检测技术水平低,检测人员素质差等,加强消防设备监督检查非常重要。概述建筑消防设施设备的作用,论述建筑消防设备监督检查的重要性;分析建筑消防设备维护管理中存在的问题,提
期刊
工业机器人的发展随着中国制造2025的进行也越来越迅速。机器人是新时代发展的一个重要领域,现在是工业生产中使用的一种常见的机械。许多危险、高强度的工作都可以被机器人取代。随着机器人的发展,应用越来越广泛且都趋向于轻便和高效。并联机构在工业机器人的应用中具有越来越大的优势。本文以3-CRCR/CU并联机构为研究对象,分别从自由度分析、运动学分析、工作空间分析以及进行运动仿真分析。本文主要研究内容为:
学位
在深度强化学习的方法中,通常会采用经验回放,目的在于提高数据利用效率并打破经验之间的时序相关性,缓解在复杂任务中容易出现的经验遗忘现象。比较常用的经验回放方法为了稳定性往往会在经验选择阶段采用随机均匀采样的方法,而这种采样形式一方面受经验时序关系的影响,会使得采样不均衡,导致后期经验采样频次过低,不利于提升智能体学习过程的收敛速度。另一方面它忽略了不同经验之间在学习价值上的差异性,无法实现对经验的
学位
在市政建设过程中基坑支护施工是重点内容,能够在市政结构设计和施工方面发挥非常重要的作用。基于此,本文介绍主要的基坑支护技术施工内容,分析市政结构设计和施工在运用基坑支护技术时需要遵循的原则,并以市政工程实例为依据,探讨市政结构设计与施工中应用基坑支护技术的情况。
期刊
兴趣点推荐是随着基于位置的社交网络(LBSNs)的流行而出现,因为各大软件定位技术的开发能找到用户的每一个行为轨迹。近年来兴趣点推荐备受关注,通过将用户和兴趣点联系在一起,为目标用户推送未来可能会签到的兴趣点,可以减少用户选择兴趣点的时间并且更好挖掘人们的生活规律。兴趣点推荐使用了用户之前的访问历史来构造行为轨迹,表示了用户对兴趣点(POI,point-of-interest)的潜在偏好,推荐给以
学位
目的 探讨对精神分裂症暴力行为患者实施行为干预联合心理护理的临床效果。方法 抽取72例精神分裂症患者进行研究,入组患者均为本院2020年12月~2021年12月期间收治的住院患者,患者均存在暴力行为。以随机数表法为依据,对所抽取的患者实施随机分组。所分组数为两组,分别设为对比组和干预组,分别施以常规护理措施以及行为干预联合心理护理措施。比较两组患者外显攻击行为量表(MOAS)、简明精神病评定量表(
期刊
财务标准化管理及财务内部控制是国有企业财务管理的重要工作,同时也是防范国有企业财务风险的有效举措。通过加强财务管理控制、防范各类风险,可保障国有企业快速发展。重点分析国有企业财务管理中采取标准化管理及构建内部控制体系的重要性,同时梳理国有企业财务标准化管理现存问题,并提出相应的对策,推进国有企业标准化管理及构建内部控制体系的进程。
期刊
<正>本文结合笔者的实践经验,介绍了建筑电气安装中强电施工的方法与措施,对于积累建筑强电施工经验、提升强电施工技术水平具有一定的现实意义。1建筑电气安装中强电施工的重要意义强电施工是建筑电气工程中的重要组成部分,是实现建筑各项电气功能的硬件基础,不仅关系到建筑施工质量,还会影响后期使用的安全性[5]。鉴于强电施工的重要作用,在对建筑电气强电部分进行规划设计时,需要充分结合强电施工工程的特征,
期刊
报纸