用户故事

国家航天实验室证明了基于模型的设计对DO-178B飞行软件开发的好处

挑战

加快DO-178B A级认证飞行软件的开发

解决方案

利用Simulink和Embedded Coder完成失速预警系统试点项目,量化开发效率的提高,并在未来金宝app的DO-178项目中采用基于模型的设计

结果

  • 代码分析和设计时间减半
  • 建立集成的工作流
  • 生成一致的、高质量的代码

“金宝appSimulink和基于模型的设计减少了升级功能、代码分析时间和安全关键嵌入式系统的设计时间所需的努力。Simulink与DO-178过程的兼容性金宝app使我们有信心在即将到来的DO-178项目中使用基于模型的设计。”

Manju Nanda,国家航空航天实验室

国家航空航天实验室是印度民用领域唯一的政府航空航天研发实验室。CSIR-NAL由科学和工业研究理事会成立,有三重任务:开发科学含量高的航天技术,设计和制造小型和中型民用飞机,支持所有国家航天计划。金宝app

作为这项任务的一部分,CSIR-NAL开发了一种14座多用途轻型运输机SARAS。SARAS配备了最先进的失速警告系统和飞机界面计算机(SWS/AIC),当飞机有失速危险时向飞行员发出警报。最近,CSIR-NAL的工程师完成了一个SWS/AIC试点项目,在该项目中,他们量化了基于模型的设计相对于传统的DO-178B a级软件开发方法的优势。在其他好处中,他们发现MATLAB基于模型的设计®和仿真软金宝app件®将功能升级所需的工作量减少了75%。

“在过去,功能升级需要手动迭代设计更改、代码修改、重新测试和报告生成,”CSIR-NAL的高级首席科学家J. Jayanthi说。“使用基于模型的设计,升级变得简单,因为需求、模型、代码、测试和报告之间的链接已经建立。我们只需要在模型级别上做一些更改,然后一切就都就位了,包括生成的代码。”

挑战

CSIR-NAL最初通过c语言手工编码算法来实现SARAS SWS/AIC系统。尽管该软件最终通过了DO-178B A级认证,但工作花费的时间比计划的要长。该团队将延迟归因于需求、实现的代码和为验证而执行的测试之间的差距。为了弥补这些差距,团队必须执行大量的手工活动,包括追溯代码到需求,执行覆盖率分析,以及生成认证所需的文档。

CSIR-NAL工程师试图在一个工作流中自动化这些手工活动,该工作流包含了他们现有的需求管理和测试工具。

解决方案

CSIR-NAL的工程师使用Simulink和statflow完成了SWS试点项目金宝app®和嵌入式编码器®

他们在Simulink中设计了SWS,使用stat金宝appflow建模决策逻辑。

在开发模型时,他们遵循了MathWorks汽车咨询委员会(MAAB)和DO-178B高完整性建模标准。他们使用Simulink Check™中的模型标准检查来确保符合标准。金宝app

CSIR-NAL工程师使用Simulink De金宝appsign Verifier™从Simulink和statflow模型生成测试用例,并在运行模拟执行测试时执行模型覆盖分析。

该团队使用Embedded Coder从他们的模型生成了大约5000行C代码。对于每个SWS子系统,他们将生成的代码与他们为初始实现手写的代码进行比较。

通过Sim金宝appulink Requirements,工程师将SWS模型的元素与微软的需求联系起来®词。生成的代码包括作为注释的需求标签,使它们能够跟踪需求到模型和最终代码。

该团队利用了Simulink和LDRA工具套件之间的集成来简化代码覆盖分析和其他软件级测试活动,并建立金宝app模型和测试用例之间的可跟踪性。

最后,团队使用Simulink Report 金宝appGenerator™记录认证学分所需的模型和代码覆盖结果。

基于试点项目的成功,CSIR-NAL计划在未来的DO-178B和DO-178C A级项目中使用基于模型的设计。

结果

  • 代码分析和设计时间减半.“对于SWS试点项目,我们收集了与传统方法比较的指标,”首席科学家Manju Nanda说。“通过基于模型的设计,我们不仅可以减少75%的功能升级工作,还可以减少48%的代码分析时间和50%的设计时间,这使得我们可以用更少的人做更多的事情。”

  • 建立集成的工作流.“通过基于模型的设计,我们有一个定义良好的DO-178工作流,它与我们现有的工具集成在一起,”Jayanthi说。“我们可以用Word或Telelogic追踪需求®®到Si金宝appmulink模型、生成的代码和LDRA中的代码级测试。我们可以使用Simulink 金宝appReport Generator和DO Qualification Kit进行DO-178认证。”

  • 生成一致的、高质量的代码.“用Embedded Coder生成的代码与我们的手写代码一样好,而且通常更紧凑,”Jayanthi说。“我们可以追溯代码到我们的模型和需求,因为它是从我们的模型中生成的,它比手写代码更一致,也更容易维护。”