首页 - 范文大全 - 文章正文

国产自主可控概念(基于缺陷模式的静态分析技术在自主可控平台的应用)

时间:2020-09-29 14:41:43 作者:黑曼巴 分类:范文大全 浏览:48

以最具代表性的FindBugs为例:FindBugs关注的缺陷模式被硬编码到工具的几个缺陷模式检查器中。2自主平台:自主平台采用国产龙芯和飞腾芯片架构,运行基于Linux的新麒麟操作系统。1)根据迁移经验,形成针对自主可控平台的缺陷模式库。2)提供了缺陷模式库的半自动扩展机制。用户选择模板并填写必要的信息,以生成满足格式要求的“缺陷模式描述”,然后将其添加到缺陷模式库中。缺陷模式分为三类:Java语言缺陷模式、JavaScript语言缺陷模式和SQL语言缺陷模式。

1静态分析技术静态代码缺陷分析技术使用对代码的静态分析来猜测程序运行时的性能行为,从而发现代码中可能存在的缺陷[1]。这种技术主要包括自动抽象解释、定理证明、模型检验、符号执行和基于缺陷模式的代码检验。在使用这些工具的过程中,用户经常希望扩展“缺陷模式”的知识,以便这些工具能够支持检测对所关心的“代码缺陷”。然而,大多数当前的工具并没有为用户“添加新的缺陷模式”提供强有力的支持。虽然一些工具支持用户扩展他们对缺陷模式的知识,但是他们特定的扩展方法在易用性上仍然是不够的。以最具代表性的FindBugs为例:FindBugs关注的缺陷模式被硬编码到工具的几个缺陷模式检查器中。当需要FindBugs来检查新的缺陷模式时,用户必须手动修改工具程序,甚至编写缺陷模式检查器的代码来检查新的缺陷模式。PMD借鉴了FindBugs通过“用户手动编写检测代码”来扩展工具功能的思想,并引入了XPath表达式来减少用户的编码量,但是这种扩展仍然需要用户花时间学习如何使用XPath。Jlint和Lint4j都没有提供缺陷模式知识的扩展机制。2自主平台:自主平台采用国产龙芯和飞腾芯片架构,运行基于Linux的新麒麟操作系统。由于Wintel环境下的底层操作指令、硬件环境和系统开发环境与国内独立可控平台有很大不同。例如,由于Windows平台与Linux平台底层操作指令的不同,以及英特尔芯片架构与龙芯、飞腾,国产芯片的不同,原来在政府、企事业单位开发的基于Windows集成开发环境的各种应用系统与Linux平台开发环境不兼容,导致原来的应用软件无法直接在国内服务器和国内终端上运行。为了探索一种高效易用的扩展模式,从而降低用户的学习成本,快速提高工具的缺陷发现能力,提出了一种支持半自动扩展的代码缺陷静态分析方法。1)根据迁移经验,形成针对自主可控平台的缺陷模式库。基于以往应用系统迁移过程中遇到的问题和解决方案,总结了一套迁移经验库,形成了一个适用于自主可控平台应用系统代码静态分析的缺陷模式库。该库包含对,和对应用系统源代码静态分析所需的缺陷模式描述,并总结了每个缺陷模式的建议解决方案和所需工作量。2)提供了缺陷模式库的半自动扩展机制。提供了几种不同类型的“缺陷模式描述模板”。用户可以根据自己的需要选择合适的模板来快速添加缺陷模式。用户选择模板并填写必要的信息,以生成满足格式要求的“缺陷模式描述”,然后将其添加到缺陷模式库中。缺陷模式库的半自动扩展机制使得用户不必手工编写代码,也不必花费太多精力学习某种语言来描述缺陷模式。基于该方法,实现了一个代码迁移评估工具,该工具可以检查应用系统的兼容性,指导对,迁移前的准备工作,评估和指导对应用系统的自主可控迁移。缺陷模式分为三类:Java语言缺陷模式、JavaScript语言缺陷模式和SQL语言缺陷模式。Java语言的缺陷模式可以细分为系统调用缺陷模式、新数组/容器对缺陷模式和对实例化缺陷模式。

其中,系统调用缺陷模式是指Java程序调用系统相关的脚本或可执行程序,由于自主可控平台运行基于Linux的操作系统,原本在windows上调用的脚本或可执行程序无法在自主可控平台上运行。新的阵列/容器对图像缺陷模式和对图像实例化缺陷模式涉及Java垃圾自动恢复机制。Java垃圾自动恢复机制影响了自主可控平台上JVM的运行效率,因此建议采用手动恢复。JavaScript语言的缺陷模式可细分为方法调用缺陷模式、ActiveX缺陷模式、对对话框打开缺陷模式、页面跳转缺陷模式和页面元素获取缺陷模式。方法调用缺陷模式意味着一些JavaScript方法,如innerText,可以在IE中正常工作,但在自主可控平台的Linux系统上没有IE浏览器,需要与火狐浏览器兼容;ActiveX缺陷模式意味着ActiveX控件可以在IE下使用;在火狐下,它不能被使用。ActiveX控件技术仅限于Windows平台,火狐插件需要基于NPAPI或QtBrowserPlugin进行重新开发。与JavaScript语言相关的缺陷模式是为了解决火狐浏览器的兼容性问题。SQL语言缺陷模式是指内置的函数缺陷模式。在windows平台上开发的原始应用系统使用了SQL Server、MySQL、Oracle等数据库。自主可控平台需要运行国内数据库,如达梦数据库和阿凡达数据库。虽然这两种类型的数据库都支持标准的SQL语句,但是内置函数有很大的不同。SQL语言缺陷模式的目的是解决数据库内置函数的不兼容性。4分析过程4.1获取源程序通过读取用户指定的源程序所在的目录,获取该目录下的所有文件。遍历该目录中的所有文件和文件夹,并根据要分析的问题类型进行过滤,如分析java语言的缺陷,注意带有扩展名的源程序文件”。Java”,分析JavaScript语言,注意带有扩展名的源程序文件”。js”,并跳过第三方库文件。汇总所有相关文件的基本信息,形成文件信息的数据模型。

4.2分析源程序对源程序,逐行扫描,删除不需要分析的代码,过滤掉这里以“//”开头的单行注释;以“/*”开头、以“*/”结尾的多行块注释;以“@”开头的声明性语句;单独的行括号,包括小括号()、中间括号[]、大括号{}和空行。同时,分析源代码。对分析了java类的基本信息。Java "文件,包括类名、包、引用包、数据成员及其类型、成员方法及其参数号、参数类型及其返回值。最后,被分析的源代码和相关信息被存储在文件模型中用于缺陷分析。4.3加载缺陷模式并将缺陷模式存储在数据库中。在缺陷分析之前,有必要根据要分析的文件类型和缺陷类型从数据库中读取。成功加载缺陷模式后,它将被存储为缺陷模式数据模型,用于缺陷分析。4.4缺陷分析基于步骤2中生成的文件模型和步骤3中生成的缺陷模式数据模型。首先,遍历文件模型,对每个文件模型,遍历缺陷模式数据模型,并匹配模型。如果匹配成功,则表明文件有缺陷。最后,缺陷匹配信息被存储为数据模型。4.5生成分析结果基于步骤4中生成的数据模型,生成分析结果。根据缺陷模式来区分分析结果,并且对每个缺陷模式使用对,并且总结缺陷模式匹配成功的文件,并且总结缺陷模式匹配成功的次数和每个文件中的行数。对于每种缺陷模式,对还会列出对,的解决方案建议,用户可以根据解决方案建议修改源代码。5.总之,对现有的大多数静态代码缺陷发现工具没有为用户提供足够的易于使用的缺陷模式扩展机制。提出了一种基于缺陷模式的支持半自动扩展的静态缺陷分析技术,并详细描述了该技术如何应用于自主可控的代码评估平台。在接下来的工作中,有必要继续扩展该方法支持的缺陷模式,并尽可能为用户提供一种方便易用的扩展模式,以帮助用户更快地管理缺陷模式。

上一篇:高中物理力学(剖析物理图象涵义 解决物理力学问题)

下一篇:(《同上一堂课,雷锋告诉我》观后感)

猜你喜欢
发布评论
登录后发表评论
登录后才能评论

AI 新用户?

免费使用内容重写服务

开始新的写作