随着网络战越来越成为常态的一部分,许多(如果不是大多数)军事嵌入式系统本质上对安全和/或安保至关重要。为了应对这种日益增加的风险,军事系统应该按照一些行业最严格的软件开发标准来构建,以确保其安全、可靠和功能准确的运行,这是有道理的。遵循这些标准提供了双重好处。它不仅可以降低安全和安保风险,还可以降低成本。软件开发标准提高了可维护性、可升级性、可重用性和可测试性,提供了长期利益,特别是考虑到这些系统的典型生命周期。
为了满足提高安全性和安全性、一致性并简化未来维护和测试的需求,软件开发组织必须考虑标准化软件开发流程和明确定义的软件语言使用。如果这种环境没有明确定义,那么未来当然会有巨大的潜在问题。
让我们看看 C 语言中的这个问题,它以极其灵活的方式定义了运算符、语法、函数等。可以编写可能有效但其他人几乎无法理解的代码,并且可能包含在某些情况下造成严重破坏的复杂性和隐藏错误。像C++、Java甚至Ada这样的语言——都在军事嵌入式系统中使用——不加选择地使用,可能会导致类似的不受支持的条件。编码标准为软件开发提供了一种一致的、相互理解的语言和方法,可帮助开发人员避免软件语言定义中的任何歧义,并确保团队正确完成编码。
拥有这种基于标准的方法会带来立竿见影的好处。编码标准有助于定义一组可以在整个团队中理解和使用的实践。通过协作处理一组通用的编码结构和实践,团队成员可以使用相同的方法轻松进行通信,并在整个软件开发组织中生成更加一致、可维护和可测试的代码。
在军事和航空航天领域,现在有一些程序必须遵循DO-178C,这是一种开发安全关键航空电子设备应用的软件标准。DO-178C 要求公司使用编码标准来确保安全关键型应用程序建立在更安全、更安全的代码之上。MISRA、CERT C/C++ 和 CWE 等标准有助于首先消除输入代码的缺陷和安全漏洞。对于定义了许多变体的 C 等语言,编码标准可确保一致、可维护的实践,有助于降低风险并支持未来的可重用性和可测试性。
做对了
不用说,任何这样的编码标准集都将非常详细,需要不断关注。检查以确保标准实际上已得到完全遵守可能是一项更加艰巨的任务,并且只能通过使用自动化工具可靠地实现。代替人工检查,自动检查是通过对源代码的静态分析来完成的,应该在整个代码构建过程中完成。只有当该工具能够快速且易于理解的操作向开发人员准确展示他们需要了解的合规性时,这才变得实用(或可以忍受)。
寻找一种静态分析工具,该工具可让您从已建立的标准以及组织内采用的规则中进行选择。这些优势使同一项目的团队能够根据他们一直在使用的同一组实践和标准将他们的结果汇集在一起。试图弄清楚其他人试图做什么的问题、对话和解释要少得多。虽然不能完全量化,但这意味着花更少的时间在理解代码和沟通上,这在项目的整个生命周期中可以节省大量资金。
自动检查合规性可加快迭代开发工作。在安全性方面,编码标准有助于解决整体安全难题的一部分。它们不解决加密、隔离、隔离问题,也不确保数据在静态和传输过程中得到保护等,但它们确实有助于避免可能被利用的细微编码错误。这样的标准将消除臭名昭著的心血错误,这种错误是由于未能限制变量的大小而引起的——这种风险在军事系统中是无法证明的。为深入分析而设置的工具还可以收集有关代码的内部信息,并了解更深入的主题,例如真正的数据耦合和控制耦合,这是安全和安保关键应用所必需的。
动态测试超越了静态分析,因为它涉及实际编译和运行带有输入的代码并查找预期的输出。动态单元和集成测试需要一组测试向量和一个测试工具,这些工具派生自对静态分析获得的代码的深刻理解。该线束是一个软件,它围绕着被测代码,能够显示测试输入和提取结果输出。
标准 — 基础!
将编码标准视为过程的一部分和基础。采用团队理解的一组标准,结合强大的工具支持,可以使工作流程更顺畅,并生成当前和未来团队可以理解的代码。因为它是可理解的,所以可以很容易地识别可能需要调整或修改的区域,从而更容易维护。而且,深入的分析可以极大地减轻设置和执行详细测试的负担,以充分向开发人员(或合规组织)保证其工作的坚实功能。
所以,是的,编码标准对于形成坚实的软件质量过程的基础是必要的。遵守严格编码标准的开发组织将创建更加一致、可维护、可重用和可测试的代码。最终,这将产生更高质量的应用软件。
审核编辑:郭婷
-
嵌入式
+关注
关注
5075文章
19039浏览量
303701 -
C++
+关注
关注
22文章
2105浏览量
73519
发布评论请先 登录
相关推荐
评论