5、软件生存周期全过程
软件生存周期全过程。如图1。
图1 软件生存周期示意图
5.1 软件安全性级别
5.1.1 安全性级别分类
根据YY/T0664-2020医疗器械软件-软件生存周期过程标准中4.3软件安全分级,编制《软件安全性级别判定方法》,由研发负责人在采取风险控制措施之前,结合软件的预期用途、使用场景和核心功能进行综合判定软件的安全级别。
A级:不可能对健康有伤害或损坏。
B级:可能有不严重的伤害。
C级:可能死亡或严重伤害。严重伤害的范围包括:危及生命;造成人体功能的永久损害或人体结构的永久性损坏;或需要内科或外科介入以防止人体功能的永久损害或人体结构的永久性损伤。
5.1.2 管理要求
如果软件失效引起的死亡或者严重伤害的风险,随后由硬件风险控制措施降低到可接受水平,或者降低失效后果或者降低由失效引起的死亡或者严重伤害的概率,软件的安全性级别可从C降低到B(不能直接由C降低到A);如果软件失效引起的非严重伤害风险同样通过硬件风险控制措施降低到可接受水平,软件的安全性级别可从B降低到A。
应依据风险控制措施所控制的危害的可能影响,对实施风险控制措施起作用的每个软件系统赋予一个软件安全性级别。
当一个软件系统分解为软件项,以及当一个软件项又进一步分解为几个软件项时,此类软件的软件项应继承原软件项(或软件系统)最高的安全性级别(注:以C级为最高,B级次之,A级最低)。
5.2 风险管理要求
软件的设计开发和维护需要在质量管理体系和风险管理体系(具体按《风险管理控制程序》执行)的要求下进行,在软件整个生存周期内都需要考虑风险因素,结合产品识别、分析、评价、控制和监测软件功能、接口、用户界面、现成软件、网络安全等风险,确保软件在没有任何不可接受的风险的情况下完成预期目的。
软件的风险管理不能脱离系统孤立地进行,软件风险管理应关注潜在软件功能的识别和会导致危险情况的异常的识别。
如果估计危险情况的风险时无法考虑软件失效发生的概率,则软件失效发生的概率应假定为1。也就是说,风险估计应关注危险情况引发的伤害的严重度,在不能通过降低危险发生概率来降低软件的风险级别,仅可通过外部风险控制措施降低软件的风险级别。
5.3 生存周期模型
5.3.1 一般要求
研发负责人根据产品的安全等级、复杂程度、预期用途、开发方式等方便综合考虑,选择合适的软件生存周期模型。软件生存周期过程质量保证活动的要求应当与软件的安全性级别相适宜。
5.3.2 常见的软件生存周期模型
①瀑布模型:单程的开发周期,由实施单一时间开发过程组成。
②增量式开发模型:多重的开发周期。确定客户要求并规定系统要求,然后以一系列的构建其余的开发。第一个构建包含策划能力的一部分,下一个构建增加更多能力,等等,直到系统完整为止。
③渐进模型:多重的开发周期。也在构建中开发系统,但是不同于增量式开发模型策略的是,客户要求和系统需求事先部分确定,然后在每个后续的构建中细化。
④V模型:V模型从整体上看来,就是一个V字形结构,由左右两边组成。左边的下画线分别代表了需求分析、概要设计、详细设计、编码。右边的上画线代表了单元测试、集成 测试、系统测试和验收测试。它的意义在于,表明了测试过程中存在的不同的级别,描述了这些测试阶段和开发阶段的对应关系。如下图所示: