0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

民机机载软件中的开发和验证工具

上海控安 来源:上海控安 作者:上海控安 2023-02-24 13:34 次阅读

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

版块 |鉴源论坛 · 观擎

01工具鉴定

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

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

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

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

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

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

02DO-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第六章的验证工作在对源代码和目标代码一致性验证这点上被“省略”了。我们不妨再假设,研制单位对工具的信心非常足,以至于决定将原先执行一类构型控制的源代码由于工具的使用降为二类。可见,在这一过程中,构型管理过程及其活动依然保留,并且还是由人工进行,但部分过程将被“减少”。

从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标准在考虑上面提到的工具分类准则的基础上,结合工具工作对象(软件)的等级,细化了工具鉴定等级的要求。

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

03工具操作要求

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

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    67

    文章

    4322

    浏览量

    85416
  • 开发
    +关注

    关注

    0

    文章

    340

    浏览量

    40586
  • 验证工具
    +关注

    关注

    0

    文章

    9

    浏览量

    7455
收藏 人收藏

    评论

    相关推荐

    CodeArts五年磨一剑,深耕信创软件开发工具

    在今年的QCon全球软件开发大会(上海站),华为云开发工具和效率领域首席专家、华为软件开发生产线 CodeArts首席技术总监王亚伟作为「智能化信创软件IDE」专题的出品人,带领他的专
    的头像 发表于 12-15 15:55 306次阅读
    CodeArts五年磨一剑,深耕信创<b class='flag-5'>软件开发工具</b>

    民机机载软件的配置管理

    配置管理(Configuration Management)在航空领域经常又称为构型管理,是现代复杂产品研制的核心技术。与很多传统观念中配置管理是对文档和版本的简单管理不同,现代复杂产品由于其内部组成部分较多、研制分工普遍以及设计中的版本状态以及配合关系频繁变换的原因,往往对配置/构型管控要求极高。
    的头像 发表于 12-01 16:15 365次阅读
    <b class='flag-5'>民机</b><b class='flag-5'>机载</b><b class='flag-5'>软件</b>的配置管理

    基于模型的方法在民机机载软件中的应用

    机载软件适航标准对软件研制过程、生命周期数据以及符合性证据等都提出了明确的要求。然而,这些过程要求都是建立在欧美80~90年代软件工程实践的基础上,以文本需求+代码为主要的
    的头像 发表于 10-27 15:30 230次阅读
    基于模型的方法在<b class='flag-5'>民机</b><b class='flag-5'>机载</b><b class='flag-5'>软件</b>中的应用

    开发板和开发工具指南

    与使用开发环境相比,许多工程师更倾向于将调试点嵌入其代码并使用测试设备来验证其硬件。欧时电子指南将详述开发板和开发工具的优势,并提供关于使用和选择恰当
    的头像 发表于 10-26 14:35 247次阅读

    AUTOSAR软件开发环境之EB tresos Studio简介

    EB tresos是一款经典的AUTOSAR软件开发环境,依赖于一致的单一工具环境来通过汽车开放系统架构 AUTOSAR 开发电子控制单元 (ECU);它能够实现配置、验证和生成 EC
    的头像 发表于 09-19 10:06 3398次阅读
    AUTOSAR<b class='flag-5'>软件开发</b>环境之EB tresos Studio简介

    基于Json格式的文本视图验证工具

    基于Json格式的文本视图验证工具
    发表于 09-19 09:15 8次下载

    英诺达发布DFT静态验证工具

    英诺达发布了自主研发的静态验证EDA工具EnAltius®昂屹® DFT Checker,该工具可以在设计的早期阶段发现与DFT相关的问题或设计缺陷。
    的头像 发表于 09-13 09:05 759次阅读

    OneCore存储软件开发工具包(SDK)

    电子发烧友网站提供《OneCore存储软件开发工具包(SDK).pdf》资料免费下载
    发表于 08-22 14:53 0次下载
    OneCore存储<b class='flag-5'>软件开发工具</b>包(SDK)

    浅谈操作系统的适航符合性(下)

    本篇将展开讨论降低民机机载操作系统适航风险的具体方法。
    的头像 发表于 08-08 15:11 406次阅读
    浅谈操作系统的适航符合性(下)

    Emulex软件开发工具包实用程序(elxsdkutil)

    电子发烧友网站提供《Emulex软件开发工具包实用程序(elxsdkutil).pdf》资料免费下载
    发表于 07-28 09:36 0次下载
    Emulex<b class='flag-5'>软件开发工具</b>包实用程序(elxsdkutil)

    软件工具:像T1、T2、T3一样简单

    没有工具软件就无法建造房屋。IEC 61508谈到了两种类型的软件工具。作为应用程序的一部分运行的在线工具,以及在
    的头像 发表于 06-29 10:44 716次阅读
    <b class='flag-5'>软件</b><b class='flag-5'>工具</b>:像T1、T2、T3一样简单

    软件离线工具的新规则是什么?

    集成电路的设计在很大程度上依赖于软件工具。以前,用于生产集成电路的工具规则来自IEC 61508-2:2010附录F,并且首选经过验证的正在使用的
    的头像 发表于 06-28 14:43 316次阅读
    <b class='flag-5'>软件</b>离线<b class='flag-5'>工具</b>的新规则是什么?

    IC验证的主要工作流程和验证工具是什么?

    验证其实是一个“证伪”的过程,从流程到工具验证工程师的终极目的都只有一个。
    的头像 发表于 05-31 10:34 1082次阅读

    Vivado 开发软件下板验证教程

    验证教程。话不多说,上货。Vivado 开发软件下板验证教程在之前的学习当中,我们已经学习了Vivado的基本操作,接下来我们将继续学习软件的下板
    发表于 04-14 20:18

    如何验证用CodeWarrior工具编写的软件

    如何验证用 CodeWarrior 工具编写的软件?有没有可用的单元测试,软件测试工具
    发表于 04-14 08:03