说说软件认证
就上文中提到的软件认证,这里结合自己的经历多说几句。
代码测试和文档
对于一些特别重要的,可能关系到人的生命的软件,是需要过认证的(certification)的,比如我以前参与过VxWorks操作系统的单元测试,因为它是要用于航空级的,比如波音的飞机,所以每一行源代码,包括每一行测试代码,都需要经过认证,而且review这每一行代码的人也是需要通过认证的。这些措施,都为软件的质量提供了进一步的保证。
此外,每一个test case,都需要有对应的说明文档,构造条件是什么,用了哪些输入,哪些桩函数(stub),产生哪些输出,与预期是否一致,而且要求测试对源代码的覆盖率要达到C语言和汇编语言级别在条件,语句,分支上的100%覆盖率。当然,少数情况下,是达不到的。因为这些文档也会被国外的auditor审核软件安全认证,所以对这些文档的语法,标点符号也都有要求。
认证标准包括DO-178C DAL A, IEC 61508 SIL 3, ISO 26262 ASIL D等,强调可追溯性,就是万一出了问题能够回溯吧,通过认证的VxWorks版本就成了VxWorks Cert版本, cert就代表certification。
费用问题
在此过程中付出的人力成本,包括tester, reviewer, auditor,都是巨大的,所以平摊到每一行代码上的价钱也是不菲的,因此这种级别的认证只适用于非常关键的软件,而且被认证的软件代码量不能太大,否则玩不转啊。具体可以到多大我也不知道,应该会根据认证的严格程度有所差异,就上文提到的Xen on ARM的6到7万行是可以的。
这些费用由VxWorks的拥有者Windriver公司转移到飞机解决方案提供商,比如Rockwell, 再转移到飞机制造商,比如Boeing,然后是各大航空公司以上亿美元的价格购买一架飞机,最后是乘坐航班的乘客购买的机票,所以从安全的角度,这个钱花的还是值得的。
其他领域
因为汽车也是关系到人的生命安全的,所以现在车载领域的一些软件平台,比如intel的ACRN软件安全认证,之后商用的话可能也是需要通过相应的软件认证的。
以上内容由51税知网整理,希望对大家有所帮助!与智慧同行,开启你的创业之路!