鉴源论坛 · 观擎丨民机机载软件中的开发和验证工具

news2024/10/3 0:28:23

作者 |蔡喁 上海控安可信软件创新研究院副院长

版块 | 鉴源论坛 · 观擎

01 

工具鉴定

现代软件工程中,工具已经出现在软件研制过程中的各个环节中。在常见的软件研制环节中,使用工具包括软件需求工具、软件设计工具、软件架构工具和软件测试工具等。这些工具的使用可以提高软件的开发效率,并且在正确使用相关工具的条件下还有望能提高软件的质量。当然,如果工具中存在错误或未能正确的使用工具,也将会带来负面的影响。并且由于工具的功能日益强大,人类有时已经无法对工具的输出进行直接的判断。

正如前文不断提及的那样,民用飞机时刻以安全性为最高要求。为了保证达到预期的安全水平往往不惜牺牲效率和其它性能。就民机机载软件研制过程中使用的工具来说,风险也是显而易见的,主要原因在于:

● 相比纯手工开发,工具的输出中隐藏的错误往往更加分散难以被发现;

● 工具生成的软件中含有的缺陷往往难以通过手工的方式排查并加以修正;

● 相比人工活动,工具产生的错误不再是偶然的。当同样的工具被用于多个项目中时,同样的错误将被成批的复制。

为了规避工具的应用给民机机载软件带来的风险,适航审定过程中通常采取将机载软件的要求延伸到相关工具中的方法,这一方法也可以称之为“鉴定”。工具鉴定正是DO-178C第十二章第二节所描述的内容。为了区别工具鉴定与机载软件的适航要求,RTCA组织在DO-178C标准推出之时也同步颁布了DO-330文件。将工具鉴定要求和方法分开处理的出发点是将基于软件过程管理技术和方法的工具鉴定这一思路运用于各类可能需要用于证明工具自身功能或者性能的领域。

02 

DO-178C的工具鉴定要求

2.1 何时需要进行工具鉴定?

“Qualification of a tool is needed when processes of this document are eliminated, reduced or automated by the use of a software tool without its output being verified as specified in section 6.” (RTCA DO-178C 12.2)

“当使用软件省略、减少或自动化了本文所要求的过程,并且没有采用本文件第六章的要求对输出进行验证,则工具需要鉴定。”(RTCA DO-178C第12.2节)

上文描述了工具鉴定的两个基本条件,分别是“省略、减少或自动化了本文所要求的过程”以及“没有采用本文第六章的要求对输出进行验证。”

我们先来看看什么是“省略、减少和自动化”。从字面上来看,“省略”自然就是因为软件工具的使用而可以省去不再执行的软件生命周期过程,或过程中的某些步骤;“减少”则是DO-178C要求的过程依然执行,但是减少了过程中所包含部分活动;“自动化”顾名思义是原先标准要求的过程原先由人工执行,现在被工具自动化地实现了。由此可以看出,“省略、减少、自动化”是工具影响到软件过程或活动做多少和由谁做的置信度问题。下面我们通过一个例子来仔细分析上面三者间的区别。

例如,我们假设某软件研制过程中工具A能直接从低级需求和系统架构设计文件转换并且生成全部的源代码文件,在研制过程中无需进行人工编码。我们看到,在这一过程中源代码是被工具编写出来的,所以实质上DO-178C所描述的软件编码过程(Software Coding Process)是被“自动化”了。但是由于这一工具的出色性能,研制单位认为在自动转换过程中不可能引入错误,从而决定不再进行对低级需求和源代码一致性的验证,则DO-178B第六章的验证工作在对源代码和目标代码一致性验证这点上被“省略”了。我们不妨再假设,研制单位对工具的信心非常足,以至于决定将原先执行一类构型控制的源代码由于工具的使用降为二类。可见,在这一过程中,构型管理过程及其活动依然保留,并且还是由人工进行,但部分过程将被“减少”。总结来说,软件工具鉴定的条件可通过下图表示:

图1 工具鉴定的条件和分类

从DO-178C的要求中我们也不难看出,如果软件工具的使用没有省略、减少或自动化DO-178C标准所要求的过程,则不需要对工具进行鉴定。这类工具常见的例子如构型管理(也称配置管理)工具。构型管理工具协助研制团队实现DO-178C第七章所要求的目标和活动,但如果它们仅仅对软件研制过程起到辅助作用而没有起到上文中所描述的“省略、减少或自动化”某一过程的效果,则这种工具不需要鉴定,可以在机载软件项目中直接使用。当然,所有使用的工具都应该在相应的软件研制环境计划中描述,同时也需要将这一计划放入构型管理的范围内。

另外,还需要重点关注DO-178C关于工具鉴定条件的第二条。如果存在工具,虽然满足上面所提的条件,即“省略、减少或自动化”了DO-178C所要求的某项活动。但如果研制单位能够通过对工具的输出进行全面的验证,且验证活动按照DO-178C第六章的要求进行,满足第六章的目标、活动和数据要求。则这个工具也可以不进行鉴定。

2.2 如何进行工具鉴定?

“The purpose of the tool qualification process is to ensure that the tool provides confidence at least equivalent to that of the process(es) eliminated, reduced, or automated.”

“所谓工具鉴定就是为了确定工具能够提供与其省略、减少或自动化了的过程具备同样的适航审定置信度。”

(1)工具鉴定准则

在DO-178C中,工具被进一步根据以下三个准则分成三个类别:

准则1――“工具的输出是机载软件的一部分并且可能引入错误。”我们可以看出,这一定义与B版本中的开发工具是完全对应的。换句话说,C版中的1类工具就是B版中所谓的“开发工具”。

准则2――“将自动验证某些过程,并可能漏检错误;同时,这些输出被用来证明对以下过程的省略和减少是合理的:a. 并没有被工具自动化的验证过程;b. 可能对机载软件产生影响的开发过程。”

准则3――“在预期的使用范围内,可能漏检错误。

“事实上,准则2和准则3都是对B版本中验证工具的进一步细分。

准则1的工具比较好分辨,就是开发过程中需求、设计、编码或者集成过程中用到的产生软件本体的数据的工具。准则3的工具则是用于验证需求、设计、编码或者可执行目标码的工具,但是其作用较为单一,不会产生“副作用”。准则2的工具首先是验证工具,例如检查数组索引越界的工具,如果因为该工具的使用,使得代码中预防数组索引越界的代码可以不用添加,那么该验证工具不但影响了验证过程,而且影响了开发过程,是一种超级验证工具,称之为准则2的工具。准则2的工具的另外一个例子是测试用例的生成工具,其首先作用是生成测试用例,假如此时测试用例还无需人工评审或者部分减免了人工评审其与需求的追踪性,那么这个工具同时影响了DO-178C A-6表和A-7表中的目标,产生跨表的符合性表达,也是一种准则2的工具。

(2)工具鉴定等级(Tool Qualification Level)

上世纪90年代,工具的规模和功能都与今天无法同日而语。近年来,软件工具的功能复杂度甚至超过机载软件产品本身,而在老版标准中对工具鉴定要求的描述过于简单,对于验证工具的要求甚至只有黑盒测试的要求。这与DO-178C标准中对整个机载软件开展全面系统的研制保证管理的要求差距较大。因此,DO-178C标准在考虑上面提到的工具分类准则的基础上,结合工具工作对象(软件)的等级,细化了工具鉴定等级的要求。如下表:

表1 工具鉴定等级的要求

在上述对工具分级的

基础上,DO-178C标准要求工具鉴定的过程依据DO-330标准的相应要求进行。

03 

工具操作要求

我们不难发现,不论是开发工具还是验证工具,在工具鉴定中都涉及工具操作需求。常见的误解通常认为,工具操作需求是一份类似于使用说明书的文件。我们也曾发现没有取证经验的研制单位因为无法提交令人信服的软件操作需求而造成工具无法通过鉴定的情况。事实上,工具的操作需求作为工具鉴定活动中必须准备的生命周期数据,应该按照软件生命周期数据中的软件高级或低级需求的标准来编制。并且严格的执行适用的构型管理和更改控制。工具的操作需求起到机载软件验证过程中系统需求的作用,而工具的鉴定活动因此更加类似与我们经常进行的系统审查。我们除了对工具的操作需求其精确性和正确性进行评审之外,还需考虑工具在预期运行环境下的功能测试、鲁棒性测试以及需求和结构覆盖率分析等,而工具软件的高级需求则被作为符合工具操作需求的软件高级需求来对待。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/369648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】模板与STL库

STL(标准模板库) 文章目录模板STL模板 模板是泛型编程的基础,泛型编程以一种独立于任何特定类型的方式编写代码。 模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们…

线性判别分析仅在线性可分数据上能获得理想结果

Q: 线性判别分析仅在线性可分数据上能获得理想结果, 试设计一个改进方法, 使其能较好地用于飞线性可分数据 The same for “Linear discriminant analysis can only obtain ideal results on linearly separable data. Try to design an improved method to make it better us…

Vue3:自定义指令以及简单的后台管理权限封装

目录 前言: 自定义指令介绍: 局部的自定义指令: 全局自定义指令: 讲讲后台管理权限管理: 前言: 说起这个自定义指令的使用场景,我第一反应就是,后台管理的权限管理,要…

VBA学习——1

VBA 过程的基本语法如下: Sub 过程名(参数)语句1语句2...End SubVBA 函数与 VBA 过程很相似,除了使用的关键词外,主要区别是,函数可以返回值。 Function [函数名]([参数]) As [返回值类型]语句1 语句2 ... 语句n [函…

Servlet笔记(9):Cookie处理

一、Cookies处理 1、Cookies概念 Cookies是存储在客户端计算机上的文本文件,并保留各种跟踪信息。 识别返回用户的三个步骤 服务器脚本向浏览器发送一组Cookies。例如姓名、年龄或识别号码等。浏览器将这些信息存储在本地计算机上。当下一次浏览器向Web服务器发送…

SSM+HTML搭建(小白教学)

最近做项目,觉得还是有意义记录以下前后端框架是怎么搭建的,今天给大家介绍介绍SSM:SpringBootSpringMVCMyBatis后端搭建:SpringBoot快速搭建的网站(Spring Initializr)选择创建之后,会下载到一个zip压缩包,对压缩包进行解压(包地址一般选择后端项目的放的文件夹中)用idea打开项…

每日学术速递2.24

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.LG 1.BUAA_BIGSCity: Spatial-Temporal Graph Neural Network for Wind Power Forecasting in Baidu KDD CUP 2022 标题:BUAA_BIGSCity:百度KDD CUP 2022风电预测…

警惕!黑客正疯狂实施网络攻击,网站该如何防范?

自2021年以来,ATW组织宣称披露涉我国重要信息系统源代码、数据库等敏感信息70余次,涉及国家重要政府部门、航空、基础设施等100余家单位的300余个信息系统,尤其2022年以来,ATW组织滋扰势头加剧,持续对中国的网络目标实…

数据结构预算法之买股票最好时机动态规划(可买卖多次)

一.题目二.思路在动规五部曲中,这个区别主要是体现在递推公式上,其他都和上一篇文章思路是一样的。所以我们重点讲一讲递推公式。这里重申一下dp数组的含义:dp[i][0] 表示第i天持有股票所得现金。dp[i][1] 表示第i天不持有股票所得最多现金如…

【Http1.0和Http1.1的区别?Http1.1和Http2.0的区别?】

计算机网络面试的相关知识你可不能不知道呀!Http1.0和Http1.1的区别?Http1.1和Http2.0的区别? Http1.0和Http1.1的区别? 连接方式 : HTTP 1.0 为短连接,HTTP 1.1 支持长连接。状态响应码 : HTTP/1.1中新加入了大量的状…

小型水库大坝安全监测的主要对象

一、监测背景 大坝监测的目的分成两个大的方面,一方面是为了验证设计、指导施工、为科研提供必要的资料;另一方面,也可以说是更重要的方面,就是为了长期监视大坝的安全运行。因此,一个成功的监测设计者不仅要能充分领会…

Vmware 虚拟机无法联通主机

问题描述:今天使用Vmware Workstation 创建CentOS-7 虚拟机,基于CentOS-7 搭建Hadoop3 伪分布式版本,CentOS-7 测试Hadoop 3 服务正常启动,通过主机连接Hadoop 3的管理平台,提示如下错误信息:尝试解决办法&…

Android---Handler 源码解析

在 android 开发中,经常会在子线程中进行一些操作,当操作完后会通过 handler 发送一些数据给主线程,通知主线程做响应的操作。原理:子线程 handler 主线程,其实构成了线程模型中的经典问题,生产者-消费者模…

HHDESK文本对比功能

对比文件夹和图片而言,文本的更改更加频繁且琐碎;个别词语的更改更是让人“健忘”。 如果有一款工具能够直观的对文本进行对比,并且清晰的划分显示,那么便可以大量节约办公人员的精力和时间。 1 文本对比功能简介 版本更新&…

Ubuntu20.04配置深度学习环境

Ubuntu20.04配置深度学习环境 对于一台新Ubuntu20.04主机,想要直接进行深度学习模型的训练,需要进行一些常规配置。本文针对的情况包括物理机和虚拟机。安装部分本文不介绍,只介绍配置环境部分。 1. 安装中文输入法 参考如下博客&#xff…

Web安全最详细学习路线指南,从入门到入职(含书籍、工具包)

在这个圈子技术门类中,工作岗位主要有以下三个方向: 安全研发 安全研究:二进制方向 安全研究:网络渗透方向 下面逐一说明一下. 第一个方向:安全研发 你可以把网络安全理解成电商行业、教育行业等其他行业一样&#x…

《卓有成效的管理者》系列-总结篇

作者【美】彼得-德鲁克简介书中提到,每一位知识工作者其实都是管理者,而且卓有成效是每个管理者必须做到的事。书中认为所有负责行动和决策而且能够提高机构工作效率的人,都应该像管理者一样工作和思考。而且,一位卓有成效的管理者…

自考都有哪些科目?怎么搭配报考?

第一次自考科目搭配 先报理论课,熟悉学习和考试套路 参考搭配模式: 一、全报考公共课 公共课难度较低,通过率高,复习起来比较轻松。对于不确定考什么专业,后期想换专业的同学,考过公共课&#xff0c…

记一次Binder内存不足导致的应用被杀

每个进程的可用Binder内存大小是 1M-8KB 也就是900多KB 事情的起因的QA压测过程发生进程号变更,怀疑APP被杀掉过,于是开始看日志(实际后来模拟的时候可以发现app确实被杀掉了) APP的压测平台会上报进程号变更时间点,发…

基于C++环境的gRPC安装配置:vcpkg+CMake+VS2022

前言gRPC 是 Google 提供的一个 RPC 框架,用于在网络上实现多个应用程序之间的通信。gRPC的优点是支持多种语言,因此可以轻松使用C应用程序与Go或Python应用程序进行通信。尽管CSDN、知乎有很多讲解gRPC在C环境安装的文章,其中最常见的是使用…