现场数据
产品实际使用中得到的数据
现场数据是指产品实际使用中得到的数据,现场收集的数据通常都没有进行有效控制,分析的过程是基于得到的以往的数据,而现场数据分析系统一般不能停止操作运行来等待数据的分析;另外,由于竞争压力,各组织往往不愿意公开现场数据。现场数据的收集方法有两种:在线自动记录和人工报告。在线自动记录是由操作系统对错误进行自动地在线记录;人工报告是由用户、问题分析员和软件开发人员三类数据收集者记录产生,由用户记录系统运行时所出现的问题,并把这些问题交由分析员进行诊断,最后由开发人员在确定分析结果后进行修复。
简介
产品实际使用中得到的数据为现场数据。软件现场数据不同于测试数据,对其的分析就变得更为重要。现场收集的数据通常都没有进行有效控制,分析的过程是基于得到的以往的数据,而现场数据分析系统一般不能停止操作运行来等待数据的分析。另外,由于竞争压力,各组织往往不愿意公开现场数据。
要收集某项数据及分析数据,测试人员和分析人员如果缺乏明确认识,可能会造成投人了大量资源进行现场失效数据收集却回报甚微的情况。软件可靠性研究必须有明确的对象、目标和分析方法,这样可以有效地利用现有数据,并将收集需要的补充数据的费用降至最低。使用阶段收集和分析的现场可靠性数据,对产品的设计和制造的评价最权威,因为它反映的使用环境条件最真实,参与评估的产品数量较多,其评估结果反映了产品趋向成熟期或到达成熟期时的可靠性水平,是该产品可靠性工作的最终检验,也是今后开展新产品的可靠性设计和改进原产品设计的有益的参考。
现场数据收集方法
建立一个完全可靠的数据收集过程需要数据采集者和使用者不断地合作。有两种现场数据的收集方法:在线自动记录和人工报告。在线自动记录是由操作系统对错误进行自动地在线记录,而人工报告是由用户、问题分析员和软件开发人员三类数据收集者记录产生,由用户记录系统运行时所出现的问题,并把这些问题交由分析员进行诊断,最后由开发人员在确定分析结果后进行修复。在这两种数据收集方法中,数据应用人员根据需要提供定义和格式来收集软件错误和失效数据,这样数据就能够按照给定的定义和格式自动地由操作系统或人工收集得到。两种收集方法对于准确的可靠性分析工作来说都是必需的,并且在理想情况下,两种数据是可以进行交叉引用的。可靠数据收集过程是一个漫长的过程,数据收集的定义和格式会随着数据收集过程、软件及硬件环境的变化而进行调整。
在线自动记录
多数大型计算机系统都在操作系统中提供记录错误的软件。该软件记录在各个子系统,如内存、磁盘和网络子系统出现的错误信息,系统事件信息如重新启动和突然断电等也包括在操作系统中。记录通常包括错误发生的位置、时间和类型,出错时系统的状态和错误修复情况(如再运转)。这些记录被定期地存储在一个永久性的系统文件中。
对于系统进程在运行时出现的问题,或由系统处理进程检测出的非优先应用中出现的问题和不正常硬件出现的情况,操作人员可以在必要时介入并收集额外的数据,如有关处理进程状态的信息块和处理器内存信息块。这些信息块由于量很大,因而通常不存在于事件记录中。这些信息在一个高级环境中可以被当做一部分在线自动记录,因为在这些高级环境中,许多通常由操作人员完成的任务都被编入操作系统的数据收集模块中了。
主要优点:能够记录大量瞬时错误和在线错误恢复处理进程等信息,它还提供了近乎100%的记录和准确的时间信息,而这对于人工报告来说是非常困难的。
缺点:在线记录也面临着一些问题,如在线错误记录提供的信息没有潜在错误信息和脱机诊断,所以很有必要在自动记录中补充进一些人工报告中的信息。
人工报告
人工报告即现场问题报告。当某一个问题影响到用户应用程序或者系统的运行时,用户便把它写入错误报告文件以寻求问题的解决。问题有可能很简单,比如说对软件性能缺乏了解,或是表面性的小问题。也有可能比较严重,比如系统崩溃或是丢失数据之类。首先,报告应包含下列信息:错误出现时间、严重程度、系统识别和用户提供的问题描述。在系统崩溃和数据丢失的情况下,还应提供附加的信息(如处理器内存信息块)。当报告的问题由系统分析员和开发人员诊断和修复时,所有的诊断分析过程、潜在故障信息、失效的表现和修复过程全都应附在报告中。由于这些信息用固定格式很难描述,因此人工报告主要是用段落文字来描述,只有报告头与所有其他报告一样有固定的格式。另外还有一种报告叫操作员记录,是由系统操作员来完成的。操作员记录的内容包含系统崩溃、失效诊断和软硬件更新等信息。
软件错误报告详细地列出了潜在故障、症状和修复情况的信息。因此利用这种报告便可用来分析许多软件可靠性问题。然而利用人工报告进行评价分析时,仍存在两个缺点。首先,报告不详细的问题比较突出,据估计近80%的处理器的失效是由于没有进行记录。因此说理想情况应该是在线记录、人工报告和操作员记录都存在并同时进行参考。其次,因为人工报告是人为写出的文字报告,不易由自动化的工具进行分析处理,不能像原始数据被组织成结构化的数据,这样就不利于数据分类,并对每一分类的实例进行计数。这就意味着即便某失效已发生很长时间,但仍需要了解该失效的详细情况,而此时可能有关该失效的重要信息都已丢失,这样就可能导致人们把大量的评估精力都用在这种数据的重新组织上,而不是问题的分析上。为了有效解决这个问题,可以在收集数据以前产生目录。
可靠性数据收集的过程
可靠性数据的收集应有周密的计划。现场数据不可能做到非常完善,产品一经投入使用,所到之处都是数据的发生地,在不可能做到面面俱到的情况下,应根据需求分析选择重点产品和地区作为数据收集点。
进行需求分析
在进行数据收集以前必须进行需求分析,明确数据收集的内容及目的,对可靠性数据的需求是根据产品生命周期内不同阶段对可靠性分析的需要决定的。有目的、有针对性地收集这些数据,对产品可靠性增长及达到其设计要求的目标值将起到重要作用。然而不同的生命阶段对数据的需求是不同的,所收集的对象和内容应随之确定。
确定数据收集点
在不同的生命阶段有不同的数据收集点,对于现场数据,主要是使用部门的质控室或维修部门等。在选择重点地区或部门时,以有一定的代表性为好,如使用的产品群体较大,管理较好,使用中代表了典型的环境与使用条件等。对于新投入使用的产品,应尽可能从头开始跟踪记录,以反映其使用的全过程。
制定数据收集表格
这是数据收集系统的重要任务。根据需求制定所需收集内容的统一、规范化的表格,这将便于计算机处理,也便于在同行业或同部门内流通;有利于减少重复工作,提高效率,也有利于明确认识,统一观点。
数据收集的方法
在建立了完善的数据收集系统以后,可依数据传送的途径,按正常流通渠道进行数据收集。当数据收集系统运行尚不完善时,可用以下两种方式进行收集:一是在使用现场聘请信息员,让其按所要求收集的内容,逐项填表,定期反馈;另一方式是派专人到现场收集,按预先制订好的计划进行。两种方式收集的效果是相同的。
最后,为保证上述工作有条不紊地顺利开展,严格的科学管理手段是不可缺少的。否则,软件故障的收集工作就不可能圆满完成。负责收集软件故障数据的人员,必须具有细心、严谨、坚韧不拔的工作作风,当然,在收集软件故障数据时,如果成本、进度方面的矛盾变得十分尖锐,就应该采取灵活的折中方案。
现场数据分析步骤
从实际系统中获取现场可靠性数据并对其进行分析处理可以按照以下5个步骤进行:
数据收集和处理
从现场数据中提取必要的信息。要进行该步骤就必须详尽地了解实际系统所涉及的操作系统、目标软件和系统操作等相关内容,实际的处理过程可根据数据类型而定。
数据分析
对所获取数据进行分析。通过该步骤可达到两个目的,一是得到运行软件在实际环境中的可靠性特征,二是分析出影响软件系统可靠性的因素以便于提高系统性能。
模型结构识别和参数估计
根据数据分析的结果确定合适的可靠性模型(如Markov模型),并估计参数的实际变化范围。所确认的可靠性模型要能够对实际环境中的软件可靠性行为进行一种抽象描述,这些软件可靠性模型包括可执行性模型、错误和可恢复模型、现场捕捉到的有效故障的软件可靠性模型以及依靠工作负荷的软件可靠性模型。
模型求解
在未得到所开发模型的求解技术的情况下进行的。一旦掌握了求解技术,那么利用真实数据就可以使该模型发挥作用。这里的模型求解还含有求得可靠性标准的含义(这些标准包括可靠性、可用性和运行性能等)。
模型分析
对模型中由于各种因素变化而对软件可靠性产生的影响进行评估。通过该步骤可以确定系统的可靠性瓶颈,并且可以预测设计中的变动对软件可靠性所产生的影响。
软件可靠性的试验评估工作可以在软件生命周期的不同阶段进行。在开发阶段,可靠性数据需要通过代码检查和软件测试产生,很多研究都已经对开发阶段所收集的可靠性数据进行了评估。然而开发阶段的软件可靠性并不能代表运行阶段的软件可靠性,因为运行中软件的可靠性可能会与其开发阶段的可靠性有很大差别。在软件运行阶段,软件的更新速度相对低一些。由于各种故障软件的可视性和系统对它的容错特性都是不一样的,另外由于工作负荷的影响,软硬件平台的交互作用和环境因素对软件的影响也不尽相同,因此每一个软件的故障都对软件可靠性有着不同的影响,这样在运行阶段软件可靠性的估计就不能使用在开发阶段所收集的数据。在该阶段,最好的办法就是通过直接收集到的可靠性数据来分析运行软件的可靠性。
参考资料
最新修订时间:2022-08-25 13:44
目录
概述
简介
参考资料