课件01-软件可靠性与安全性-解决之道

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件无失效运行的概率(规定的任务和功能) 规定的条件 (系统输入和系统使用)
规定的时间(任务周期)
软件可靠性构成
ISO/IEC 25010:2011的定义
可靠性(Reliability)
在指定条件下和规定的时间范围内 , 系统、
产品或组件完成规定功能的能力
包括:成熟性, 可用性, 容错性, 恢复性
失效状态
考虑到相关的操作及环境条件 , 由一个或多 个失效引起或作用的 , 对系统的直接和后继 的影响 软件不会脱离环境运行 , 在某个环境中是安 全的软件, 可能在另一个环境中就不安全了
失效分类
随机硬件失效(Random Hardware Failure) 在硬件中由一种或几种机能退化可能产生 的、按随机时间出现的失效 系统性失效(Systematic Failure) 原因确定的失效 , 只有对设计或制造过程、 操作规程、文档或其他相关因素进行修改 后,才有可能排除这些失效 可重现
发生频率及完成测试及管理的可能性
在操作和维护阶段发现的缺陷 , 不一定要
立即修正
软件排错策略
典型实践举例
在生命周期各阶段 , 对软件进行原型化、
仿真、审查和检查, 验证正确性, 改善可靠 性
尽早开展多层次的测试工作 , 发现并消除
缺陷和隐患
优先解决最高风险的问题, 加强配置管理,
软件安全完整性及等级
软件安全完整性
在所有规定条件下和规定时间内表示软件
在系统中执行其安全功能的可能性的量值 软件安全完整性等级(SiL)
一种离散的等级,用于规定在安全相关系
统中软件的安全完整性 4个等级
应用方式对质量需求的影响
网络化需求
虚拟化需求
智能化需求
通用化需求
软件可靠性
IEEE的定义 a) 在规定的条件下,规定的时间内,软件 不引起系统失效的概率。该概率是系统 输入和系统使用的函数,也是软件中存 在的缺陷的函数;系统输入将确定是否 会遇到存在的缺陷(如果缺陷存在的话)。 b) 在规定的时间周期内,在所述条件下程 序完成所需功能的能力。
软件可靠性的相关要素
软件的接口完全是概念上的、不可见的 , 但 对软件可靠性有影响 通常不能通过对单条语句的分析来预计软件 失效率 标准件可用于改善可靠性和可维护性 , 但软 件重用还没有形成工程趋势 硬件维修使其恢复到良好状态 , 而软件修改 使其到达未知状态
软件失效根本原因
事件链1
使用错误 失效
软件失效机理
导致软件失效的缺陷主要是设计问题 老化/磨损不会导致软件失效, 软件失效没有 预兆 周期性的重启可帮助防止/修复一些软件失效 软件可靠性不是运行时间的函数 除非影响到软件的输入 , 否则环境因素不会 对软件可靠性产生影响 相同软件的冗余不能改善软件可靠性
软件失效机理
软件可靠性与安全性
第一部分
软件可靠性与安全性 解决之道
提要
1
3 2 3 3 3 4
软件可靠性与安全性
软件失效机理与对策
典型失效事件与教训
软件失效管理
对可靠软件的需求
软件应用广泛 , 在许多领域成为产品创新的 源泉
软件使系统更加智能、灵活 , 越来越多的系 统能力由软件实现
系统对软件的需求和依赖 , 使得软件既要满 足用户的功能要求 , 又必须稳定可靠地完成 赋予的任务
的任务 如果缺陷可被利用来违反安全要求 , 这种 与安全相关的缺陷一般被称为漏洞 典型的软件缺陷
数组越界使用 算法实现不正确 缓冲区溢出
导致失效的事件链2
故障(Fault)
软件中缺陷的体现。如:软件的计算或
判断与规定的不符合等
一个故障如果发生, 可能引起失效
典型的软件故障
缺陷有可能非常简单, 也有可能极其复杂 程序设计语言与缺陷的复杂性和数量的关系 是未知的
不论人的能力和背景, 都可能产生缺陷
缺陷的影响
缺陷可能导致失效 同样的缺陷在不同的场景下导致的失效状态 会有很大的差别, 可能只是使用不便, 也有可 能带来灾难 缺陷的复杂度与失效的严重性之间的关系是 未知的 最大限度的减少缺陷, 可以提高软件的可靠 性
密性 + 维护性 没有普遍接受的定义 专用质量特性与通用质量特性
质量是多维度的, 客户对质量的追求也是
多样的 RAMS
相关标准
标准号 IEEE Std 982.1™2005 标准名称 IEEE Standard Dictionary of Measures of the Software Aspects of Dependability
在出现中断事件或发生失效的情况下 , 产
品或系统能够恢复受到直接影响的数据并 重建系统期望状态的能力
安全关键软件应用场景
航空器控制软件
医疗设备软件
核应用软件
汽车发动机控制软件
轨道/列车控制系统软件 关键基础设施监控系统软件 金融管理系统软件 军事装备/系统软件
软件安全危险性
机密性(Confidentiality)
产品或系统确保数据仅被那些具有访问权
限的人或系统访问的能力 完整性(Integrity)
系统、产品或组件防止未授权访问或修改
计算机程序或数据的能力
软件安全保密性
不可抵赖性(Non-repudiation)
证实活动或事件已发生的能力 , 以使已发
导致失效的事件链2
错误(Error)
在软件开发过程中出现的不符合期望或不
可接受的人为差错 典型的错误
误解或遗漏了用户需求 设计没有完整的实现软件需求 程序设计错误
导致失效的事件链2
缺陷(Defect)
软件中存在的不期望或不可接受的偏差
在特定的状态下, 导致软件不能完成所需
软件排错策略
尽 早 发 现 , 一 旦 可 行 立 即 改 正 (Detect It Early; Fix It as Soon as Practicable)
测试及修复成为计划性和经常性活动 , 对
缺陷进行早期检测及消除 , 使得缺陷一旦 产生就立刻解决
修正系统缺陷时 , 应考虑问题的严重程度、
经济性需求 便捷性需求
软件安全保密性
ISO/IEC 25010:2011 的定义 安全保密性(Security)
产品或系统保护信息和数据的能力 , 以使
人员或其它产品或其它系统按照其相应的 类型和权限访问信息和数据 包括:机密性、完整性、不可抵赖性、可 核查性、确实性
软件安全保密性
软件可靠性的重要程度依赖于软件运行的风 险成本, 如果软件失效的代价很高, 则软件的 可靠性也就非常重要
软件的状况
硬件飞速发展, 越来越可靠, 软件成为系统崩 溃的主要原因 软件研发水平与应用需求不相适应 , 虽然采 取了许多办法 , 但常在带有许多缺陷的情况 下发布和部署 软件自身规模、复杂性的增加 , 给获得安全 可靠软件带来挑战 , 大部分软件不是十分可 靠 软件质量的定量评估困难 , 往往成为项目要 素中最容易被忽略的部分
安全危险性(Safety)是使人员或者环境免受风 险影响的能力 经济风险 健康和安全风险 环境风险 风险常常是由功能性、可靠性、安全保密性、 易用性或维护性中的缺陷所致 安全危险性与系统所处的环境相关 , 是使用 质量
安全相关系统和软件
必须能够实现要求的安全功能 , 以达到或保 持受控设备的安全状态; 并且, 自身或与其他 安全相关系统或外部风险降低设施一道 , 能 够达到要求的安全功能所需的安全完整性 一般分为安全控制系统和安全防护系统 安全相关软件是在安全相关系统中用于实现 安全功能的软件
资源泄露
执行了多余的循环
无限递归调用
遭遇失效的原因
软件中存在缺陷 在使用周期内的系统输入/系统使用触发了软 件缺陷 对触发的缺陷 , 软件中没有相应的措施进行 正确的处理
缺陷的特性
变异的预期常常产生缺陷
在实际项目中完全消除缺陷是不可能的, 基于 软件开发经济学的考虑, 减少缺陷是现实的
IEEE Std IEEE Recommended Practice on Software 1633™-2008 Reliability GB/T 20438电器/电子/可编程电子安全相关系统的功 2006/IEC 能安全 61508-1998
ISO/IEC 25010:2011
Systems and software engineering -Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models
提要
1
3 2 3 3 3 4
软件可靠性与安全性
软件来自百度文库效机理与对策
典型失效事件与教训
软件失效管理
失效(Failure)
IEEE Std 1633™-2008的定义 a) 系统或系统部件不能在规定的限制内完 成所需功能
b) 功能单元完成所需功能的能力被终止 c) 程序的运行偏离了其需求
规定的、要求的、期望的
软件可靠性构成
成熟性(Maturity)
在正常操作情况下 , 满足可靠性要求的能
力 可用性(Availability)
当需要使用时 , 系统、产品或组件可操作
和可访问的能力
软件可靠性构成
容错性(Fault tolerance)
在硬件或软件出现故障的条件下 , 系统、
产品或组件仍能按预期运行的能力 恢复性(Recoverability)
建立先进的理念, 避免错误及预防失误
采取适当的实践, 形成缺陷预防的趋势
利用一切可用的方法及工具 , 确保不引入
缺陷到软件
软件避错策略
典型实践举例
建立组织级别的规范和指南 , 全体人员共
同遵守 用户的早期参与 进行专业分工 , 使用有能力、经验及进取 心的人员 在生命周期各阶段 , 使用现代的方法论和 自动化工具 , 促进生产力提升的同时及达 到预定质量的目标
防止变更失控
建立并运行软件故障报告、分析及纠正措
施系统, 做好软件故障管理
软件避错/排错改进
密切监督(Monitor It)
在整个软件生命周期 , 进行原始数据的收
集和评估
有效整合测量、验证和确认等活动 , 测量
必须配合适当的验证和确认方法才能提供 质量良好的测量数据
根据测量数据 , 评估开发过程、验证过程、
缺陷解决策略
缺陷消除策略
避错(Defect Avoidance)
排错(Defect Removal)
缺陷应对策略
容错(Fault Tolerance) 恢复(Fault Recovery)
软件避错策略
第一次就做正确(Do It Right the First Time)
失效分类
危险失效(Unsafe Failure) 使安全相关系统处于潜在危险状态或丧失 安全功能执行能力的失效 安全失效(Safe Failure) 不可能使安全相关系统处于潜在危险状态 或丧失安全功能执行能力的失效
失效分类
检测到的失效 被系统诊断功能检测到的失效 许多安全相关系统具有自诊断能力 , 诊断 功能可降低事故和误停车发生的可能性 未检测到的失效 未被自诊断功能检测到的失效 系统的自诊断能力影响系统的安全性能
生的活动或事件不可能在随后被否认 可核查性(Accountability)
保证实体的活动与实体实现唯一性追踪的
能力
软件安全保密性
确实性(Authenticity)
确认和识别一个主体或资源就是其所声称
的能力
软件质量的系统化考虑
可信性
可靠性 + 可用性 + 安全危险性 + 安全保
事件链2
人为错误 缺陷 故障 失效
导致失效的事件链1
导致使用错误的原因
缺少清晰的、良好结构化的用户文档
复杂的用户接口 缺乏培训/技术支持 产品规格说明和用户使用环境不一致 不适当的硬件配置
用户的教育或系统背景知识不足
用户对操作环境或产品用途了解不足
相关文档
最新文档