|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
医疗器械软件标准及测试. z+ q6 O; G, G8 o' \3 L
关键词: 医疗器械0 D# { U) N: c+ O% c
软件标准& z( {1 u9 X6 q9 m: T0 ?
测试! c w/ W( f" ^, E; C% _9 u2 K. n1 E4 U
& \; j7 E$ y% a0 \) Z一
, m3 J9 C/ k9 C0 @( C/ R! ^概述
% g: `9 N! F3 W随着计算机技术的发展,越来越多的医用电气设备中使用了计算机软件技术,其安全性是非常重要的,而它的复杂性超过了那些单纯的治疗和/或诊断医用电气设备。同时,越来越多的软件被用于在医疗监视下对患者进行诊断、治疗或监护。医疗器械的许多重要功能,越来越多地依靠软件进行控制,因此,医疗器械中软件错误导致的后果可能非常严重。而软件产品可能在六个月内就已经过时了。从而,在医疗器械生产企业和管理部门之间存在着矛盾: 生产企业必须尽快使新的含软件器械上市,但同时,管理部门必须保护公众免受与软件相关的器械故障造成的危害。' u; ^2 X$ L! k- W% w$ V. V
( R. F' l! r! b: \, X C. } 2003年开始,我国国家食品药品监督管理局将相关软件纳入了医疗器械管理。软件质量已成为大家共同关注的焦点。由于我国目前医疗器械管理的技术基础主要是产品的第三方测试,因此,软件测试是否充分、有效,直接影响到软件产品的质量,也影响着是否能够对医疗器械软件进行有效管理。但是,由于软件产品的特殊性,我国至今尚未形成医疗器械软件产品测试的国家标准和行业标准。本文通过对美国FDA的医疗器械软件管理、软件工程以及软件测试情况的介绍,希望能为我国加强医疗器械软件的管理、尽快制定技术标准提供参考。) I2 h( a; l2 A" E: J% ?
& r7 t Q9 q: T二% f# I" r, Z& O/ V. ?, c4 X8 t8 h" `
软件的特殊性, |) w( R1 ~4 ]) L: K2 W
! R5 [4 A% O! i8 W
5 N8 r* x7 K) T
美国FDA对于作为医疗器械组件、部件或附件的软件、本身就是医疗器械的软件(例如模拟重建血管系统软件)、加工制造医疗器械时使用的软件(例如加工器械时使用的逻辑控制程序)以及器械制造商在质控系统中所使用的软件(例如记录和保存器械历史记录的软件)都根据其特定的使用要求进行验证。( L5 q, Q/ p% ]3 P0 k
* U- @' ?. n. z4 ^& B- B
9 \% r3 J2 [& w3 W软件与硬件的特性非常不同。其中的一个不同点就是几乎所有的软件问题都是在软件开发过程中的错误造成的。软件错误在本质上是系统性的,而不是随机的。软件本身不会因为磨损而导致运行失败,从安装开始,就包含了那些导致失败的所有错误。软件的质量问题事实上是设计问题,一般来说不是生产问题。
! u7 D) w! ?2 m( Z0 Y# T) H' k0 o) q. e- d L
/ o5 y1 F1 _' H8 L软件与硬件的第二个不同点就是软件的复杂性。由于软件对于不同的输入执行不同的语句(路径),因此,即使对一个简单程序,测试其全部可能的执行路径都是不切合实际的。所以,几乎不可能确定该软件是否完全没有错误。故此,软件的质量不能够单单通过测试衡量。
$ @+ y3 j( W& h/ \* Z
, E# g, [. z1 T @- z2 U
2 n3 \8 I/ g1 @" p0 V4 T软件和硬件的第三个不同之处在于软件的灵活性。在开发周期的后继阶段,软件的改变会更容易一些。这提供了更多的灵活性,使得人们可以更好地根据硬件的要求以及开发中出现的其他问题的要求进行工作。由于软件可以比较容易地进行更改,可能造成人们误认为软件的错误也非常容易改正。事实上,对软件的某个部分进行改动,即使是对那些看起来很不合理的部分进行改动,都可能导致其他部分的意外错误。美国FDA对1992至1998年之间认证的3140个医疗器械软件系统进行了回顾性分析,在这3140例中,有242例(7.7%)软件系统失效,而其中192例(79%)是由于对软件最初版本进行修改后导致软件系统出现缺陷并造成软件系统失效的。* f5 ~+ W. ~8 E3 E
. r' O4 q& r8 |7 S M, h, \* ]
: F) O& ?% E$ G8 E
软件组成虽然不象硬件组成那样有一定的标准和可替代品,但在其开发中,开发者常常使用某些单元开发工具和技术。目标定项方法和现有软件单元的使用将会加快软件开发速度,降低软件开发费用。然而,基本单元需要在集成过程中更加小心谨慎,在集成之前,要全面定义、扩展可重复应用软件代码,全面理解现有单元的作用。
9 }% Y# F; q) o0 R- E* [; a# u0 }! f: D& J* l
( s/ W: ]; ]# g+ L* X' O
因此,设计合理有效的软件、编程实现它,并确保进行的改动是完全且正确的,这需要一个系统性的方法。这就是软件工程。软件的测试已经超越了对最终产品的传统测试和评价,还包括了对其生产过程的要求,在风险管理、风险防范和开发生命周期的基础上,从软件工程角度对软件进行管理、测试和评价。 |
|