设计说明
——DO-178B/ED-12B学习笔记之十八
DO-178B的第11.10节是Design Description(设计说明)。该节的参考译文如下:
设计说明定义软件架构和满足软件高层需求的低层需求。设计说明应包括:
a. 详细描述软件如何满足规定的软件高层需求,包括算法、数据结构;以及详细描述软件需求怎样分配到处理器及任务。
b. 描述软件体系架构,软件体系架构定义了为实现需求而采用的软件结构。
c. 描述输入/输出,如贯穿软件体系架构的内部和外部的数据字典。
d. 软件设计的数据流和控制流。
e. 资源限制,管理每一资源及其限制的策略,裕度,以及测量裕度的方法,例如,时间和存储器。
f. 调度规程和处理器内部/任务内部通信机理,包括严格的时间顺序、抢先调度、Ada的会合和中断。
g. 设计方法及其实现细节,如软件数据加载、用户可修改软件或多版本非相似软件。
h. 分区方法及防止分区被破坏的手段。
i. 描述软件部件,无论它们是新开发的还是先前开发的。如果是先前开发的软件部件,引用该软件部件的来源基线。
j. 源于软件设计过程的派生需求。
k. 如果系统包含非激活代码,描述确保该代码不能在目标机中被激活的方法。
l. 对可追踪到安全相关的系统需求的那些设计决策进行合理性分析。
第一句的原文是“The Design Description is a definition of the software architecture and the low-level requirements that will satisfy the software high-level requirements.”。这可能被误解为“设计说明=软件架构+低层需求”。实际上,根据上述a.至l.条,设计说明还包括软件详细设计的其他内容。
DO-178B对软件设计过程输出的验证规定了13个目标,其中12个目标是针对低层需求和软件架构的。由此可以理解DO-178B在论述软件设计时为何总是突出低层需求和软件架构。这也说明DO-178B在软件详细设计方面除了算法外没有规定其他验证目标,这就给开发者留有自行决定的灵活空间。
Vance Hilderman和Tony Baghai所著的“Avionics Certification: A Complete Guide to DO-178(Software) , DO-254(Hardware)”中指出:“Be careful not to call design descriptions low-level requirements. You’ll end up doing a lot of unnecessary testing. DO-178B is less concerned with how you designed your avionics system versus “Does your system behave in the manner you specified and does it do so safely?”即如果把设计说明的内容都称为低层需求,那么就都要按DO-178B的要求来进行验证。
还有一点不明白的是为何DO-178B称为Design Description而不是其他标准所说的Software Design Description。