系统软件是指设计用于保障计算机系统正常运行的软件,如操作系统软件、虚拟机软件
应用软件是指设计用于实现计算机用户特定需求的软件,如浏览器软件、数据库软件、安全软件
中间件介于系统软件和应用软件之间,依赖于系统软件的支持,同时又为应用软件提供支持
支持软件是指设计用于开发、测试其他软件的软件,如软件开发工具、软件测试工具
软件生存周期(又称软件生命周期)是指软件系统从概念定义至停止使用的时间周期,包括软件开发策划、软件需求分析、软件设计、软件编码、软件测试、软件发布、软件部署、软件维护、软件停运等阶段。
其中,从软件需求分析到软件发布的时间周期称为软件开发生存周期。
从测试依据角度可分为黑盒测试和白盒测试。
从测试进程角度可分为单元测试、集成测试、系统测试。
单元测试是对软件单元进行测试,通常采用白盒测试;
集成测试是对软件项(由若干软件单元组成,即软件模块)进行测试,白盒测试、黑盒测试、灰盒测试相结合;
系统测试是对软件系统(由若干软件项组成)进行测试,通常采用黑盒测试,其从测试内容角度又可分为功能测试、性能测试、并发测试、压力测试、接口测试、内存测试、兼容性测试、用户界面测试、安装卸载测试、安全测试等。
从测试实施方角度可分为内部测试、用户测试、第三方测试。
其中,内部测试是指注册申请人实施的测试,包括单元测试、集成测试、系统测试,白盒测试、黑盒测试、灰盒测试相结合;
用户测试是指预期用户在真实或模拟使用场景对软件系统进行测试,采用黑盒测试;
第三方测试是指第三方机构对软件系统进行测试,通常采用黑盒测试。
回归测试是指用于确定软件更新没有产生不良影响且未引入风险不可接受新缺陷的软件测试。回归测试需根据软件更新的类型、内容和程度,开展与之相适宜的单元测试、集成测试、系统测试、用户测试、第三方测试等测试活动。
(设计评审、代码审核、软件测试)
软件验证是指通过提供客观证据认定软件开发、软件维护某一阶段的输出满足输入要求。软件验证包括源代码审核、静态和动态分析/测试、单元测试、集成测试、系统测试、设计评审等系列活动,是软件确认的基础。
(用户测试、临床评价、设计评审)
软件确认是指通过提供客观证据认定软件满足用户需求和预期用途。软件确认是基于过程控制的设计确认,包括用户测试、临床评价、设计评审等系列活动,即要保证软件满足用户需求和预期用途,又要确保软件已知剩余缺陷的风险均可接受。
软件可追溯性分析作为软件验证、软件确认的重要活动之一,是指追踪软件需求、软件设计、源代码、软件测试、软件风险管理之间的关系,分析已识别关系的正确性、一致性、完整性、准确性。
从更新结果角度可分为重大更新和轻微更新,重大更新是指影响到医疗器械安全性或有效性的软件更新,反之即为轻微更新。
(1)重大软件更新:影响到医疗器械安全性或有效性的增强类更新,即重大增强类软件更新,应申请变更注册。
完善型软件更新:若影响到用户决策(含决策能力、决策结果、决策流程、用户行动)或人员(含患者、用户、其他相关人员)安全则属于重大软件更新
适应型软件更新:若软件运行环境跨越互不兼容的计算平台(含硬件配置、外部软件环境、必备软件、网络条件)则属于重大软件更新
如预期运行的操作系统软件由Windows变为iOS,更换浏览器内核、必备软件,网络条件由局域网变为广域网,计算平台由通用计算平台变为医用计算平台等;
(2)轻微软件更新:不影响医疗器械安全性与有效性的增强类更新、纠正类更新,包括轻微增强类软件更新、纠正类软件更新,通过质量管理体系进行控制,无需申请变更注册,待下次变更注册时提交相应注册申报资料。
软件版本可分为软件发布版本和软件完整版本[1],其中软件发布版本仅体现重大软件更新
软件发布版本发生改变表示软件发生重大更新,应申请变更注册,软件完整版本发生改变但软件发布版本未变表示软件仅发生轻微更新,此时通过质量管理体系进行控制,无需申请变更注册。
软件版本命名规则为X.Y.Z.B,其中X表示重大增强类软件更新,Y表示轻微增强类软件更新,Z表示纠正类软件更新,B表示软件构建,则软件发布版本为X,软件完整版本为X.Y.Z.B,此时X改变应申请变更注册,而Y、Z、B改变但X未变则无需申请变更注册。
从用户角度出发,软件算法是内在不可见的,软件功能和软件用途是外在可见的,考虑到软件功能是软件算法、软件用途的联系纽带,故以软件功能作为软件安全有效性评价主线。例如,区域生长算法可实现图像分割功能,图像分割功能可用于病变轮廓标识。
软件功能从不同角度出发有不同分类方法。从重要性角度可分为核心功能和非核心功能
核心功能是指软件在预期使用场景完成预期用途所必需的功能
从技术特征角度大体上可分为处理功能、控制功能、安全功能
处理功能是指加工医疗器械数据(即医疗器械产生的用于医疗用途的客观数据)或基于模型计算(如辐射剂量模型、药代模型)的功能
处理功能从数据流角度又可分为前处理功能和后处理功能
前处理功能指采集人体解剖、生理信息生成医疗器械数据过程的处理功能,如滤波、降噪、校正、重建等功能;
后处理功能是指利用医疗器械数据生成诊疗信息或进行医疗干预过程的处理功能,如平移、缩放、旋转、滤波、测量、分割、融合、三维重建、治疗计划制定、药代模型计算、基因测序、分析等功能
后处理功能从复杂性角度又可分为简单功能和复杂功能
控制功能是指控制/驱动医疗器械硬件运行的功能
安全功能是指保证医疗器械安全性的功能
独立软件的功能均为后处理功能,
软件组件的功能以控制功能、前处理功能为主,兼具后处理功能。
从监管范围角度可分为医疗器械功能和非医疗器械功能,其中医疗器械功能是指可用作医疗器械界定依据的软件功能,如医学图像、生理参数、体外诊断等数据的测量、处理、模型计算、分析等功能;反之即为非医疗器械功能,如收费计价、行政办公等功能,不属于监管对象;实现医疗器械功能所必需的患者信息管理功能属于医疗器械功能。二者尽量通过模块化设计予以拆分,若在技术上无法拆分需将非医疗器械功能作为医疗器械软件的组成部分予以整体考虑。