Miracor省去了运行时错误,并缩短测试时间为III类医疗器械软件

挑战

确保第三类医疗装置的安全性用于改善结果为支架的收件人

解决方案

使用Polyspace代码证明者证明如果没有在软件运行时错误,引导代码审查的,补充功能测试,并支持验证过程的监管机构批准金宝app

结果

  • 未使用和错误的代码标识
  • 建立监管批准的验证流程
  • 代码审查效率提高

从开发人员的角度来看,Polyspace代码验证器的主要优点是更高的质量和代码的正确性。Polyspace Code Prover帮助Miracor向包括FDA在内的监管机构证明产品的质量和正确性,以证明我们的设备是安全的。”

拉尔斯Schiemanck,Miracor医疗系统

美乐公司的PiCSO脉冲系统。


支架植入术可恢复急性冠脉综合征患者的冠脉血流。然而,高达40%的支架病人仍然有限制的血液流动,这可能导致更大的梗死,左心室功能差,并最终心力衰竭。

的PiCSO®脉冲系统是由Miracor医疗系统公司开发的一种创新疗法,它可以改善微循环并减少支架置入后的梗死面积。PiCSO(压力控制的间歇性冠状静脉窦阻塞)系统将一个小球囊插入冠状静脉窦,使之膨胀,暂时阻断血液流出,提高冠状静脉压力,迫使血液回流到受影响的组织。PiCSO控制软件监测压力,并与患者的心电图同步气球充气和充气。

作为第三类医疗器械,该系统的pIC 50必须坚持以患者安全最严格的标准。为了帮助确保其软件的安全性,Miracor使用Polyspace代码证明器™检测C代码,引导代码审查的错误,并补充功能测试的做法。

“Polyspace代码证明方给我们的安全层,增加了我们的信心,我们的代码是从运行时没有错误,并且使我们能够加快我们的代码审查和测试,”拉尔斯Schiemanck,在Miracor首席技术官说。

挑战

该脉冲的pIC 50系统具有管理气球的压力两个独立的微控制器。一个作为气动系统的主控制器,另一个作为安全备用。两个控制器的嵌入式代码由手C.书面

工程团队已经建立了代码审查和单元测试,以验证该代码,但是认识到,单独的单元测试无法覆盖投入,执行路径和变量值所有可能的组合。他们想用流通式的控制和数据流为基础的语义分析来证明软件组件的正确性和检测除数为零,缓冲区溢出和其他运行时错误。

Miracor需要遵守日益严格的III类医疗设备的监管要求。该公司希望在欧洲获得CE认证,这需要获得公告机构的认证,并在美国获得FDA的上市前批准。为获得这些监管机构的批准,Miracor需要证明硬件和软件的安全性。从历史上看,软件比硬件面临更大的认证挑战,因为它通常更难于让审核人员理解。Miracor希望使用静态分析和形式化的方法来简化认证过程。

解决方案

Miracor工程师使用Polyspace代码证明者证明不存在运行时错误,确定需要进一步审查的代码区,并增加其在软件的总体质量的信心。

在参加了由MathWorks training Services提供的为期两天的培训后,Miracor工程师使用Polyspace code Prover分析了他们的遗留代码。

Polyspace代码证明器颜色编码每个C运行时显示其状态:绿色代码免费运行时错误的证明,红色为已知的每一个执行操作的时间,灰色无法访问的(死)的代码是错误代码,橙色操作这可能是故障在一定条件下。

团队使用这些结果来改进代码。他们删除了无法访问的代码,减少了微控制器软件的占用,并纠正了所有被证明有错误的操作,包括在标准操作中不活跃的部分代码中的一个零除错误。

在随后的代码审查,团队集中在橙色高亮显示的操作,知道剩下的绿色代码已经被证明是自由运行时错误。

由于PiCSO系统中同时运行多个嵌入式微控制器,Miracor团队必须注意竞态条件和其他并发问题。在配置Polyspace代码验证器时,团队确定了可能出现这些情况的几个关键代码区域。

团队制定了一个政策,在每次计划的代码评审之前,在项目的大约25000行遗留代码和新开发的代码上运行Polyspace代码验证器,并使用结果来帮助指导每次评审过程。

在英国,Miracor的PiCSO脉冲系统已经被用于治疗病人,爱尔兰和匈牙利。临床研究发现,应用该系统治疗后,梗死面积明显缩小,心功能改善。该公司正在寻求FDA的上市前批准。

结果

  • 未使用和错误的代码标识。“Polyspace代码证明方结果显示死代码以及除以零和缓冲我们的遗留代码流的错误,”在Miracor软件开发项目经理克里斯托夫·布洛赫说。“虽然这些错误不会影响患者安全,检测他们给了我们在软件的质量更有信心。”
  • 建立监管批准的验证流程。Schiemanck说:“当我们向FDA申请上市前的批准状态时,Polyspace Code Prover是我们努力证明我们已经尽了最大努力来证明代码正确性和确保代码质量的核心。”“对我们来说,证明我们的技术已经通过Polyspace代码验证器和其他最先进的工具进行了验证是必须的。”
  • 代码审查的效率提高。“随着Polyspace代码证明者,我们看到的部分代码已被证明安全,所以我们知道我们不会有任何运行时错误或计算错误,” Schiemanck说。“因此,我们可以回顾更少的代码,因为我们专注于可能出现的问题可能仍然存在的部分。”