鉴源论坛 · 观擎丨基于模型的方法在民机机载软件中的应用

news2024/12/17 15:36:11

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

版块 | 鉴源论坛 · 观擎

社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区”

01

基于模型的开发和验证MBDV

模型泛指用于支持软件开发过程或软件验证过程的系统的一组软件方面的抽象表示,在机载软件中,基于模型的开发和验证中所涉及的模型一般包含以下特征:

1. 使用明确标识的建模符号来完全描述模型。这里所说的建模符号可以是图形和/或文本的。

2. 该模型包含软件需求和/或软件体系结构定义。

3. 该模型的形式和类型用于软件开发过程或软件再验证过程支持的直接分析或行为评估。

相比之下一些其他类型的“类模型方法”在机载软件领域内并不被定义为一种MBDV方法。包括无法形成语法语义有限闭环的图形表达方法、或者在机载软件生命周期中无法用于表达需求/设计的图文结合表达方法。

之所以在民机机载软件中对模型开发进行如此的定义,与民用飞机所面临的适航符合性要求是相关的。正如前面几期介绍的,机载软件适航标准对软件研制过程、生命周期数据以及符合性证据等都提出了明确的要求。然而,这些过程要求都是建立在欧美80~90年代软件工程实践的基础上,以文本需求+代码为主要的开发方式。随着近些年模型技术的进步,很多研制方法中通过模型表达需求或者设计,从而改变了以往单纯依靠人工方法的开发状态。因此,传统RTCA DO-178B/C标准中部分目标不再适用于MBDV情况,同时,MBDV也存在自有的特殊方法,也会存在特有的引入错误的可能。在本世纪初期的民机研制和适航实践中,民航局方经常通过对MBDV补充专门的问题纪要的形式对其符合性要求进行专门的规定。为改变这种情况,在RTCA DO-178C标准修订时专门制定了基于模型的开发和验证补充标准。

02

MBDV在民机中的应用模式

由于民机中潜在的模型多种多样,其表达方式以及承载的设计内涵各不相同,这将造成模型在整个层次化的研制体系中发挥不同的作用。且,由于很多实际项目中,难以用一种模型完全表达一款机载软件中所有的需求和设计,往往存在模型和文本需求/设计混用的情况。以下是几个不同的模型场景例子:

下表提供了几组使用了模型的软件生命周期,解释了不同的模型开发时的较高级需求:

图片

表1 不同模型开发时的模型运用场景

  • 例A: 用来描述低级需求和软件构架的模型,如表1中案例3,用一个或者多个模型来代表软件的低级需求和软件构架。

图片

图 1

  • 例B: 用来描述高级需求、低级需求和软件构架的模型,如表1中案例2。

图片

图 2

  • 例C另一种用来描述高级需求、低级需求和软件构架的模型。

图片

图 3

  • D:仅用一个模型来描述部分的高级需求,其下层为经典的开发流程。

图片

图 4

  • 例E:如表1中案例2仅用一个模型来描述系统设计、高级需求、低级软件需求和软件的构架。

图片

图 5

03

MBDV在民机适航中的主要挑战

3.1 层次和追溯方面的问题

传统的机载软件过程要求软件研制环境具备明显的层次特征,且不同层次之间实现严格的追溯关系。然而,由于模型的引入,传统上通过条目进行的追溯方法变得困难。且,由于不同类型的模型表达的需求和设计维度不同,模型在层次中的定位实际上无法给出统一的规定,进一步加剧了上述问题。具体在运用过程中,由于模型中的单元维度与传统条目化需求和设计中的维度不同,研制单位可能难以建立有效的精确追溯,或者难以检查和评估追溯的正确和完整性。此外,由于层次的相对不稳定,也造成了模型具体需要满足机载软件适航标准中哪些生命周期目标变得不再直接。

3.2 模型仿真方法的有效性

在早期开展模型化设计的研制单位内,模型自身可以通过早期的仿真来检验设计的正确性是模型运用的重要驱动力。相比于必须完成代码开发和集成才能通过测试检验正确性的传统开发环境,仿真方法无疑将早期验证活动很大程度上自动化了。然而,作为民机软件工程,为保证产品的安全性,验证方法自身的有效性也是重要的方面。在通用软件中使用的很多技术,由于难以达到民机适航所要求的确定性和准确性水平,难以在民机中使用的例子屡见不鲜。为此,使用模型仿真的研制单位,需要在定义模型以及设计模型仿真方法的过程中,通过理论分析以及实践检验等方法自证模型仿真的有效性。这也无疑提高了在民机中运用模型方法的难度。

04

标准中对MBDV的要求

DO-331标准,正是基于上述两点,对使用模型定义的各级需求/架构/设计数据的研制和验证要求(包括验证覆盖率的判断方法)、仿真作为验证手段的符合性要求进行了规定。

在具体工程应用中,利用基于模型的方法进行机载软件的研制和验证时,除了要满足DO-178C中相应过程的目标外,还需要满足补充文件DO-331中新增的如下几类目标。

(1)软件开发过程

· 标识任何对高级需求实现或执行无用的特定模型元件

当软件高级需求可以通过规范模型进行表示时,没有描述任何高级需求且不能作为开发过程或开发活动输入的模型元件都应该被标识出来。该目标是否满足可以通过MB.6.3.1中的验证目标进行证明。

· 标识任何对软件架构实现或执行无用的设计模型元件

当软件低级需求可以通过规范模型进行表示时,没有描述任何低级需求且不能作为开发过程或开发活动输入的模型元件都应该被标识出来。该目标是否满足可以通过MB.6.3.2中的验证目标进行证明。

· 标识任何对低级需求实现或执行无用的设计模型元件

当软件架构可以通过规范模型进行表示时,没有描述任何软件架构且不能作为开发过程或开发活动输入的模型元件都应该被标识出来。该目标是否满足可以通过MB.6.3.3中的验证目标进行证明。

(2)软件需求过程输出结果的验证

· 仿真用例正确

补充文件DO-331中规定,若使用仿真技术作为符合性方法,用于证明表格MB.A-3中目标1、2、4或7是否满足,则在传统测试方法的基础上必须补充对仿真用例的确认工作。MB.A-7目标10“仿真用例正确”也应被满足。

· 仿真程序正确

补充文件DO-331中规定,若使用仿真技术作为符合性方法,用于证明表格MB.A-3中目标1、2、4或7是否满足,则目标“仿真程序正确”也应被满足。

· 仿真结果正确,并且解释差异性

补充文件DO-331中规定,若使用仿真技术作为符合性方法,用于证明表格MB.A-3中目标1、2、4或7是否满足,则目标“仿真结果正确,并且解释差异性”也应被满足。

(3)软件设计过程输出结果的验证

· 仿真用例正确

补充文件DO-331中规定,若使用仿真技术作为符合性方法,用于证明表格MB.A-4中目标1、2、4、7、8、9或11是否满足,则目标“仿真用例正确”也应被满足。

· 仿真程序正确

补充文件DO-331中规定,若使用仿真技术作为符合性方法,用于证明表格MB.A-4中目标1、2、4、7、8、9或11是否满足,则目标“仿真程序正确”也应被满足。

· 仿真结果正确,并且解释差异性

补充文件DO-331中规定,若使用仿真技术作为符合性方法,用于证明表格MB.A-3中目标1、2、4、7、8、9或11是否满足,则目标“仿真结果正确,并且解释差异性”也应被满足。

(4)软件验证过程输出结果的验证

· 仿真用例正确

补充文件DO-331中规定,若使用仿真技术作为符合性方法,用于证明表格MB.A-6中目标1或2是否满足,则目标“仿真用例正确”也应被满足。

· 仿真程序正确

补充文件DO-331中规定,若使用仿真技术作为符合性方法,用于证明表格MB.A-6中目标1或2是否满足,则目标“仿真程序正确”也应被满足。

· 仿真结果正确,并且解释差异性

补充文件DO-331中规定,若使用仿真技术作为符合性方法,用于证明表格MB.A-6中目标1或2是否满足,则目标“仿真结果正确,并且解释差异性”也应被满足。

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

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

相关文章

【深度学习】【NLP】如何得到一个分词器,如何训练自定义分词器:从基础到实践

文章目录 什么是分词?分词算法使用Python训练分词器步骤1:选择分词算法步骤2:准备训练语料步骤3:配置分词器参数步骤4:训练分词器步骤5:测试和使用分词器 代码示例:使用SentencePiece训练分词器…

技术分享| anyRTC低延时直播优化

直播系统就是把活动现场的音频或视频信号经数字压缩后,传送到直播多媒体服务器(CDN)上,在互联网上供广大网友或授权特定人群收听或收看。而随着技术的日益更新,人民对于直播的互动性,实时性要求更高了,传统的直播少则几…

C语言编写图形化界面-创建按钮-为其指定样式

文章目录 前置章节指定窗口样式给按钮加边框扁平化按钮复选框样式按钮自动复选框 单选按钮三态按钮自动三态按钮 默认按钮样式(对话框Enter键) 设置按钮位置和大小封装函数 前置章节 开始之前,需要学习以下章节: 创建窗口 窗口过…

10G传输分析仪SDH表TFN D450S参数详情

D450S 10G SDH系列 SDH/SONET传输测试模块 D450S系列SDH/SPNET传输测试模块是TFN模块化测试产品中的一款。D450S系列可配置在FT100测试平台上,实现广泛的PDH/DSn和SDH/SONET的测试功能,为城域网提供综合的测试方案,是高性价比的网络测试产品…

500内部服务器错误很常见,但解决方法也很常见

500内部服务器错误是一个非常通用的HTTP状态代码,这意味着网站的服务器出现了问题,但服务器无法更具体地说明具体问题是什么。 HTTP 500内部服务器错误的原因 大多数情况下,当页面或网站的编程出现问题时,就会出现此错误,但问题肯定在你这边。这些问题可能是由浏览器中的…

Linux系统之file命令的基本使用

Linux系统之file命令的基本使用 一、file命令介绍1.1 Linux简介1.2 file命令简介 二、file命令的使用帮助2.1 file命令的help帮助信息2.2 file命令的语法解释2.3 file命令的man手册 三、文件类型介绍四、file命令的基本使用4.1 查询file版本4.2 显示文件类型4.3 输出时不显示文…

selenium+python web自动化测试框架项目实战实例教程

自动化测试对程序的回归测试更方便。 由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行... 可以运行更加繁琐的测试 自动化测试的一个明显好处就是可以在很短的时间内运行更多的测试。学习自动化测试最终目的是应用到实际项目中&…

基于springboot实现校友社交平台管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现校友社交平台管理系统演示 摘要 校友社交系统提供给用户一个校友社交信息管理的网站,最新的校友社交信息让用户及时了解校友社交动向,完成校友社交的同时,还能通过论坛中心进行互动更方便。本系统采用了B/S体系的结构,使用了java技…

C++模板类用作参数传递

前言 在模板类<>传递参数的一种实现。记不住&#xff0c;以此记录。 // dome.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #define _CRT_SECURE_NO_WARNINGS #include <iostream> //#include "tools.h" #include <fu…

一种基于屏幕分辨率的RTSP主子码流切换的多路视频监控的播放方案

技术背景&#xff1a; 用户场景下&#xff0c;存在多个监控场所的100路监控摄像头&#xff0c;例如&#xff1a;大华、海康、宇视、杭州宇泛的枪机、球机、半球、NVR、DVR等不同类型的监控设备&#xff0c;通过视频监控平台进行设备的管理&#xff0c;通过RTSP拉流的方案管理监…

python自动化测试平台开发:自动化测试平台简介

一.测试平台简介 为什么需要测试平台 已有的开源测试平台不能满足需要&#xff0c;不要轻易造轮子 需要公司级别的定制 需要整合公司内部的多套平台 例子&#xff1a;DevOps平台、精准化测试平台、质量监控平台等等 常见的测试平台开发模式 大一统模式&#xff08;适合简单的…

鉴源实验室 | AUTOSAR E2E:车载通信的安全保障

作者 | 沈平 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 随着汽车行业逐步走向电气化、智能化&#xff0c;车载系统的软件和硬件复杂度不断上升。如何确保这些复杂系统中的数据通讯安全和…

Arduino驱动热敏电阻传感器模块

目录 一、简介二、参数性能三、使用方法四、实验现象 一、简介 点击图片购买 热敏电阻传感器模块采用NTC热敏电阻传感器&#xff0c;灵敏度好&#xff0c;PH2.0接口即插即用&#xff0c;防反接&#xff0c;适用于各类开发板。 二、参数性能 电压5V接口3PIN防反接PH2.0杜邦线尺…

BigDecimal应用——计算费用场景中用到Integer,Double,BigDecimal三种类型出现的意外情况 结合BigDecimal源码分析

引出 在一个计算费用的场景中&#xff0c;用到了Integer&#xff0c;Double&#xff0c;BigDecimal三种类型&#xff0c;在转换为bigdecimal的时候遇到的问题&#xff0c;结合源码进行了分析。 1.在new bigdecimal的时候&#xff0c;最好传入的是字符串&#xff1b;2.double类…

Java集合框架:List、Set、Map类型及泛型详解

文章目录 &#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文创造者、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。&#x1f30e;跑过十五…

干货!BIM高性能3D Web轻量化引擎——HOOPS Communicator!

HOOPS Communicator是一款简单而强大的工业级高性能3D Web可视化开发包&#xff0c;专注于Web端工程图形渲染。采用了先进的流式加载方式&#xff0c;并支持服务端和客户端渲染&#xff0c;是可以在云端进行部署和无缝集成的新技术平台。灵活且易于部署&#xff0c;可在以工程为…

你绝对不知道的接口加密解决方案:Python的各种加密实现

在现代软件开发中&#xff0c;接口测试已经成为了不可或缺的一部分。随着互联网的普及&#xff0c;越来越多的应用程序都采用了接口作为数据传输的方式。接口测试的目的是确保接口的正确性、稳定性和安全性&#xff0c;从而保障系统的正常运行。 在接口测试中&#xff0c;加密…

InterfaceWave 架构图

场景 正在开发一个Web应用&#xff0c;接口中很多重复逻辑&#xff08;重复逻辑已经被抽象&#xff09;&#xff0c;我使用一个Adapter适配器&#xff0c;就可以自己生成接口&#xff0c;不用再一个一个C S D 写重复逻辑&#xff0c;我只需要在配置文件中配置&#xff0c;接口…

软件测试外包干了4年,感觉废了...

​先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…

Nokogiri库和OpenURI库使用HTTP做一个爬虫

Nokogiri和OpenURI是两个常用的Ruby库&#xff0c;用于编写爬虫程序。它们的主要功能如下&#xff1a; 1、Nokogiri&#xff1a;Nokogiri是一个强大的HTML和XML解析库&#xff0c;可以用于解析网页内容。它提供了一组简单易用的API&#xff0c;可以方便地遍历和操作HTML或XML文…