一、医疗器械软件
包括本身即为医疗器械的软件或者医疗器械内含的软件,前者即医疗器械独立软件(简称独立软件),后者即医疗器械软件组件(简称软件组件)
1.独立软件(SaMD)是指具有一个或多个医疗目的/用途,无需医疗器械硬件即可完成自身预期用途,运行于通用计算平台的软件[1]。通用计算平台满足信息技术设备安全要求(含电磁兼容),符合GB 4943.1、GB/T 9254等标准。独立软件可分为通用型独立软件和专用型独立软件,前者通常基于通用数据接口与多个医疗器械联合使用,如医学图像处理软件、患者监护软件;后者基于通用、专用数据接口与特定医疗器械联合使用,可视为医疗器械附件,如动态心电数据分析软件、眼科显微镜图像处理软件。
2.软件组件(SiMD)是指具有一个或多个医疗目的/用途,控制/驱动医疗器械硬件或运行于医用计算平台的软件。医用计算平台满足医用电气设备(GB 9706系列)、实验室用电气设备(GB 4793系列)或有源植入式医疗器械(GB 16174系列)等安全要求(含电磁兼容);医用计算平台可与通用计算平台联合使用构成系统,整体视为医用计算平台.软件组件可分为内嵌型软件组件和外控型软件组件,前者运行于医用计算平台,控制/驱动医疗器械硬件,如心电图机、脑电图机所含嵌入式软件(即固件);后者运行于通用计算平台,控制/驱动医疗器械硬件,如CT、MRI图像采集工作站软件.
二、系统软件、应用软件、中间件、支持软件
1.系统软件。系统软件是指设计用于保障计算机系统正常运行的软件,如操作系统软件、虚拟机软件
2.应用软件。应用软件是指设计用于实现计算机用户特定需求的软件,如浏览器软件、数据库软件、安全软件
3.中间件。中间件介于系统软件和应用软件之间,依赖于系统软件的支持,同时又为应用软件提供支持,如分布式计算平台软件
4.支持软件。支持软件是指设计用于开发、测试其他软件的软件,如软件开发工具、软件测试工具
医疗器械软件属于应用软件,其正常运行通常需要基于系统软件,或同时需要应用软件(含其他医疗器械软件)、中间件、支持软件的支持。
三、软件生存周期
软件生存周期(又称软件生命周期)是指软件系统从概念定义至停止使用的时间周期,包括软件开发策划、软件需求分析、软件设计、软件编码、软件测试、软件发布、软件部署、软件维护、软件停运等阶段。其中,从软件需求分析到软件发布的时间周期称为软件开发生存周期。
四、软件测试、软件验证、软件确认
从测试依据角度可分为黑盒测试和白盒测试。
其中,黑盒测试是指基于输入与输出的测试,
白盒测试是指基于源代码的测试,
黑盒测试与白盒测试可组合使用,即灰盒测试。
白盒测试根据是否运行源代码又可分为静态、动态分析/测试。
从测试进程角度可分为单元测试、集成测试、系统测试。
单元测试是对软件单元进行测试,通常采用白盒测试
集成测试是对软件项(由若干软件单元组成,即软件模块)进行测试,白盒测试、黑盒测试、灰盒测试相结合
系统测试是对软件系统(由若干软件项组成)进行测试,通常采用黑盒测试
其从测试内容角度又可分为功能测试、性能测试、并发测试、压力测试、接口测试、内存测试、兼容性测试、用户界面测试、安装卸载测试、安全测试等。
从测试实施方角度可分为内部测试、用户测试、第三方测试。
内部测试是指注册申请人实施的测试,包括单元测试、集成测试、系统测试,白盒测试、黑盒测试、灰盒测试相结合
用户测试是指预期用户在真实或模拟使用场景对软件系统进行测试,采用黑盒测试
第三方测试是指第三方机构对软件系统进行测试,通常采用黑盒测试
回归测试是指用于确定软件更新没有产生不良影响且未引入风险不可接受新缺陷的软件测试。回归测试需根据软件更新的类型、内容和程度,开展与之相适宜的单元测试、集成测试、系统测试、用户测试、第三方测试等测试活动
软件验证是指通过提供客观证据认定软件开发、软件维护某一阶段的输出满足输入要求。软件验证包括源代码审核、静态和动态分析/测试、单元测试、集成测试、系统测试、设计评审等系列活动,是软件确认的基础
软件确认是指通过提供客观证据认定软件满足用户需求和预期用途。软件确认是基于过程控制的设计确认,包括用户测试、临床评价、设计评审等系列活动,即要保证软件满足用户需求和预期用途,又要确保软件已知剩余缺陷的风险均可接受。