经验报告 - SCADE Suite 6 KCG 经历 DO-178B 认证过程中进行的活动

详细内容可参考 ICFP’09 《Experience Report: Using Objective Caml to Develop Safety-Critical Embedded Tools in a Certification Framework》。

数十年前,民用航空电子机构就定义了机载嵌入式代码的认证要求。DO-178B 标准(RTCA/DO-178B,1992)规定了机载软件开发的限制约束。该流程
已被纳入航空器的全周期认证流程中。目前在与关键软件有关的其他工业领域(医疗行业的 FDA Class III、铁路应用的 EN 50128、汽车行业的 IEC 61508 等)也有相应的认证程序。

Esterel Technologies 推广的 SCADE Suite 6 是一种基于模型的开发环境,专用于高安全嵌入式软件。该套件的代码生成器 (KCG) 可将模型转化为符合 DO-178B 标准的嵌入式 C 代码。通过使用 KCG,开发安全关键嵌入式应用程序最终用户可以通过免于验证生成的代码是否与 SCADE 模型一致,从而降低开发成本。如此,验证和确认活动减少了,只需证明模型符合嵌入式应用的功能要求即可。

该编译器的第一个版本是用 C 语言实现的,于 1999 年发布。该编译器基于当时用程序语言 Eiffel的变种(LOVE)编写的代码生成器(ECMA 2005)所开发,当时出于避免被认证机构拒绝的缘故,因此用 C 语言重新编实现了该编译器。

之后,自 2001 年起,Esterel Technologies 开始研究新的编译技术和语言扩展。该工作旨在证明,采用类型系统等方法对语言进行设计,并使用OCaml进行实现,在产业项目角度也是一种高效而清晰的方法。目前的经验显示出,OCaml可以显著缩小工程工具的规范和实现之间的距离,更好地追踪工具输入语言的形式化描述与其编译器实现之间的关系。因此,Esterel Technologies 使用 OCaml 设计了其新的 SCADE SUITE 6。

本文将介绍 Esterel Technologies 为使 KCG 通过以下几项规范的认证而进行的具体开发活动: DO-178B、IEC 61508 和 EN 50128。这些标准的差异和特殊性不在本文讨论范围之内;为方便起见,我们重点讨论美国联邦航空局标准(DO-178B,level A)。详细内容可参考 ICFP’09 《Experience Report: Using Objective Caml to Develop Safety-Critical Embedded Tools in a Certification Framework》。

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

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

相关文章

5.神经网络-激活函数

目录 1. 激活函数不是阶跃函数 1.1 激活函数和阶跃函数都是非线性函数 1.2 激活函数不是阶跃函数 2. sigmoid 函数 2.1 sigmoid 函数表达式 2.2 sigmoid 函数 Python 实现 2.4 sigmoid 函数图 3. ReLU 函数 3.1 ReLU 函数表达式 3.2 ReLU 函数 Python 实现 3.4 ReLU…

线性集合:ArrayList,LinkedList,Vector/Stack

共同点:都是线性集合 ArrayList ArrayList 底层是基于数组实现的,并且实现了动态扩容(当需要添加新元素时,如果 elementData 数组已满,则会自动扩容,新的容量将是原来的 1.5 倍),来…

Rust使用HashSet对Vec类型的元素进行去重

在Rust语言中,对Vec类型的元素进行去重,一种常见的方法是使用一个HashSet来帮助我们快速检查元素是否已经存在。以下是使用HashSet对Vec进行去重的示例代码: use std::collections::HashSet;fn main() {let vec_numbers vec![1, 2, 2, 3, 4…

Java后端初始化项目(项目模板)

介绍 emmmm,最近看了一些网络资料,也是心血来潮,想自己手工搭建一个java后端的初始化项目模板来简化一下开发,也就发一个模板的具体制作流程,(一步一步搭建,从易到难) ok&#xff…

引用类型String的值传递和引用传递

引用传递(pass by reference)是指在调用方法时将实际参数的地址直接传递到方法中,在方法中对参数所进行的修改,将影响到实际参数。 值传递(pass by value)是指在调用方法时将实际参数拷贝一份传递到方法中,在方法中对参数修改,不会影响到实际参数。 基本类型传的是值的拷…

vue2和vue3区别: 探索关键差异

vue2和vue3区别: 探索关键差异 Vue.js 作为流行的前端框架,其版本 3 带来了许多令人兴奋的改进和新功能。虽然 Vue 3 保持了与 Vue 2 的相似性,但也存在一些关键差异需要开发者注意。本文将通过表格形式,清晰地展现 Vue 2 和 Vue …

在多线程程序中,如何保证线程的安全?

在多线程程序中保证线程安全通常涉及以下一些关键技术和策略: 1. 使用同步机制 同步方法:通过在方法签名前添加 synchronized 关键字,确保一次只有一个线程能够执行该方法。同步代码块:通过 synchronized 关键字同步一个代码块&…

刷代码随想录有感(63):将有序数组转换为二叉搜索树(其实时二叉平衡搜索树)

题干&#xff1a; 代码&#xff1a; class Solution { public:TreeNode* traversal(vector<int>& nums, int left, int right){if(left > right)return NULL;int mid left (right - left)/2;TreeNode* NewRoot new TreeNode(nums[mid]);NewRoot->left tra…

文心一言指令:解锁自然语言处理新时代的技术探索

在人工智能领域&#xff0c;自然语言处理&#xff08;NLP&#xff09;一直是研究与应用的热点&#xff0c;它致力于让机器理解、生成并运用人类语言&#xff0c;架起人机交互的桥梁。随着技术的飞速发展&#xff0c;一个全新的概念——“文心一言指令”应运而生&#xff0c;这一…

【GO】go语言中的HTTP标准库 - http编程

上一节已经学习了HTTP的基础知识&#xff0c;本章将学习关于go语言的HTTP编程&#xff0c;最重要的是掌握 net/http 包的用法&#xff0c;以及如何自己编写一个简单的Web服务端&#xff0c;通过客户端访问Server端等。 编写简单的Web 服务器 http.ListenAndServe 启动 Http S…

制作跳动的爱心网页效果

html <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>跳动的爱心</title> <link rel&q…

K-means聚类模型:深入解析与应用指南

K-means聚类是一种广泛使用的无监督学习算法&#xff0c;它通过迭代过程将数据集划分为K个聚类。以下是一篇关于K-means聚类模型的技术文章&#xff0c;将从不同的角度进行详尽的描述。 1. 引言 K-means聚类算法是一种简单且高效的聚类方法&#xff0c;广泛应用于数据挖掘、市…

Chatgpt的应用场景

文案创作类&#xff1a; 作为一名大型语言模型&#xff0c;ChatGPT可以为使用者提供多种文本处理和文字创作方面的服务&#xff0c;例如&#xff1a; 文本生成和创作 ChatGPT可以基于您提供的主题、关键词或文本段落&#xff0c;生成符合使用者要求的新文本。这些文本可以是文…

Linux:Figshare网站文件下载(非浏览器)

参考aws亚马逊云下载figshare内容 Linux wget -c 下载网页内容crul -C_figshare怎么下载数据-CSDN博客 尝试一下 mamba search awscli mamba install awscli2.15.48 aws --version通过网页获取下载链接 比如&#xff1a; https://s3-eu-west-1.amazonaws.com/pfigshare-u-…

Centos 停服倒计时!你的操作系统何去何从?

在计算机技术的不断演进中&#xff0c;操作系统扮演着至关重要的角色。然而&#xff0c;对于许多企业和个人用户来说&#xff0c;CentOS的突然停服消息带来了一场不小的冲击。作为一款备受欢迎的企业级Linux发行版&#xff0c;CentOS的停服意味着用户需要重新评估自己的操作系统…

如何清除DNS缓存,刷新DNS

大家在使用域名访问服务器的时候&#xff0c;经常会遇到一个问题&#xff0c;同一个局域网里的两台电脑&#xff0c;一台可以访问而另一台不行。这是为什么呢&#xff1f;这里我要和大家说下DNS缓存的问题&#xff0c;顾名思义&#xff0c;每台电脑都有DNS缓存&#xff0c;在域…

Torch添加、修改子模块

1. add_module link 2.net[2] 对nn.Sequential的索引 import torch.nn as nn model nn.Sequential(nn.Conv2d(1,20,5),nn.ReLU(),nn.Conv2d(20,64,5),nn.ReLU())print(model) print(model[2]) # 通过索引获取第几个层 运行结果为&#xff1a; Sequential((0): Conv2d(1, 2…

2024年数维杯数学建模

高质量原创论文已完成 需要的私我

vue3配置基础路径

我们在部署项目的时候&#xff0c;有时项目很多时&#xff0c;可能并不是直接部署到根目录下&#xff0c;那么就需要给项目配置一个公共目录。例如&#xff1a;www.iotzzh.com/zh-admin&#xff0c;用这个地址去访问项目而不是直接使用www.iotzzh.com。 那么在vue3中需要改两处…

虚拟化技术 安装和配置StartWind iSCSI目标服务器

一、实验内容 安装StartWind iSCSI目标服务器配置StartWind iSCSI目标服务器 二、实验主要仪器设备及材料 安装有64位Windows操作系统的台式电脑或笔记本电脑&#xff0c;建议4C8G或以上配置已安装vSphere Client已创建虚拟机并在其上安装CentOS6.5StarWind安装介质starwind.…