微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于SCADE的嵌入式软件开发方法研究

基于SCADE的嵌入式软件开发方法研究

时间:09-12 来源:互联网 点击:

域应用比较广泛的主要有基于UML的建模工具,或是结构化的设计工具(SCADE、SIMULINK等)。

1)基于UML的设计工具:关注于高层的功能划分、结构分解、行为规范和需求分析,适合于系统建模;它从软件工程的角度对开发流程进行规范,但很少考虑高可靠性嵌入式软件开发的特点,软件工程自动化程度较低,生成的只是一个代码框架,需要对它生成的代码做大量的修改和补充之后才能使用。

2)Simulink:面向仿真,仿真功能比较强大,支持对硬件和外界环境的模拟,可以进行全局的仿真和调试;但是由于底层缺乏数学理论的支撑,无法保证模型作为需求描述的无歧义性;从生成代码的角度来说,它生成的代码也需要做大量的修改和补充之后才能使用,而这种做法在增加工作量的同时,和基于UML的设计工具一样,带来了一个潜在的很复杂的开发流程管理和质量认证上的问题。

3)SCADE(Safety—Critical Application Development Environment)是一套基于模型的、面向高可靠性软件而设计的开发环境,具有严格的理论基础支持,充分考虑了高可靠性软件开发中的质量、安全特性、开发周期、认证等各方面的问题,国内外高安全性嵌入式领域应用经验表明,它非常适合用于开发高可靠性软件。

3 基于SCADE的软件设计方法

3.1 SCADE简介

SCADE (Safety—Critical Application Development Environment)是一套高安全性嵌入式软件开发环境,运用Correct By Construction的设计理念,能够从精确的需求规范自动生成嵌入式源代码,实现了开发流程的高度自动化。它涵盖了嵌入式软件开发的整个流程:需求管理、需求建模、模型检查、模型仿真、模型覆盖率分析、形式验证、代码生成、文档生成等等。SCADE适用于不同软、硬件平台,是一套通用的嵌入式软件开发平台。

3.2 基于SCADE软件设计方法

在现有的瀑布式的开发流程中,软件需求、概要设计、详细设计都是为了编码;单元测试、集成测试、系统测试都是为了验证代码的正确性,代码是整个工作的重心。使用了SCADE之后,整个设计流程是围绕着SCADE模型展开的:概要设计和详细设计的过程其实都是用SCADE建模的过程,并且提供了一系列验证手段保证了模型的正确性和安全性,SC ADE模型成为整个开发工作的核心,工作的重心从原先的代码提高到了模型的级别。

1)设计过程

SCADE提供了两套机制(数据流图和安全状态机)来进行图形化建模。数据流图适合于连续系统图建模,安全状态机适用于离散系统的建模。SCADE将这两套建模机制很好

地融合在一起,能够适用于不同类型系统尤其是混合系统的开发。

这两套机制都建立在严格的数学模型基础之上,具有严格的数学语义,它们保证了设计模型的精确性、完整性、一致性和无二义性。由于该描述是形式化的,因此建模的过程也是描述需求的过程,得到的是明确无歧义的软件需求。

2)设计过程的验证

SCADE提供了一系列的验证机制,来确保软件需求模型描述的正确性和安全性:

①模型静态检查

建立好了需求模型之后,可以对模型进行自动检查,帮助找出模型中的数据流不匹配、死循环等一系列语义和方法学方面的错误,并提供超链接进行错误定位。

②模拟仿真

模型通过静态检查之后,可以通过SCADE提供的模型仿真器,对整个系统或是系统中任意一个模块进行模拟仿真。该仿真器是一套功能强大的可视化的调试环境,可以设置断言、断点;可以检查输入数据、局部变量和输出数据的值;可以用文本或图表的形式记录仿真过程中各输入输出的值;可以保存和回放仿真的场景 (scenario)。最重要的一点也是区别其他基于模型开发工具的最重要的一点:SCADE保证仿真结果和生成代码运行的结果是一致的。

③覆盖率分析

模拟仿真是对模型进行功能测试的过程。为了评估模型测试的完备性,SCADE提供了基于模型的覆盖率分析。根据既定的或者自定义的覆盖率准则,分析仿真场景在模型中的覆盖程度,并能指明未覆盖的路径;随后用户对覆盖率进行分析,找出测试用例的不足、需求设计错误、死代码等问题,用于指导设计模型改进、需求改进等。最后,SCADE还能自动生成覆盖率分析的报告。

④形式验证

模拟仿真能够测试系统模型是否实现了预期功能,但并不能保证系统在所有情况下都满足安全特征。由于测试的局限性,难以通过测试来验证安全特性,对于复杂的逻辑控制系统来说尤是如此。SCADE所提供的形式验证弥补了这一局限性。

3)自动生成代码

经过模拟仿真、覆盖率分析和形式验证,保证了模型的正晚性和安全性以后,可以利用SCADE内置的代码生成器KCG自动生成嵌入式产品代码。它生成的代码满足一系列的安

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top