[CAPESE知识分享] 从DO-178B到DO-178C(一)

 

本期将开始浅谈从DO-178B到DO-178C的变化。...



1

引言

在民用航空机载系统的适航体系中,DO-178(机载系统和设备审定中的软件要求)是机载软件的适用标准。它最早由RTCA和EUROCAE发布于1982年,此后在1985年和1992年进行了两次改版,分别为DO-178A 和DO-178B(EUROCAE的编号为ED-12A和ED-12B)。DO-178B虽然具有较好的稳定性,但随着机载软件研制新技术的层出不穷,人们开始意识到需要对DO-178B作一定的补充和修订,以适应新的软件研制技术。为此,RTCA和EUROCAE联合成立了SC-205和WG-71,来完成这项艰巨而富有挑战的工作。SC-205/WG-71联合委员会于2005年3月第一次召开联合会议,此后每年两次定期召开联合会议来商讨和修订DO-178B。随着工作的开展,大家普遍认识到任务的艰巨和进度的落后,因此从2008年开始改为每年三次联合会议。

2

改正错误

一个新的版本出来,要把老版本中的错误改掉,这个不用多说。关键是要举例子给大家分享:知道DO-248B的人应该清楚,其第二章是对DO-178B的勘误,列举了当时已经发现的DO-178B中的一些比较明显的错误。这些错误在DO-178C 中已经全部改正过来了。DO-178B中还有一些很难发现的错误。说它们很难发现,意思是光靠阅读几遍标准是发现不了的,只有真正深入钻研过并实践过DO-178B的专家才能发现。举个例子来说,DO-178B附件A的表A-1的第五个目标说明,对于D级软件不需要编写软件标准;而表A-9中第一个目标则要求,即使对D级软件,QA活动仍需要保证软件开发进程和软件综合过程符合已批准的软件计划与软件标准。二者之间一个潜在的问题是,D级软件可以不写软件标准,那QA活动就谈不上要保证符合软件标准。像这样的细节,没有深入研究和实施过DO-178B的人是发现不了的。当然,对于这样的“错误”,其实也可以“正确”地解读:也即,如果D级软件没有软件标准,那么就已经符合了软件标准了。DO-178C改正了不少这类错误,一方面说明了DO-178C是个严格的标准,另一方面也说明制订标准的人员严谨的办事作风。

3

澄清内容

错误要改正,晦涩的地方也需要澄清。DO-178C澄清了许多DO-178B中写得不清楚、不容易理解、或很容易误解的章节或段落。例如:DO-178B, 6.4.4.2.b:

The structural coverage analysis may be performed on the Source Code, unless the software level is A and the compiler generates object code that is not directly traceable to Source Code statements. Then, additional verification should be performed on the object code to establish the correctness of such generated code sequences. A compiler-generated array-bound check in the object code is an example of object code that is not directly traceable to the Source Code.

这段文字很难读懂,并且,在DO-178B这么多年的应用中,很多人对此一知半解,甚至误解。要正确解读和理解这段文字,除了充分分析句子结构,揣摩和体会其用意,还要结合DO-178B中的其它相关文字,如4.4.2节。在DO-178C中,专家们对内容进行了修改,对文字进行了抛光,读起来感觉好多了,结果如下(DO-178C, 6.4.4.2.b):

Structural coverage analysis may be performed on the Source Code, object code, or Executable Object Code. Independent of the code form on which the structural coverage analysis is performed, if the software level is A and a compiler, linker, or other means generates additional code that is not directly traceable to Source Code statements, then additional verification should be performed to establish the correctness of such generated code sequences. Note: A compiler-generated array-bound check is an example of generating additional object code that is not directly traceable to the Source Code.

诸如此类的文字修改和内容澄清还有很多,我们就不再一一列举了。

未完待续......

轻松一刻
一日,一架飞机飞过一个精神病医院,突然驾驶员大笑。

空中小姐很好奇的问:“你为何笑得那么开心啊?”

只见他说:“他们知道我逃出来,一定会气疯的!哈哈哈!”

简简单单的关注,不会占用您过多的时间,海量资讯却唾手可得。您有任何软件工程标准化的问题都可以给我们留言或联系CAPESE@163.com!

您的关注就是我们努力的方向,希望我们能共同促进我国软件工程化水平的提升!


    关注 软件工程标准化在线


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册