软件可靠性技术发展与趋势分析报告

上传人:xmg****18 文档编号:120298783 上传时间:2020-02-06 格式:DOC 页数:10 大小:50KB
返回 下载 相关 举报
软件可靠性技术发展与趋势分析报告_第1页
第1页 / 共10页
软件可靠性技术发展与趋势分析报告_第2页
第2页 / 共10页
软件可靠性技术发展与趋势分析报告_第3页
第3页 / 共10页
软件可靠性技术发展与趋势分析报告_第4页
第4页 / 共10页
软件可靠性技术发展与趋势分析报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《软件可靠性技术发展与趋势分析报告》由会员分享,可在线阅读,更多相关《软件可靠性技术发展与趋势分析报告(10页珍藏版)》请在金锄头文库上搜索。

1、.word格式,软件可靠性技术发展及趋势分析1引言1)概念 软件可靠性指软件在规定的条件下、规定的时间内完成规定的功能的能力。 安全性是指避免危险条件发生,保证己方人员、设施、财产、环境等免于遭受灾难事故或重大损失。安全性指的是系统安全性。一个单独的软件本身并不存在安全性问题。只有当软件与硬件相互作用可能导致人员的生命危险、或系统崩溃、或造成不可接受的资源损失时,才涉及到软件安全性问题。由于操作人员的错误、硬件故障、接口问题、软件错误或系统设计缺陷等很多原因都可能影响系统整体功能的执行,导致系统进入危险的状态,故系统安全性工作自顶至下涉及到系统的各个层次和各个环节,而软件安全性工作是系统安全性

2、工作中的关键环节之一。 因此,软件可靠性技术解决的是如何减少软件失效的问题,而软件安全性解决的是如何避免或减少与软件相关的危险条件的发生。二者涉及的范畴有交又,但不完全相同。软件产生失效的前提是软件存在设计缺陷,但只有外部输入导致软件执行到有缺陷的路径时才会产生失效。因此,软件可靠性关注全部与软件失效相关的设计缺陷,以及导致缺陷发生的外部条件。由于只有部分软件失效可能导致系统进入危险状态,故软件安全性只关注可能导致危险条件发生的失效。以及与该类失效相关的设计缺陷和外部输入条件。 硬件的失效,操作人员的错误等也可能影响软件的正常运行,从而导致系统进入危险的状态,因此软件安全性设计时必须对这种危险

3、情况进行分析,井在设计时加以考虑。而软件可靠性仅针对系统要求和约束进行设计,考虑常规的容错需求,井不需要进行专门的危险分析。在复杂的系统运行条件下,有时软件、硬件均未失效,但软硬件的交互作用在某种特殊条件下仍会导致系统进入危险的状态,这种情况是软件安全性设计考虑的重点之一,但软件可靠性并不考虑这类情况。2)技术发展背景 计算机应用范围快速扩展导致研制系统的复杂性越来越高。软硬件密切耦合,且软件的规模,复杂度及其在整个系统中的功能比重急剧上升,由最初的20%左右激增到80%以上。伴随着硬件可靠性的提高,软件的可靠性与安全性问题日益突出。 在军事、航空航天、医疗等领域,核心控制软件的失效可能造成巨

4、大的损失甚至威胁人的生命。1985年6月至1987年1月,Therac-25治疗机发生6起超大剂量辐射事故,其中3起导致病人死亡。1991年海湾战争。爱国者导弹在拦截飞毛腿导弹中几次拦截失败,其直接原因为软件系统未能及时消除计时累计误差。1996年阿里亚娜5型运载火箭由于控制软件数据转换溢出起飞40秒后爆炸,造成经济损失达5亿美元。1999年大力神4B运载火箭由于软件问题飞行9秒后偏离航向,造成卫星未进入预定轨道。 不断发生的软件失效和事故使人们逐渐认识到:在系统复杂性较高的情况下,常规的软件工程方法和软件评测手段并不能解决软件可靠性与安全性设计深层次的问题。软件系统的安全性需要通过专业技术予

5、以保证。实际工程中对软件可靠性安全性的迫切需求直接促进了软件可靠性安全性技术的发展。通过不断的研究实践和工程积累,逐步形成理论,并进一步指导实际软件研制。2 软件可靠性安全性技术应用与管理趋势1)技术应用趋势 软硬件复合系统设计时更加注重系统层次上的可靠性与安全性的综合分析和设计,在软件可靠性分析、设计、测试、验证方面有下述趋势:(1)更加注重软件可靠性与安全性分析和设计的系统性。 主要表现在以下两方面: A)分析的范围进一步扩展,在原有分析的基础上加强系统级的分析与设计,更注重软件与其外部运行环境之间相互作用的分析; B)注重对软件运行异常环境的分析以及异常情况下软件处理功能的分析与设计:包

6、括硬件异常状态、时序和软硬件异常交互的分析,软硬件综合容错分析与设计、软件降级分析与设计等。 美国麻省理工学院系统与软件安全性项目组人员经过对大量的与软件相关的事故进行统计分析发现,几乎所有与软件相关的事故都涉及到软件需求问题。而且,软件作为一种逻辑产品,其失效模式与硬件失效模式不同。很多事故发生时,操作人员操作正确,硬件也未出现故障,从软件工程的角度看,软件的表现符合“软件需求规格说明”,也没有失效。导致故障的原因在于,软件与外部运行环境之间出现一种超出设计人员设想的相互作用方式,也就是说与软件相关的大部分系统失效是由于软件对外部输入处理及其相关时序的设计遗漏造成,而非软件失效造成。为此,N

7、ASA定义了一种软件交互失效模式,并规定全部的安全性关键软件和任务关键软件均需在系统、功能等顶层设计加强软件与外部环境的交互动态分析 在缺少软硬件容错设计的情况下,软件的输入错误必然导致软件的输出错误。由于许多实时嵌入式系统的输入来自于外部的硬件或软件,硬件故障或外部的干扰很可能造成外部环境的变化或输入信号时序、幅度的变化,也可能产生输入信号错误,为避免由于这种原因造成的软件失效,必须在软件研制前期进行深入、细致的分析,并采取针对性的设计措施(2)强调量化风险控制,注重对研制的软硬件复合系统的概率风险进行评估。 1986年挑战者号失事后。挑战者事故调查委员会批评NASA未能估计出每个组件失效的

8、风险传统的安全性定性分析方法不足以预计或削弱全部的安全性风险,有关学者建议概率风险评价方法应尽可能早的应用于飞机的风险管理程序。早期的概率风险评价研究与试点工作由专业研究人员进行。1995年4月,NASA在NFG 7120.5ANASA程序和项目管理过程与要求中规定,概率风险分析应作为保证程序和技术成功的一种决策工具,要求程序与项目管理决策必须在概率风险排序的基础上进行。2002年11月,NASA在NFG 7120.5B规定NASA独立验证与确认机构负责全部的安全性关键软件和任务关键软件全生命周期各阶段产品的独立确认与验证工作,包括软件可靠性与安全性的分析,测试与验证,以及软件概率风险危险分析

9、与评价工作。 概率风险分析是系统应用可靠性和安全性等相关技术的一种综合分析方法,包括对软件可靠性和安全性的量化分析与评价,其目的是识别与评价为保证安全性和任务完成所需采取的各种行动、措施的风险,为决策提供支持。首先,需使用定性分析方法,如初步危险分析PHA,危险与可运行性研究HAZOP,故障模式、影响及危害性分析FMECA,系统检查单,主逻辑框图等技术对软硬件组合系统进行分析,获得可能导致系统不期望状态发生的初始事件表。在定性方法不足以提供对失效、后果、事件的充分理解时使用定量的方法。然后,就系统、人、软件对初始事件的不同响应而导致的事件链的不同发展过程进行分析鉴别,生成系统的功能事件序列图。

10、然后,分析各事件的发生概率(包括共因失效分析,人因分析以及软件各种失效分析等),用故障树和概率统计技术归纳各事件序列最终状态的发生概率,分析各终结状态的严重度,结合状态发生概率与严重度,获得概率风险描述与风险排序 NASA使用概率风险分析技术进行风险管理,按照风险调整资源,使资源的占用与风险相匹配,在不增加风险的前提下,减少44%的资源占有率。火星采样返回项目Mars Sanple Retum Mission要求任务失效概率必须小于10-6,NASA采用概率风险分析方法检验系统的可靠性,取得了很好的效果 概率风险分析技术的发展和应用过程表明,只有针对工程中的问题与需求,系统有效地运用相关的技术

11、手段与工具,才能达到保证可靠性的目的,同时也促进相关技术的进一步发展。(3)产品验证更加注重分析技术和测试技术的综合应用。 测试验证的不充分性与高成本决定了这一趋势的必然性。在系统的功能分析和设计阶段加强仿真验证与分析:对常规状态下的功能验证以实际测试验证为主,分析验证为辅;对异常状态下的功能验证以仿真验证为主,分析验证为辅;对软件小概率失效和软件危险失效则以分析验证为主,仿真验证为辅。2)项目管理 软件研制管理更加科学、专业和规范,在软件项目管理方面有下述趋势: (1)软件项目管理更加深入、系统与灵活,软件过程控制与软件阶段产品的分析、验证相结合,对安全性关键软件,任务关键软件更加注重阶段产

12、品分析与验证。 NASA的软件质量保证、软件可靠性、软件安全性、软件独立验证与确认、软件概率风险分析等工作已成为关键软件研制的基本程序。但每一种软件的研制过程模型的选择由项目主管人员确定,更注重对各个阶段采取的技术方法的合理选择与阶段产品的质量控制。 (2)在软件研制过程中更加注重专业机构与工程领域人员的技术合作。 大型复杂软件研制需要可靠性技术、软件安全性技术、信息安全技术以及软件运行相关背景领域等多学科、多领域知识的综合运用,促进了软件研制人员与相关领域专业技术人员的合作。 NASA独立验证与确认机构1991年底成立,在1996年以前工作的重点放在研究领域,所进行的独立保证和独立验证与确认

13、项目所占比例不足3%。 1996年4月后开始改变工作重点,独立保证和独立验证与确认项目逐年递增,2000年所占工作比例已达20%。 2000年4月将工作方向转移到应用领域,至2002年独立保证和独立验证与确认项目所占比例已达42%。目前,NASA软件质量保证部门负责全部软件的常规测试、验证与质量管理等工作,而其软件独立验证与确认机构负责全部安全关键软件和任务关键软件全生命周期各阶段产品的独立确认与验证工作,包括软件可靠性与安全性的分析、软件概率风险识别与评价、软件阶段产品验证以及对测试设计与测试结果的分析等。 与此相对照的是NASA软件工程实验室的撤销。该实验室1976年成立,在其存在的25年

14、中致力于经验数据的收集和软件过程改进工作,发表250篇技术论文,获得1994年IEEE-SE I软件过程成就奖。由于其研究活动脱离了工程实践,不能解决实际软件研制中的问题,2001年底被撤销。 上述事实从两方面反映了NASA软件可靠性安全性技术的发展状态,应用情况和趋势: 其一,美国在高端嵌入式系统软件可靠性和安全性方面的工作虽起步较早,但系统性研究和规模化应用从近年才开始逐步展开,相关技术仍在不断改进和发展中。嵌入式系统的可靠性与安全性问题具有较大的技术难度,较强的系统性和综合性,其解决也井非是单纯进行理论、方法研究并加以应用的简单过程,而是研究与应用密切结合的互动过程,美以独立验证和确认机

15、构完成此职能,有其必然性和合理性。其作用之一在于以其权威性协调这一复杂的研究和应用、乃至培训、认证、技术提升的复杂过程。可以肯定的是,只有在专业部门和设计、工程部门密切合作,互动互促的模式下,嵌入式系统可靠性、安全性技术和应用水平及应用效能才能得到很快的提升。其二,嵌入式系统可靠性和安全性问题已是必须解决的现实问题。NASA大量项目涉及多类嵌入式系统,系统功能复杂,规模较大。从公布的成功率来看,其软件系统的研制水平远高于国内。尽管如此,NASA仍将越来越多的项目纳入由第三方执行的软件可靠性安全性独立验证与确认。这表明该工作的需求和作用是毋庸置疑的。随着技术研究和应用的互动进行,软件可靠性和安全

16、性技术将在更大的范围内发挥关键作用。(3)软件质量管理更加量化和全面,包括技术、过程、资源分配、成本控制、进度等全方位管理。 目前,国外已初步形成面向整个软件生存周期各个阶段的系统化的可靠性安全性管理机制,NASA与欧空局均发布了相关的软件产品保证标准和指导手册. NASA要求对安全性与任务关键软件的技术措施、可靠性、安全性等进行量化风险分析,作为决策的技术支持,这在前文中已有叙述。3总结 根据NASA的经验和我们自己的实践体会,常规的软件工程方法和软件评测手段井不能解决软件可靠性设计深层次的问题,保证软件的可靠性与安全性既是一个艰深的理论问题,更是一个复杂的工程问题,不存在完全通用的方法。高可靠性和安全性关键软件需要专业人员与系统总体

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号