使用基于模型的设计来开发和验证安全关键系统软件_第1页
使用基于模型的设计来开发和验证安全关键系统软件_第2页
使用基于模型的设计来开发和验证安全关键系统软件_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    使用基于模型的设计来开发和验证安全关键系统软件    使用基于模型的设计来开发和验证安全关键系统软件    类别:嵌入式系统                      &nbsp本文描述了高度完整性代码的开发和测试技术,并显示如何在模型级上应用和自动化来

2、提高嵌入系统的质量同时缩短开发周期。    &nbsp开发用于航空、汽车、轨道交通和其他行业中的安全关键系统软件的要求相当严格,开发者通常使用自我保护的编程技术来确保系统具有容错能力,并使软件能在出现未预料到的情况下继续工作。因此,首先实现可靠的验证和确认策略来减少故障进入系统的可能性同样重要。    &nbsp这个额外步骤要求需要增加开发成本。行业报告显示,用在安全关键系统的验证和确认过程的成本和工作常常超过开发整个系统的一半,基于手工编程和纸上规范的传统方法的这个问题更严重。使用Ada、C或Fortran开发模型不

3、仅代码冗长而且代码可能有错误,在不同设计阶段重新利用模型时可能产生不经意的改变而导致不正确的结果。类似地,在团队间频繁用于交流的需求、规范、测试和其它内容的文档可能引起歧义和误解。    &nbsp通过使用基于模型的设计和集成开发环境,如MathWorks公司的Simulink产品系列,工程师能使开发和验证自动化,减少费用和降低错误。    &nbsp在基于模型的设计中,从通过建模和仿真来获得需求到设计实现和测试,系统模型是开发过程的核心。模型是在整个开发过程中不断细化的可执行规范,与写在纸上的规范相比,可执行的规范能

4、使系统工程师更深入了解他们策略的动态表现。在开始编码之前的很长时间就对模型进行测试,确保规范的完整性和无歧义。自动代码生成避免了手工拼写错误和对设计的误解,同时自动化的验证和确认让测试工程师开发完整的、基于需求并可在自动产生的代码上重用的测试用例(test case)。    &nbsp建模和仿真    &nbsp开发工作从由结构框图和状态机组成的控制算法模型开始,每一个框图和状态机都具有特别的实时执行特性。算法模型结合周边部件,如传感器、执行器(actuator)、机械设备、电子单元和其它与控制算法有相互影响的物理元

5、件,产生一个系统模型。    &nbsp例如,显示在图1中的车辆故障检测、隔离和恢复(FDIR)应用的系统模型,包括了FDIR逻辑模型、工作模式逻辑、控制规则、执行器模型、被控对象(车辆动力学和大气作用)、信号调理和插入故障的方法。一个设置故障的图形界面让开发者了解系统正常和故障下的行为。    &nbsp模型风格的指导方针    &nbsp模型风格指导方针使从系统规范到嵌入代码产生的转化变得简单有效。对于编码标准,生产单位通常建立他们自己的模型指导方针,准备用来产生嵌入代码模型的

6、步骤。    &nbsp在建立这些标准时,回顾一下已发布的模型和代码的指导方针和标准很有用。在一些组织,如MathWorks汽车咨询部(MAAB)和发动机工业软件可靠性联合会(MISRA),已存在着指导方针,这些方针一般集中在安全性、一致性和简洁性。                 &nbsp图1:故障检测、隔离和恢复模型。   &nbspMAAB建立于1988年

7、,开始是协调包括福特、Daimler Benz(现在DaimlerChrysler)和丰田客户间产品特征要求,现在MAAB把对象扩展到世界范围,包括大多数主要的OEM厂商和供应商。MAAB的一个重大成果就是建立了一系列公开、可用的建模风格指导方针。其中一条MAAB规则规定了控制器模型必须只能使用离散模块,因为连续模块不能更贴切地表示控制器的实现方式而不允许使用。    &nbspMISRA的在车辆中用C语言编制软件的指导方针(MISRA-C),于1998年4月发布,2004年十月更新,提供了安全相关的汽车嵌入系统的C语言编程指导。使用C语言开发电控单元软件

8、的汽车工业开发者创建了其中很大的部分。    &nbsp虽然MISRA-C不是为自动代码生成而定制的,其规则关注于C语言编译器的可移植性,对于手工开发和自动产生的代码是一致的。下面就是一个规则例子:    &nbspMISRA规则11(必要的):内部和外部标识符应该不超过31个有效字符。此外,应该检查编译器/连接器来确保31个字符串有意义,并支持外部标识符的大小写敏感特性。这个规则很重要,可以避免有长名字的标识符间的名字冲突。这个规则已可使代码更有可移植性,因为大多数编译器和连接器支持至少31个有效字符。  

9、  &nbsp在自动产生的代码中,标识符在模型中标明。尽管MISRA-C给出的是编码风格指导方针,但它可以帮助在建模风格指导方针中包含相应的规则,因为模型是代码发生器的输入。MathWorks为它的嵌入代码发生器-Real-Time Workshop Embedded Coder提供一个MISRA-C分析包。另外,最近MISRA建立了一个工作组来检查自动代码生成。    &nbsp模型检查器    &nbsp明确的指导方针和标准使软件开发者编写可以系统地检查对这些方针的符合性的脚本,所以建模

10、环境必须提供每一个在设计中使用的图形特征和参数相对应的API。然后它直接用来开发系统检查规则,如限制标识符名字长度的工具。    &nbsp在Simulink中的Model Advisor识别模型中那些阻止嵌入系统开发和限制代码效率的部分。这个工具帮助开发者准备一个用来生成代码的模型,通过分析模型或模块级别上的配置,给出在每个领域查找结果并提出改进建议的报告。在设计周期早期它特别有用。    &nbsp可追溯性    &nbsp许多认证标准要求从设计到实现的双向可追溯性。因为他们通

11、常还要求测试用例是基于需求的,因此有必要确保测试用例能跟踪到需求。许多开发环境包括了客户知道的文字需求和开发者了解的详细设计模型。客户的需求可能通过微软的Word或Excel,或者在数据库或需求管理工具如Telelogic DOORS中,用简单文字提供。    &nbsp在可追溯性路径的下一步是显示代码可追溯到模型(图2),对安全关键系统来说这特别重要。不像快速原型代码发生器,嵌入式代码发生工具包中特别强调代码简洁性。这样的一个例子是产生的HTML链接到生成的C代码。当有链接的注释被点击,产生代码的源模块在模型中会高亮显示。   

12、60;&nbsp验证和确认    &nbsp验证和确认是高度完整性系统主要关注的问题,在设计和集成的每一阶段需对系统的应用进行检查、分析和测试工作,它贯穿在整个开发过程。    &nbspCMMI(能力成熟度集成模型)定义的验证和确认为:验证是确认产品正确反映了规范需求,即验证是确保你正确地实现产品;确认是确认提供的产品完全满足它原想要的用途,即确认是确保你实现了正确的产品。    &nbsp基于模型的设计提供了许多验证选项,包括仿真、快速原型建立和硬件回路测试(hardw

13、are-in-the-loop testing)。近来出现了针对其它的验证活动的功能,如软件在回路仿真和处理器在回路仿真测试。    &nbsp安全关键系统的测试必须基于需求,在测试中所有的代码结构必须得到检查。DO-178B Level A软件要求执行MC/DC(Modified Decision/Condition Coverage)等级的覆盖度。该等级确保在决策中的每一个条件能独立地影响决策的结果,没有达到要求的结构覆盖等级可能表示在需求、设计或测试用例中存在错误。    &nbsp对安全关键系统模型的测试要求有

14、正式的方法来建立和执行测试用例。特别的新模块,如信号建立和断言模块,能实现这类正式的测试。当测试已经确认所有的需求得到满足和每一要求的覆盖等级在模型上完全检查过后,模型可以用来产生代码并在代码上重新运行那些测试。    &nbsp软件在回路(SIL)测试涉及到控制器的嵌入代码在一个指令级仿真器或调试器执行,并和被控对象模型(plant model)在建模环境里非实时运行。运行控制器的产品代码的处理器在回路仿真(PIL)测试和SIL相似,但在PIL测试中,工程师使用真实的I/O,通过CAN或串口器件来交换运行在处理器上的产品代码和运行在建模环境上被控对象模型

15、间的数据。SIL和PIL是非常适合部件测试的非实时运行条件。                  &nbsp图2:模型需求和代码可追溯性。   &nbsp通常在嵌入系统实验室最后的验证阶段,硬件在回路仿真(HIL)测试支持实时测试和系统测试。被控对象产生的代码运行在高度确定的硬实时(hard real time)计算机上。通过这个方法,在开发前期使用的被控对象在系统测试中重新使用。复杂的信号调理和功率电子元件用来激励和接收嵌入系统地输入(传感器)和输出(执行器)。    &nbsp设计文档    &nbsp在对安全关键系统的认证阶段,文档是一个关键的、需要核查的工作部分。对于基于模型的设计,工程师指定要求的各类文档的模板。有了正确模板,软件设计规范,包括设计框图、需求跟踪表和文字描述就能自

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论