用户故事

国家航空航天实验室证明了基于模型设计的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开发了SARAS,一种14座的多用途轻型运输机。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 Level 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和Stateflow模型生成测试用例,并在运行模拟以执行测试时执行模型覆盖分析。

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

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

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

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

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

结果

  • 代码分析和设计时间缩短了一半.首席科学家Manju Nanda说:“对于SWS试点项目,我们收集了与传统方法进行比较的指标。”“除了功能升级所需的工作量减少了75%之外,基于模型的设计还减少了48%的代码分析时间和50%的设计时间,使我们能够用更少的人做更多的事情。”

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

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