诊断能力发展的PVS-Studio图

成熟度

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

在撰写本文时,PVS-Studio已实施669 诊断 ; 此外,其中许多都是全面的。 例如,对于这些情况,我们没有必要追逐数量并创建两个单独的诊断:条件始终为false,条件始终为true。 有人会做同样的事情,有人会将这种诊断方法分成几部分。 例如,您可以找到用于拆分此类诊断的工具:总是错误的布尔表达式,零指针用作条件以及其他条件。 因此,诊断数量本身并不代表任何意义,尤其是不应该利用诊断数量来比较不同的分析仪。 真正有趣的是了解PVS-Studio分析仪是如何及时开发的。 为此,我决定建立一个新的诊断方法的时间表。

用图形提出一个想法要比实现它容易得多。 我们没有关于各种版本的PVS-Studio有多少诊断信息的图表。 不知何故,没有人想到过写下这些数字。 我不得不运用创造力和辛勤工作。

我们列出了PVS-Studio版本中发生的所有更改。 包括列出的附加诊断信息。 我请我的同事Nastya对更改列表进行考古研究,并写下发布日期以及所添加的诊断程序数量。 一个简单但艰巨的任务。 Nastya,谢谢您的帮助。 因此,在下面您可以看到我们得到的图形。



图上有两个爆发。 第一次发布可以追溯到2015年底-2016年初,并且与增加语言支持有关。 第二个版本可以追溯到2018年底和2019年初,与Java语言支持的实施以及MISRA标准支持的开始工作有关。

实际上,现在开始形成第三个峰,该峰在图形上尚不可见。 在MISRA诊断的第一部分之后,我们稍作休息,现在又朝这个方向加强。 因此,该图必须显示从2019年中开始的新活动激增。

该图显示PVS-Studio分析仪的开发正在快速发展。 此外,在2015年底之前出现了“跳跃”之后,发展是线性的。 由于这些“跳跃”,图形开始呈现非线性外观,并且也许在将来可以通过抛物线进行插值。

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

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


All Articles