论文部分内容阅读
摘要:本文讨论了机载软件计划过程的目标和活动,这个过程产生用于指导机载软件开发过程和整体过程的软件计划与标准。
关键词:计划;周期;活动
1 机载软件计划过程目标
软件计划过程定义了软件开发方法,使其能满足系统需求并获得与软件级别一致的置信度。软件计划过程共有7个目标:
a)定义软件生命周期中软件开发过程和整体过程的活动,以使其满足系统需求和软件级别要求;
b)定义软件生命周期,包括软件生命周期过程之间的关系、反馈机制和转换准则;
c)确定软件生命周期环境,包括用于软件生命周期过程活动的方法和工具;
d)标识出附加考虑,
e)定义与软件系统安全性目标一致的软件开发标准;
f)编制软件计划文件;
g)保证软件计划之间的协调一致性。
2 机载软件计划过程活动
软件计划过程是软件开发满足DO-178B的一项决定性因素。软件计划过程的活动包括:
a)软件计划应指导相应的人员开展软件生命周期过程;
b)要明确项目中使用的软件开发标准;
c)要明确软件生命周期过程中用于错误防护和缺陷检测的方法和工具;
d)软件计划过程应协调好软件开发过程和整体过程,以确保与软件计划文件中的策略保持一致;
e)软件计划过程要包括随项目进展对其修订的方法;
f)当使用多版本非相似软件时,软件计划过程要选择为满足系统安全性目标所必要的达成非相似性的方法和工具;
g)为完成软件计划过程,软件计划文件和软件开发标准应纳入更改控制之下并完成内部评审;
h)如果计划使用未激活代码,软件计划过程需描述怎样定义、验证这些未激活机制和未激活代码,以满足系统安全性目标;
i)如果计划使用用户可更改软件,相应的过程、工具、环境、数据等都应在软件计划文件和标准中确定;
j)如果计划使用PDI,计划过程应包含以下几点:
1)PDI的使用方法;
2)PDI的软件级别;
3)PDI的开发、验证和更改过程,以及相应的工具鉴定;
4)软件加载控制及兼容性;
k)软件计划过程应包含适用的附加考虑;
l)若软件开发活动由供应商执行,计划过程应包含对供应商监控;
m)计划过程应描述虚拟化技术及其相关的可执行程序。任何被视为流控制的指令集而不是单单作为数值集处理的数据,都视作使用了虚拟化技术。这类数据都应当做可执行代码处理并满足相应的目标。
n)若计划使用重用组件,需描述该组件如何整合进新的开发中,包括与其他组件之间和与系统之间的类型一致性的维护、需求映射和异常管理策略。
若满足某个过程活动的转换准则,则该软件生命周期过程可在软件计划过程完成前开始。
3 机载软件计划文件
软件计划文件的目的是定义满足DO-178C和其他适用文件目标的方法,并说明了完成这些活动的人员组织架构。软件计划包括:
a)软件合格审定计划:作为与适航当局就开发方法进行沟通并达成一致的主要方法,并且定义对DO-178C的符合性。软件合格审定计划综述了使用OOT&RT技术的方式和位置,以及处理OOT&RT技术缺陷和详细考虑的方法;
b)軟件开发计划:定义软件生命周期和软件开发环境,以及如何满足软件开发过程的目标。软件开发计划详述包含OOT&RT技术的精确的开发步骤;
c)软件验证计划:定义能满足软件的验证过程目标的方法。软件验证计划详述收集验证证据的方法;
4 机载软件生命周期环境计划
计划软件生命周期环境的目的是定义用于开发、验证、控制和产生软件生命周期资料所使用的方法、工具、程序、编程语言和目标机。有很多例子说明如何选择软件环境是可以对机载软件带来好处,包括执行标准、发现错误、实施错误防护和容错性机制等等。软件生命周期环境对于失效条件而言是一个潜在的错误源,软件生命周期环境的组成可能被系统安全性分析过程所确定的安全性相关需求所影响,例如非相似的使用、冗余组件等等。
错误防护措施的目标是避免软件开发过程中产生可能造成失效条件的错误。基本的原则是选择好需求开发和设计的方法、工具,以及编程语言,以限制引入错误的机会;并且选择好验证方法以确保检测到已经引入的错误。容错机制的目标是将安全性特征包含在软件设计或源代码中,以确保软件能够正确地处理输入数据错误并且防止输出,从而控制错误。对错误防护机制或容错机制的需求来源于系统需求和系统安全性分析过程。
上述考虑可能影响到:
a)软件需求过程和软件设计过程中所用的方法和表示法;
b)软件编码过程使用的编程语言和方法;
c)软件开发环境工具;
d)软件验证和软件构型管理工具;
e)是否需要做工具鉴定;
f)软件组件重用的评估以及相关生命周期数据的可用性;
g)目标环境中的虚拟软件内容。
4.1 语言和编译器考虑
在成功完成软件验证的同时,还要考虑编译器对该软件的可接受性。为了确认这一点,软件验证过程要考虑编程语言和编译器的特殊特征。因此在计划阶段选择编程语言和验证计划时,软件计划过程要考虑这些特征。活动包括:
a)一些编译器具有优化目标代码性能的特征。如果测试用例给出的覆盖范围与软件等级一致,那么不需要验证优化的正确性,否则需要对这些特征做结构覆盖范围分析;
b)为了实现某些特征,一些语言的编译器可能产生不能直接追踪到源代码的目标代码,例如初始化、机内错误检测或异常处理等。软件计划过程要提供检测这个目标代码的方法,以保证验证的覆盖范围并在相关计划中定义这些方法; c)如果引入新的编译器、链接编译器或者加载程序版本,或者在软件生命周期内更改了编译器的选项,那么先前的测试用例和覆盖范围分析可能不再是有效的,因此需在验证计划中提供相关重新验证的方法。
备注:尽管只要满足所有验证目标,编译器就可以被接受,但是这个“接受”只能适用于本产品而非其他产品。
4.2 机载软件开发标准
软件开发标准定义了软件开发过程的规则和限制。软件开发标准包括软件需求标准、软件设计标准和软件编码标准。软件驗证过程将这3个标准作为一个基础来评估过程实际的输出是否符合预期输出。软件开发标准的活动包括:
d)软件开发标准需要符合软件开发内容;
e)软件开发标准应使得软件产品中的软件组织或者相关产品能够按照统一的方式进行设计和实施;
f)软件开发标准不能允许使用那些会导致输出不能验证或者部分和想爱你管管安全性需求的架构或方;。
g)软件开发标准应考虑鲁棒性。
备注1:在制定标准时,可参考先前项目的经验。开发、设计和编码方法上的约束与规则可用于控制复杂度,可考虑防御使编程实践以加强鲁棒性。
备注2:如果由系统需求分配给软件,可以用检测和控制存储数据中的错误、刷新及监控硬件状态和构型的方法来缓减单粒子翻转效应。
5 机载软件计划阶段的评审
软件计划过程的评审是为了确保软件计划和软件开发标准符合本文的指导方案,并能够提供执行的方法。活动包括:
h)选择的方案要能够满足本文的目标;
i)软件生命周期过程可以得要一致的应用;
j)每个过程都应产生一些能够表明过程的输出可以追溯到相关的活动和输入的证据,用来表明活动、环境和使用方法的独立程度;
k)软件开发过程的输出应与其保持一致。
参考文献:
[1]《Software Considerations in Airborne Systems and Equipment Certification》,RTCA SC-167 / EUROCAE WG-12;
[2]《Software Approval Guidelines》,U.S. department of transportation FAA,June 3,2003
关键词:计划;周期;活动
1 机载软件计划过程目标
软件计划过程定义了软件开发方法,使其能满足系统需求并获得与软件级别一致的置信度。软件计划过程共有7个目标:
a)定义软件生命周期中软件开发过程和整体过程的活动,以使其满足系统需求和软件级别要求;
b)定义软件生命周期,包括软件生命周期过程之间的关系、反馈机制和转换准则;
c)确定软件生命周期环境,包括用于软件生命周期过程活动的方法和工具;
d)标识出附加考虑,
e)定义与软件系统安全性目标一致的软件开发标准;
f)编制软件计划文件;
g)保证软件计划之间的协调一致性。
2 机载软件计划过程活动
软件计划过程是软件开发满足DO-178B的一项决定性因素。软件计划过程的活动包括:
a)软件计划应指导相应的人员开展软件生命周期过程;
b)要明确项目中使用的软件开发标准;
c)要明确软件生命周期过程中用于错误防护和缺陷检测的方法和工具;
d)软件计划过程应协调好软件开发过程和整体过程,以确保与软件计划文件中的策略保持一致;
e)软件计划过程要包括随项目进展对其修订的方法;
f)当使用多版本非相似软件时,软件计划过程要选择为满足系统安全性目标所必要的达成非相似性的方法和工具;
g)为完成软件计划过程,软件计划文件和软件开发标准应纳入更改控制之下并完成内部评审;
h)如果计划使用未激活代码,软件计划过程需描述怎样定义、验证这些未激活机制和未激活代码,以满足系统安全性目标;
i)如果计划使用用户可更改软件,相应的过程、工具、环境、数据等都应在软件计划文件和标准中确定;
j)如果计划使用PDI,计划过程应包含以下几点:
1)PDI的使用方法;
2)PDI的软件级别;
3)PDI的开发、验证和更改过程,以及相应的工具鉴定;
4)软件加载控制及兼容性;
k)软件计划过程应包含适用的附加考虑;
l)若软件开发活动由供应商执行,计划过程应包含对供应商监控;
m)计划过程应描述虚拟化技术及其相关的可执行程序。任何被视为流控制的指令集而不是单单作为数值集处理的数据,都视作使用了虚拟化技术。这类数据都应当做可执行代码处理并满足相应的目标。
n)若计划使用重用组件,需描述该组件如何整合进新的开发中,包括与其他组件之间和与系统之间的类型一致性的维护、需求映射和异常管理策略。
若满足某个过程活动的转换准则,则该软件生命周期过程可在软件计划过程完成前开始。
3 机载软件计划文件
软件计划文件的目的是定义满足DO-178C和其他适用文件目标的方法,并说明了完成这些活动的人员组织架构。软件计划包括:
a)软件合格审定计划:作为与适航当局就开发方法进行沟通并达成一致的主要方法,并且定义对DO-178C的符合性。软件合格审定计划综述了使用OOT&RT技术的方式和位置,以及处理OOT&RT技术缺陷和详细考虑的方法;
b)軟件开发计划:定义软件生命周期和软件开发环境,以及如何满足软件开发过程的目标。软件开发计划详述包含OOT&RT技术的精确的开发步骤;
c)软件验证计划:定义能满足软件的验证过程目标的方法。软件验证计划详述收集验证证据的方法;
4 机载软件生命周期环境计划
计划软件生命周期环境的目的是定义用于开发、验证、控制和产生软件生命周期资料所使用的方法、工具、程序、编程语言和目标机。有很多例子说明如何选择软件环境是可以对机载软件带来好处,包括执行标准、发现错误、实施错误防护和容错性机制等等。软件生命周期环境对于失效条件而言是一个潜在的错误源,软件生命周期环境的组成可能被系统安全性分析过程所确定的安全性相关需求所影响,例如非相似的使用、冗余组件等等。
错误防护措施的目标是避免软件开发过程中产生可能造成失效条件的错误。基本的原则是选择好需求开发和设计的方法、工具,以及编程语言,以限制引入错误的机会;并且选择好验证方法以确保检测到已经引入的错误。容错机制的目标是将安全性特征包含在软件设计或源代码中,以确保软件能够正确地处理输入数据错误并且防止输出,从而控制错误。对错误防护机制或容错机制的需求来源于系统需求和系统安全性分析过程。
上述考虑可能影响到:
a)软件需求过程和软件设计过程中所用的方法和表示法;
b)软件编码过程使用的编程语言和方法;
c)软件开发环境工具;
d)软件验证和软件构型管理工具;
e)是否需要做工具鉴定;
f)软件组件重用的评估以及相关生命周期数据的可用性;
g)目标环境中的虚拟软件内容。
4.1 语言和编译器考虑
在成功完成软件验证的同时,还要考虑编译器对该软件的可接受性。为了确认这一点,软件验证过程要考虑编程语言和编译器的特殊特征。因此在计划阶段选择编程语言和验证计划时,软件计划过程要考虑这些特征。活动包括:
a)一些编译器具有优化目标代码性能的特征。如果测试用例给出的覆盖范围与软件等级一致,那么不需要验证优化的正确性,否则需要对这些特征做结构覆盖范围分析;
b)为了实现某些特征,一些语言的编译器可能产生不能直接追踪到源代码的目标代码,例如初始化、机内错误检测或异常处理等。软件计划过程要提供检测这个目标代码的方法,以保证验证的覆盖范围并在相关计划中定义这些方法; c)如果引入新的编译器、链接编译器或者加载程序版本,或者在软件生命周期内更改了编译器的选项,那么先前的测试用例和覆盖范围分析可能不再是有效的,因此需在验证计划中提供相关重新验证的方法。
备注:尽管只要满足所有验证目标,编译器就可以被接受,但是这个“接受”只能适用于本产品而非其他产品。
4.2 机载软件开发标准
软件开发标准定义了软件开发过程的规则和限制。软件开发标准包括软件需求标准、软件设计标准和软件编码标准。软件驗证过程将这3个标准作为一个基础来评估过程实际的输出是否符合预期输出。软件开发标准的活动包括:
d)软件开发标准需要符合软件开发内容;
e)软件开发标准应使得软件产品中的软件组织或者相关产品能够按照统一的方式进行设计和实施;
f)软件开发标准不能允许使用那些会导致输出不能验证或者部分和想爱你管管安全性需求的架构或方;。
g)软件开发标准应考虑鲁棒性。
备注1:在制定标准时,可参考先前项目的经验。开发、设计和编码方法上的约束与规则可用于控制复杂度,可考虑防御使编程实践以加强鲁棒性。
备注2:如果由系统需求分配给软件,可以用检测和控制存储数据中的错误、刷新及监控硬件状态和构型的方法来缓减单粒子翻转效应。
5 机载软件计划阶段的评审
软件计划过程的评审是为了确保软件计划和软件开发标准符合本文的指导方案,并能够提供执行的方法。活动包括:
h)选择的方案要能够满足本文的目标;
i)软件生命周期过程可以得要一致的应用;
j)每个过程都应产生一些能够表明过程的输出可以追溯到相关的活动和输入的证据,用来表明活动、环境和使用方法的独立程度;
k)软件开发过程的输出应与其保持一致。
参考文献:
[1]《Software Considerations in Airborne Systems and Equipment Certification》,RTCA SC-167 / EUROCAE WG-12;
[2]《Software Approval Guidelines》,U.S. department of transportation FAA,June 3,2003