APP下载

机载软件生命周期管理方法及其研究

2022-06-24邝安玄冯思桐

山西电子技术 2022年3期
关键词:生命周期软件标准

邝安玄,郭 勇,冯思桐

(航空工业西安航空计算技术研究所,陕西 西安 710076)

0 引言

近年来,数字电子和信息技术日益增进的发展趋势,对机载设备的支持提出了具备复杂且全面的机载软件新需求。现代机载计算机应该确保其操作的可靠性和机上人身安全[1-4]。数字化机载设备和系统的研发过程应该确保飞机在临界飞行条件下可靠运行。例如在飞行员操控飞行期间,环境空气压力和温度变化以及线性过载的情况;在恶劣天气条件下,飞机临近着陆时,仪表降落系统软件故障情况;以及在指示目标/选择武器类型/战斗飞行过程中头盔武器控制系统损坏的情况。

1 DO-178C介绍

为了严格满足电子航空设备及其专用航空电子软件开发过程的可靠性相关要求,专家们制定了相关标准,如软件标准DO-178C,硬件标准DO-254,标准化支持文档(ARP 4761和ARP 4754A),如图1所示。

图1 遵循标准DO-178C的航空电子设备和软件的研发流程图

标准ARP 4761是一套确保软件达到一定可装机标准的流程和技术。该标准以对飞机、机组、乘客的影响为评判准则将失效状态的危险等级分为5类,并明确了各危险等级失效状态影响,如表1所示。标准ARP 4754A则是一套针对软硬件的实用性系统要求。

表1 危险等级失效状态及影响

标准DO-178C是国际航空领域用于机载电子设备软件研发和过程认证的基础,由核心文件和补充文件两部分组成(DO-331、DO-332、DO-333以及DO-330、DO-248C、DO-278A),这些标准定义了在软件开发过程中需要提供的附加需求和活动,具体取决于采用的实现技术如图2。

图2 DO-178C标准的组成部分

标准DO-331使用基于模型的开发和验证描述软硬件。计算编程算法或其他部分使用外部工具实现的,设计过程通过多组合的数学运算执行,需要经过测试和验证,最终实现自动生成基于软件代码的图表。

标准DO-332适用于使用面向对象编程语言(包括C++、Java、Ada)的项目。其根本目标是验证软件是否遵循三个核心技术,即继承、多态和动态链接。此标准表现为,当同名方法在相同的类层次结构中出现时,调用相关的类时会执行适当的方法。

标准DO-333对机载软件安全性标准DO-178C关于形式化方法的补充,指出了需要形式化描述的软件制品以及从中能获得的验证证据。它是软件开发和验证过程适用的精确性技术。形式化方法描述了在软件开发、测试、启动和修改过程中对未经验证的软件工具的输出进行评估,从而验证其实用程度是否满足安全性假设要求[1-3]。

标准DO-248C是DO-178C的补充文件,用于解释其中难以理解和存疑的方面。

上述条件成为了建立支持机载软件生命周期管理的基础。

2 DO-178C中软件生命周期数据

DO-178C规定了二十种软件研制生命周期中产生的数据,这些数据用来证明软件实现了不同等级软件在不同阶段所设定的目标。审定局方就是通过审查这些输出数据来评估申请人软件研制流程中目标的实现情况,软件研制生命周期数据及简要说明见表2所示。

表2 软件研制生命周期数据及简要说明

3 DO-178C中软件生命周期过程

机载软件的生命周期与多种不同类型的关联性任务的实现相关,其目标是设计和开发满足订购方要求的符合质量的软件,同时确保所设计的软件达到所需的安全级别[4-6]。

标准DO-178C定义了三个主要过程,即软件规划、开发和集成。在被选领域内三大过程是并发的,这意味着一个过程的开始不必在前一个过程完成后进行。例如,对已编码的软件部件进行测试可以在全部编码完成阶段之前开始。

软件生命周期模型有很多,模型中的主要阶段包括收集需求和分析,软件设计、开发、测试和实现。这些阶段都允许回退到以前状态,允许执行任务之间的交互,这在检测需要修复的软件问题时是尤为重要的[7-10]。

3.1 软件规划过程

软件规划涉及与计划和标准相关的过程,在此之后软件开发将遵循这些过程。在此阶段,标准DO-178C定义了五个主要计划和三个软件标准,以及软件认证所需的其他文档,见章节2。

生命周期各阶段关键节点符合性证据评审是根据DO-178C标准相关章节对应要求,对各级别软件各阶段需生成的生命周期数据进行技术评价的活动。

软件生命周期数据评审是根据项目进展需求(试验节点、项目问题、评审要求等),对软件某一项或几项生命周期数据进行的技术评价活动。

3.2 软件开发过程

软件开发过程包括了四个过程:

·软件需求过程,高层需求(HLRs)的开发;

·软件设计过程,底层需求(LLRs)和基于高层需求的软件架构的开发;

·编码过程,创建源代码和非集成的目标代码;

·软件集成过程,包括将软件整合成可执行程序的形式,并与外部设备集成。

HLRs是基于系统架构和系统需求实现的。HLRs包括时间波形、内存管理、与外部设备的连接、响应和检测错误的方法、系统运行监控和软件分区,以及与外部设备的连接描述,数据流的定义和方式,通信机制和软件组件。

编码过程是将LLRs转换为源代码和预编译的目标代码。集成过程包括编译和合并编译后的代码到可执行应用程序(一或多个),并将该软件嵌入到机载设备上。

软件开发过程决定一个或多个系统需求级别。软件需求过程利用软件生命周期过程输出来创建高层需求。软件需求数据定义高层需求,包括订购方提出的需求。这些数据应该包括软件系统需求分配的描述,具体数据应涉及安全要求和潜在的错误条件,每个运行模式的功能和操作要求,性能标准(如精度和准确性),与时间相关的要求和限制,内存大小限制,硬件和软件接口(例如协议,格式,输入/输出频率),错误检测,安全监控,以及软件分区的要求(分离的软件组件如何协作)和各组件的软件级别。

机载软件设计过程的输入包括软件需求、软件开发计划和软件设计标准。如果满足了计划的转换标准,则在制造过程中使用高层需求来创建软件架构和底层需求。这些过程的基本输出是设计描述,包含软件架构和底层需求。数据应该包括软件如何满足高层需求的详细描述,算法和数据结构,以及软件需求如何与过程和任务相对应。它还应该提供定义软件结构的软件架构描述,包括实现的需求、输入/输出描述(例如数据字典、设计中的数据和控制流)、资源限制、资源及其限制的管理策略、边距以及测量边距的方法(例如时间和内存,排序程序)。描述应该包括内处理器和任务内通信机制,包括固定的中断时间序列,设计方法,以及它们的实现细节(例如软件加载)。描述的一个重要元素是用户修改的软件、分区方法和防止分区破坏的措施,以及软件组件的描述(无论它们是新的还是以前制造的)和对下载它们的基准版本的引用。该描述还应该包括软件设计过程中产生的派生需求。如果一个系统包含一个非激活代码,则在与其安全性相关的系统需求中直接包含用于在目标计算机上激活该代码的安全措施的描述和设计决策的证明。当软件设计过程的目标和相关集成过程的目标实现时,软件设计过程即完成。在软件编码过程中,源代码是基于软件架构和底层需求实现的。编码过程输入是来自软件设计过程、软件开发计划和软件编码标准的底层需求和软件架构。软件编码过程可以在满足计划的转换标准时开始。源代码是在这个过程中开发的,并基于系统架构和底层需求。在集成过程中,使用目标计算机和来自软件编写的源代码来编译、合并和加载数据;其目的是整合航空电子系统或其设备组成部分。

3.3 集成过程

集成过程包括了四个详细的过程:

·软件认证期的沟通;

·软件认证的需求管理;

·软件认证中的验证;

·软件认证的质量评估。

认证期沟通过程是成功完成软件认证的一个必不可少的环节,涉及申请人和认证机构之间的持续合作和沟通,贯穿于整个软件生命周期。申请人需要确定定义软件满足基本认证要求的合规性措施。

需求管理过程涵盖了所有用于软件开发和验证的数据和文档,同样贯穿于整个软件生命周期。管理需求在软件开发阶段识别、组织和控制变更,其目标是在最小化错误的同时达到最高的效率。需求管理方法与机载设备损毁程度相关。

软件验证过程包括检测和描述从软件规划阶段到开发阶段引入的错误。

质量评估过程用于证明软件符合假定要求和标准,即产品满足订购方的期望。软件质量评估是一个持续的过程,它从计划阶段开始一直持续到开发和测试阶段,直到最终产品交付[4]。

4 结论

本文详细描述了DO-178C标准中三个主要工程过程——软件规划、开发和集成。整个软件研制过程通过过程来实现目标,通过过程来产生软件生命周期数据,同时通过软件生命周期数据来证明实现的目标。机载软件生命周期管理方法进行的分析和设计工作所得到的结果,对飞机飞行期间的机载软件安全性起到重要的保障作用。本文限于篇幅未对不同等级软件在不同阶段要实现的目标进行概论。

猜你喜欢

生命周期软件标准
全生命周期下呼吸机质量控制
2022 年3 月实施的工程建设标准
禅宗软件
从生命周期视角看并购保险
民用飞机全生命周期KPI的研究与应用
忠诚的标准
软件对对碰
美还是丑?
企业生命周期及其管理
一家之言:新标准将解决快递业“成长中的烦恼”