在2008年,Esterel(注1)首发SCADE 6的同时期,Esterel方面在ERTS 2008上发表了《SCADE 6 A Model Based Solution For Safety Critical Software Development》以介绍 Scade 6 相比前一代 Scade 5的改进。后文将复述其中若干摘要。
注1: Esterel 于2012年被ANSYS收购,2008年SCADE 6由Esterel发布。
简介
SCADE是一种专为描述和实现高安全应用而开发的编程语言及工具套件。其理论基础源自实时应用领域的同步语言理论。
SCADE填补了控制工程与软件工程之间的鸿沟,它为这两个领域提供了一种统一且严谨的图形化与文本化语言,这种语言体现了控制工程的核心理念:
• 其数据流结构与控制工程的方框图方法高度契合
• 其时序运算符对应控制工程中的z变换算子。例如控制工程中的z-1算子(表示单位延迟),在SCADE中就有名为"pre"的等效运算符。
SCADE的建模能力涵盖三大领域:复杂算法设计验证与优化、控制密集型应用开发,以及图形界面实现。
SCADE 6 自身的功能安全
功能安全框架
SCADE 6 是一个基于模型的框架,由多个工具组成,专门用于开发高安全系统。本节将探讨确保整个工具链安全性的关键要素。
我们在此要回答的问题是:“什么样的特性能使工具链适用于高安全场景?” 首先,语言(或形式化方法)是核心要素之一。本文第一部分已介绍过 SCADE 语言,这里再回顾其主要特点:
- 形式化、确定性且文档完备
- 图形化与文本化(二者可相互映射)
- 简洁而强大
- 精确且简明
基于这些原则,SCADE 6 进一步规定:
- 每个变量在每个周期内仅允许一次赋值
- 每个状态机在每个周期内仅允许一个活跃状态
- 每个状态机在每个周期内仅允许触发一次状态迁移
- 语义错误应在编译时检测,以避免绝大多数运行时错误
在语言形式化地定义后,该方法的核心目标是从系统描述(模型)中生成代码。目前最适用的方法是遵循 DO-178B、IEC 61508 和 EN 50128 等标准进行认证。
代码生成器的输入文件需符合 SCADE 语言的具体语法描述模型。图形化编辑器必须生成这些存储文件,并严格区分 图形数据 和 语义数据。图形数据仅包含绘制信息(如位置、大小等),不得影响语义逻辑。
标准符合性
工具链必须满足与目标应用相同的安全标准。因此,SCADE 6 的代码生成器遵循 DO-178B、EN 50128 和 IEC 61508 等标准开发。
设计与开发
SCADE 6 已被用于建模和编码 SCADE 6 仿真器的某些复杂模块,进一步验证了其在实际工程中的可靠性。
特别感谢
诚挚感谢下面这些人
- SCADE 6 语言作者 Jean Louis Colaco 和 Bruno Pagano。
- 奠定 SCADE 6 同步基础的Lustre 与 Esterel 中的主要人物:Gerard Berry, Nicolas Halbwachs, Paul Caspi。
- SCADE 6 团队。