1 / 26
文档名称:

软件可靠性与安全性转训材料PPT学习教案.pptx

格式:pptx   大小:205KB   页数:26页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件可靠性与安全性转训材料PPT学习教案.pptx

上传人:wz_198613 2021/7/18 文件大小:205 KB

下载得到文件列表

软件可靠性与安全性转训材料PPT学习教案.pptx

相关文档

文档介绍

文档介绍:会计学
1
软件可靠性与安全性转训材料
1
软件的质量状况
硬件飞速发展, 越来越可靠, 软件成为系统失效的主要原因
软件规模和复杂性持续增加, 给获得安全可靠的软件带来巨大挑战
软件质量的定量评估困难, 往往成为项目要素中最容易被忽略的部分
经济性使得相关各方都在考虑成本, 在资源受限的情况下, 质量的要求会降低, 常常不得不在带有许多缺陷的情况下发布软件
第1页/共26页
1
软件质量
明确声明的功能和性能需求、明确文档化的开发标准、以及专业开发人员开发的软件所应具有的所有隐含特征都得到满足
软件质量模型是多样的
软件质量模型是动态的
软件质量是多维度的
软件质量是多视角的
软件质量特性之间存在交互影响
第2页/共26页
1
动态的软件质量
软件/系统质量模型(ISO/IEC 25010:2011)
外部和内部质量






























可靠性(R)
可用性(A)
安全性(S2)
可维护性(M)
&
RAMS2
软件质量的关键特性
第3页/共26页
2
软件失效机理
导致软件失效的缺陷主要是设计问题
老化/磨损不会导致软件失效, 软件失效没有趋势性预兆
周期性的重启可帮助防止/修复一些软件失效
除非输入(指令、数据、运行环境)发生变化,否则, 运行时间的长短不会对软件可靠性产生影响
除非影响到软件的输入(指令、数据、运行环境), 否则, 物理环境因素的变化不会对软件可靠性产生影响
通常, 不能通过对单条语句的分析来预计软件失效率
软件的接口完全是概念上的、不可见的, 但对软件可靠性有影响
标准件可用于改善可靠性和可维护性, 但软件重用还没有形成工程趋势
硬件维修使其恢复到良好状态, 而软件修改使其到达未知状态
第4页/共26页
2
使用环境对失效的影响
软件缺陷只有被遇到时才会产生故障, 才有可能导致失效, 不同使用方式下, 对软件可靠性的感受是不一样的决定软件使用方式的因素很多
内部参数、历史数据、当前输入、……
软件失效状态受到操作及环境条件的影响
软件不会脱离环境运行
软件失效对系统的影响程度取决于使用环境, 在某个环境中是安全的软件, 可能在另一个环境中就不安全了
软件失效的统计特性
IBM关于缺陷与失效的统计研究数据
客户所看到的57%以上的失效是由占缺陷总数2%以下的缺陷引起的
超过总数61%的缺陷只引起低于3%的客户将会经历的失效
不同的缺陷在所引发的失效率上存在高达4个数量级的巨大差异
第5页/共26页
2
软件缺陷的特性及影响
变异的预期常常产生缺陷
在实际项目中, 完全消除缺陷是不可能的, 基于软件开发经济学的考虑, 减少缺陷是现实的选择
缺陷有可能非常简单, 也有可能极其复杂
程序设计语言与缺陷的复杂性和数量的关系是未知的
不论人的能力和背景, 都可能产生缺陷
缺陷在软件中的位置未知
软件缺陷的影响
缺陷可能导致故障, 甚至失效
同样的缺陷在不同的场景下导致的失效状态可能会有很大的差别, 可能只是使用不便, 也有可能带来灾难性后果
缺陷的复杂度与失效的严重性之间的关系是未知的
最大限度的减少缺陷, 可以提高软件的可靠性
缺陷除了带来失效损失之外, 还带来开发、验证和维护成本的全面增加
第6页/共26页
2
软件防错策略
第一次就做正确(Do It Right the First Time)
建立先进的理念, 避免错误及预防失误
采取适当的实践, 形成缺陷预防的趋势
利用一切可用的方法及工具, 确保不引入缺陷到软件
典型实践
建立组织级别的规范和指南, 全体人员共同遵守
用户的早期参与
进行专业分工, 使用有能力、经验及进取心的人员
在生命周期各阶段, 使用现代的方法论和自动化工具, 促进生产力提升的同时及达到预定质量的目标
第7页/共26页
2
软件排错策略
尽早检测, 一旦可行立即修正(Detect It Early; Fix It as Soon as Practicable)
测试及修复成为计划性和经常性活动, 对缺陷进行早期检测及消除, 使得缺陷一旦产生就立刻解决
修正系统缺陷时, 应考虑问题的严重程度、发生频率及完成测试及管理的可能性
在操作和维护阶段发现的缺陷, 不一定要立即修正
典型实践举例
在生命周期各阶段, 对软件进行原型化、仿真、审查和检查, 验证正确性, 改善可靠性
尽早开展多层次的测试工作, 发现并消除缺陷和隐患
优先解决最高风险的问题, 加强配置管理, 防止变更失控