PVS-Studio中的诊断开发图

PVS-Studio开发

自从PVS-Studio产品问世以来已经过去8年多了,并且一直以来,我们一直在其中实施新的诊断规则。 而且我们不会停止。 如果您担心问题,这些年来我们是否失去了勇气,并且停止了PVS-Studio的开发,那么本文中的图表将删除这些问题。 分析仪正在积极开发中,并且发展速度仅在过去几年中有所提高。

在撰写本文时,PVS-Studio已实现669 诊断 ,其中许多是复杂的。 例如,我们认为没有理由追逐数量并为案例创建两个单独的诊断:条件始终为false,条件始终为true。 有人这样做,有人将这种诊断分为几部分。 例如,您可以找到用于对这些诊断进行拆分的工具:始终为错误的布尔表达式,将空指针用作条件,依此类推。 因此,诊断次数本身并不代表任何意义,而且,不值得根据诊断次数来比较不同的分析仪。 但是,有趣的是,PVS-Studio分析仪是如何随着时间而发展的。 为此,我决定为新诊断程序的出现建立时间表。

提出具有计划的想法比实施起来容易得多。 我们没有迹象表明这个版本或那个版本的PVS-Studio有多少诊断信息。 不知何故,甚至没有人想到开始写下这些价值观。 我不得不运用聪明才智和努力工作。

我们的站点列出了PVS-Studio版本中发生所有更改。 其中包括添加的诊断信息。 我请我的同事Nastya对更改列表进行考古研究,并写下发布日期以及所添加诊断的数量。 一个简单但艰巨的任务。 Nastya,感谢您的帮助。 因此,这是结果时间表。

诊断数量


在图形上,您可以观察到2次猝发。 第一次激增可以追溯到2015年底-2016年初,并且与C#语言支持的增加有关。 第二波浪潮指的是2018年底-2019年初,这与对Java语言的支持实施以及支持MISRA标准的工作开始有关。

实际上,第三次激增开始形成,在图表上尚不明显。 在进行第一批MISRA诊断之后,我们休息了一下,现在又朝这个方向激活。 因此,从2019年中期开始,图表上将出现新的活动激增。

该图显示PVS-Studio分析仪的开发正在快速进行。 此外,如果到2015年底发展呈线性发展,那么“漏洞”就开始出现。 由于“跳跃”,该图开始呈非线性形式,并且可能在将来可能用抛物线对其进行插值。

如您所见,我们充满活力和热情地开发PVS-Studio代码分析器,支持新版本的编译器,使插件适应最新版本的Visual Studio / SonarQube / IntelliJ IDEA。 使用PVS-Studio,使您的代码更可靠,更好和更安全。



如果您想与讲英语的读者分享这篇文章,请使用翻译链接:Andrey Karpov,Anastasiya Mozaleva。 诊断能力发展的PVS-Studio图

Source: https://habr.com/ru/post/zh-CN456388/


All Articles