软件编码标准的目标是灌输成熟的编程实践,从而产生安全、可靠、可测试和可维护的代码。
软件从桌面转移到了我们接触到的几乎所有东西。从智能恒温器到输液泵再到汽车,软件无孔不入,而且在不断增长。来自物联 (IoT)的所谓 “东西 “越来越多地携带更多的逻辑。随之而来的是更大的故障风险。这些设备中的许多被用于安全关键领域,如医疗和汽车,它们有可能造成身体伤害。
事实证明,这些同样的标准也在 络安全领域提供了好处,起到了双重作用。这篇文章一起来讨论。
- 这些标准如何帮助我们从发现缺陷到建立更强大的软件。
- 如何通过正确的编码在第一时间预防问题。
- 如何通过使用普遍接受的行业标准(如MISRA)来利用他人的努力来实现这一目标。
软件开发到软件工程
软件对现实世界的影响常常被低估。我作为Parasoft的布道者,不断讨论的一个主题是,软件开发真的应该是工程。
我们经常用软件工程师这个头衔来称呼软件开发人员,但对于他们今天的工作方式来说,这并不一定是一个合适的术语。发展到一个良好的软件工程实践,会使成本下降,质量提高。这其中的一个关键部分是采用标准,特别是编码标准。
软件正在悄悄地进入产品、设备和其他我们从未想过的地方。我们现在必须认真思考这些产品中的软件和它所带来的影响。
质量差的代价
事实证明,在软件方面,你不需要花更多的钱来建造高质量的软件。你花更多的钱是为了建造质量差的软件。
在软件中,大部分的缺陷来自于程序员,是他们把这些缺陷放在产品中。如果我们能在开发软件时停止引入缺陷,我们就能以较低的价格获得更好的软件。
认识到质量是如何影响软件开发成本的,这一点很重要。研究人员卡珀斯-琼斯(Capers Jones)几十年来一直关注这个问题,每年都对软件成本进行调查。这些数字每年都没有什么变化。数据显示,软件的典型成本从需求到编码再到维护,每个阶段都会上升。然而,团队对待质量的方式决定了他们的过程是健康还是 “病态”。

为什么需要尽早修复缺陷
有道理的是,如果我们在编写代码时就发现了一个缺陷,其成本相对较低–比如说,开发人员的几分钟时间。如果有可能在开发阶段就消除85%的缺陷,那么对成本的影响就会很大。考虑一下现在著名的来自Capers Jones的图表,它显示了在开发的每个阶段修复缺陷的平均成本。

一个过时的、可证明是错误的方法是通过在生命周期的最后阶段,即在发布之前进行测试来提高软件的质量。在制造业中,他们明白这是不可能的,但出于某种原因,我们认为我们可以将质量(和安全)测试 “融入 “软件。
认识到质量是如何影响软件开发成本的,这一点很重要。研究人员卡珀斯-琼斯(Capers Jones)几十年来一直关注这个问题,每年都对软件成本进行调查。这些数字每年都没有什么变化。数据显示,软件的典型成本从需求到编码再到维护,每个阶段都会上升。然而,团队对待质量的方式决定了他们的过程是健康还是 “病态”。
编码标准改善安全和保障
软件编码标准的目标是灌输经过验证的编程实践,从而使代码安全、可靠、可测试和可维护。通常情况下,这意味着要避免已知的不安全的编码实践或可能导致不可预测的行为的代码。这在像C和C++这样的编程语言中变得至关重要,因为在这些语言中编写不安全或不安全代码的可能性很高。
然而,我认为这个行业在这些编程标准方面已经迷失了方向。在过去的十年中,这些工具(如

标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!