SCADA/EMS软件附有大量的手册、规范、程序流程图表等文件,这也是检查其 质量的重要依据。飞机制造的先驱者曾经说过:当图纸的重量等于飞机的重量时,飞 机就可以飞了,事实上,波音飞机的技术文件早已超过飞机的重量了。这一点对电力 软件文件也同样适用. 应该说用户对软件质量的认识是SCADA/EMS工程管理的关键,而这正是多数电 力公司的弱点,于是,引入软件可靠性工程的理论成为提高电力软件质量管理水平的 一个新的契机。 1.2.2软件可靠性的研究现状 软件可靠性的研究始于上世纪70年代。在80年和90年代,美国、英国等国家 对一般软件、军用软件的软件可靠性度量问题展开了讨论,有些成果己纳入国际标准, 在西方发达国家中,不少大公司已将软件可靠性度量纳入工作流程。 在IEEE生产可靠软件的标准度量词典1o中,把与生产可靠软件的度量(measures) 分成两大功能类别:产品度量和过程度量。产品度量应用于开发的软件对象,并分成 6个子类。过程度量应用于开发、测试和维护的活动,过程度量法分成3个子类。 产品度量的六个子类针对以下与可靠性有关的方面: (1)错误、故障、失效:对人为原因引起的缺陷,程序隐错,观测到的系统异常情 况的统计: (2)平均失效前时间、失效率:失效发生频率及时间的派生度量: (3)可靠性增长和预测:对产品在测试时和运行过程中可靠性变化所作的评估: (4)残留的产品缺陷:在开发、测试或维护中对产品中残留缺陷的评估: (⑤)完备性和一致性:对所必需的软件系统部件是否存在并相互一致进行的评估; (6)复杂性:对系统中复杂因素的评估。 过程度量的三个子类直接与过程管理有关: (1)管理控制度量:对错误、故障的数量及分布,以及修正缺陷所需的费用的趋势 进行评估: (2)覆盖度量:用于监控开发人员和管理人员的能力,从而保证开发或维护软件产 品所必需的所有活动是完全的: 7
7 SCADA/EMS 软件附有大量的手册、规范、程序流程图表等文件,这也是检查其 质量的重要依据。飞机制造的先驱者曾经说过:当图纸的重量等于飞机的重量时,飞 机就可以飞了,事实上,波音飞机的技术文件早已超过飞机的重量了。这一点对电力 软件文件也同样适用. 应该说用户对软件质量的认识是 SCADA/EMS 工程管理的关键,而这正是多数电 力公司的弱点,于是,引入软件可靠性工程的理论成为提高电力软件质量管理水平的 一个新的契机。 1.2.2 软件可靠性的研究现状 软件可靠性的研究始于上世纪 70 年代。在 80 年和 90 年代,美国、英国等国家 对一般软件、军用软件的软件可靠性度量问题展开了讨论,有些成果己纳入国际标准, 在西方发达国家中,不少大公司已将软件可靠性度量纳入工作流程。 在IEEE生产可靠软件的标准度量词典[10]中,把与生产可靠软件的度量(measures) 分成两大功能类别:产品度量和过程度量。产品度量应用于开发的软件对象,并分成 6个子类。过程度量应用于开发、测试和维护的活动,过程度量法分成3个子类。 产品度量的六个子类针对以下与可靠性有关的方面: (1)错误、故障、失效:对人为原因引起的缺陷,程序隐错,观测到的系统异常情 况的统计; (2)平均失效前时间、失效率:失效发生频率及时间的派生度量; (3)可靠性增长和预测:对产品在测试时和运行过程中可靠性变化所作的评估; (4)残留的产品缺陷:在开发、测试或维护中对产品中残留缺陷的评估; (5)完备性和一致性:对所必需的软件系统部件是否存在并相互一致进行的评估; (6)复杂性:对系统中复杂因素的评估。 过程度量的三个子类直接与过程管理有关: (1)管理控制度量:对错误、故障的数量及分布,以及修正缺陷所需的费用的趋势 进行评估; (2)覆盖度量:用于监控开发人员和管理人员的能力,从而保证开发或维护软件产 品所必需的所有活动是完全的;
(3)风险、收益、费用评估:从技术、费用的角度对软件交付决策提供支持。 该标准包括了与开发可靠的软件有关的多达39个的度量,但是其中大多数度量不 是直接针对软件可靠性的度量,如对软件的复杂度的度量等。 软件可靠性工程工作己在美国、欧洲等一些大的公司不同程度地开展,有些项目 已进行得相当深入。开展软件可靠性工程工作的著名大公司包括:美国的AT&T、 Bellcore、惠普、IBM、NASA喷气动力实验室、Lockheed-Martin、朗讯科技、微软、 美国空军、美国海军等,欧洲国家有法国的阿尔卡特、CNES、瑞典的爱立信、意大 利的ENEA,还有日本的日立公司等。其中,美国的AT&T BELL实验室在此方面的 工作最为突出,其在John Musa的积极倡导下开展了长达l0年之久的软件可靠性工程 工作,取得了卓有成效的成果。 软件可靠性增长预测是指在软件测试阶段和使用阶段的可靠性增长过程中,对软 件可靠性进行预测,即根据可靠性测试或使用中收集到的失效数据,预测可靠性的增 长趋势,从而为管理决策提供依据。 软件可靠性增长建模是软件可靠性领域工作开展最早、研究成果最多、应用相对 最为广泛的一项工作,目前,己发表的各类软件可靠性模型已有四十多个。 依据输入的不同,软件可靠性模型可以分为两大类。一种以软件的属性为输入的 软件可靠性模型,软件属性包括软件开发过程属性和软件产品属性,在软件开发的早 期阶段建立的软件可靠性模型属于此类模型。另一种以软件失效数据为输入的软件可 靠性模型,大多数预测软件可靠性的模型都属于这一类。后文将主要讨论基于软件失 效数据的软件可靠性模型。 我国国家标准“计算机软件可靠性和可维护性管理”规定了软件可靠性、可维护性 大纲计划应定量和定性地建立目标,如可靠度R(T),失效发生率ROCOF等。 蔡开元在其专著中将软件可靠性度量分为技术度量与管理度量]。技术度量包 括: (1)控制度量:指那些在当前段既可以给出目标值,又可以给出实际值、估计值 或预测值的技术度量,这些度量可用于有效控制、修改或调整当前开发阶段的各种实 践活动。 8
8 (3)风险、收益、费用评估:从技术、费用的角度对软件交付决策提供支持。 该标准包括了与开发可靠的软件有关的多达39个的度量,但是其中大多数度量不 是直接针对软件可靠性的度量,如对软件的复杂度的度量等。 软件可靠性工程工作己在美国、欧洲等一些大的公司不同程度地开展,有些项目 已进行得相当深入。开展软件可靠性工程工作的著名大公司包括[11]:美国的AT&T、 Bellcore、惠普、IBM、NASA喷气动力实验室、Lockheed-Martin、朗讯科技、微软、 美国空军、美国海军等,欧洲国家有法国的阿尔卡特、CNES、瑞典的爱立信、意大 利的ENEA,还有日本的日立公司等。其中,美国的AT&T BELL实验室在此方面的 工作最为突出,其在John Musa的积极倡导下开展了长达10年之久的软件可靠性工程 工作,取得了卓有成效的成果。 软件可靠性增长预测是指在软件测试阶段和使用阶段的可靠性增长过程中,对软 件可靠性进行预测,即根据可靠性测试或使用中收集到的失效数据,预测可靠性的增 长趋势,从而为管理决策提供依据。 软件可靠性增长建模是软件可靠性领域工作开展最早、研究成果最多、应用相对 最为广泛的一项工作,目前,已发表的各类软件可靠性模型已有四十多个。 依据输入的不同,软件可靠性模型可以分为两大类。一种以软件的属性为输入的 软件可靠性模型,软件属性包括软件开发过程属性和软件产品属性,在软件开发的早 期阶段建立的软件可靠性模型属于此类模型。另一种以软件失效数据为输入的软件可 靠性模型,大多数预测软件可靠性的模型都属于这一类。后文将主要讨论基于软件失 效数据的软件可靠性模型。 我国国家标准“计算机软件可靠性和可维护性管理”规定了软件可靠性、可维护性 大纲计划应定量和定性地建立目标,如可靠度 R(T),失效发生率 ROCOF 等。 蔡开元在其专著中将软件可靠性度量分为技术度量与管理度量[12]。技术度量包 括: (1)控制度量:指那些在当前阶段既可以给出目标值,又可以给出实际值、估计值 或预测值的技术度量,这些度量可用于有效控制、修改或调整当前开发阶段的各种实 践活动
(2)准控制度量:指那些在当前开发阶段只能给出目标值,而不能获得其实际值、 估计值或预测值的技术度量,这些度量的实际值、估计值或预测值只能在后续开发阶 段中获得。 (3)辅助度量:指那些不给定目标值的技术度量,这些度量的目的是收集软件开发 过程中有关信息,供其它软件计划参考,而不直接为目前的软件计划服务。 管理度量用于说明在软件开发的各个阶段是否进行某种可靠性活动。 软件可靠性评估现已在计算机36、控制、航天、军事等领域得到较为广泛而深 入的研究。文献[17[18]阐述了航天控制软件的特点,提出了可靠性度量的选择准则, 提出了若干适用于航天控制软件的可靠性度量指标。文献[19]探讨了软件理论和工程 与控制理论和工程的交叉应用,其宗旨之一是将控制理论方法较系统地引入软件工程 领域,使得软件过程更加有章可循,进一步保证和提高软件可靠性,并概述了软件控 制论的几个研究方向。文献20]分析了目前国内研制的作战指挥系统的特点,通过实 际工作的经验和收集的失效数据分析指出,作战指挥系统分阶段满足S形NHPP模型, 并用某驱逐舰某实验收集的数据进行评估。人工神经网络是目前国际上发展迅速的前 沿交叉学科,在非线性建模方面有广泛的应用。目前,很多研究人员采用前向神经网 络和变点法对故障数据的动态过程进行可靠性建模21-2]。 然而,在电力系统中对于软件可靠性问题的研究尚处于起步阶段。文献[24]认为 变电站自动化系统的可靠性是电网安全经济调度极为重要的因素,其失效一般包括硬 件失效、软件失效和人为操作引起的失效,因而必须分别对这三个方面进行可靠性分 析,并建议有关部门制定相应软件(如规约、组态等)可靠性指标的考核值。文献[25] 提出微机保护的软件的性能是否可靠,是影响微机保护运行可靠性的关键因素之一。 因而在微机保护开发的整个过程中,应该强调软件的可靠性,文章简要介绍了衡量软 件可靠性的几个要素,指出当前微机保护开发人员对软件可靠性认识的误区,提出一 种微机保护软件开发的标准流程,并强调应该在开发流程上和开发制度上保证微机保 护装置软件的可靠性。文献26]在分析影响水电站监控系统软件可靠性因素的基础上, 对监控系统软件可靠性设计的原则和方法进行了探讨,提出加强需求分析,优化设计 方法,注重软件测试,实施全过程可靠性管理,是增强目前水电站监控系统软件设计 9
9 (2)准控制度量:指那些在当前开发阶段只能给出目标值,而不能获得其实际值、 估计值或预测值的技术度量,这些度量的实际值、估计值或预测值只能在后续开发阶 段中获得。 (3)辅助度量:指那些不给定目标值的技术度量,这些度量的目的是收集软件开发 过程中有关信息,供其它软件计划参考,而不直接为目前的软件计划服务。 管理度量用于说明在软件开发的各个阶段是否进行某种可靠性活动。 软件可靠性评估现已在计算机[13-16]、控制、航天、军事等领域得到较为广泛而深 入的研究。文献[17][18]阐述了航天控制软件的特点,提出了可靠性度量的选择准则, 提出了若干适用于航天控制软件的可靠性度量指标。文献[19]探讨了软件理论和工程 与控制理论和工程的交叉应用,其宗旨之一是将控制理论方法较系统地引入软件工程 领域,使得软件过程更加有章可循,进一步保证和提高软件可靠性,并概述了软件控 制论的几个研究方向。文献[20]分析了目前国内研制的作战指挥系统的特点,通过实 际工作的经验和收集的失效数据分析指出,作战指挥系统分阶段满足 S 形 NHPP 模型, 并用某驱逐舰某实验收集的数据进行评估。人工神经网络是目前国际上发展迅速的前 沿交叉学科,在非线性建模方面有广泛的应用。目前,很多研究人员采用前向神经网 络和变点法对故障数据的动态过程进行可靠性建模[21-23]。 然而,在电力系统中对于软件可靠性问题的研究尚处于起步阶段。文献[24]认为 变电站自动化系统的可靠性是电网安全经济调度极为重要的因素,其失效一般包括硬 件失效、软件失效和人为操作引起的失效,因而必须分别对这三个方面进行可靠性分 析,并建议有关部门制定相应软件(如规约、组态等)可靠性指标的考核值。文献[25] 提出微机保护的软件的性能是否可靠,是影响微机保护运行可靠性的关键因素之一。 因而在微机保护开发的整个过程中,应该强调软件的可靠性,文章简要介绍了衡量软 件可靠性的几个要素,指出当前微机保护开发人员对软件可靠性认识的误区,提出一 种微机保护软件开发的标准流程,并强调应该在开发流程上和开发制度上保证微机保 护装置软件的可靠性。文献[26]在分析影响水电站监控系统软件可靠性因素的基础上, 对监控系统软件可靠性设计的原则和方法进行了探讨,提出加强需求分析,优化设计 方法,注重软件测试,实施全过程可靠性管理,是增强目前水电站监控系统软件设计
可靠性的重要保障,并对具体的可靠性技术措施和管理方法进行了介绍。 文献24-26]从不同的角度分析了软件可靠性研究在电力系统中的应用前景,但是 都只停留在定性的阶段,没有阐明如何定量地对软件系统进行可靠性评估和预测。文 献[27-29]提出电网调度自动化系统可靠性研究应包括三部分:设备层可靠性,网络层 可靠性和功能层的可靠性。明确指出应将软件作为构成电网调度自动化系统的设备之 一,考核其可靠性水平,并简单介绍了软件可靠性模型和失效率的计算方法。文献[30] 认为软件可靠性建模是电力二次系统可靠性研究的基础,根据电力二次系统应用软件 开发、使用的过程中的特点,提出了二次系统软件可靠性模型。该模型将软件生命周 期分为测试期和使用期,建立了测试期的可靠性增长函数和使用期的失效强度恒定的 分段函数。文献[31]认为计算机系统的可靠性问题是变电站自动化的关键问题,讨论 了集成的变电站自动化计算机系统的软件可靠性问题,并进一步给出其软件可靠性模 型和分析。文献27-31]为进一步量化电力软件可靠性的评价和预测奠定了基础。 1.3论文的主要工作及章节安排 本文提出在电网调度自动化系统的软件开发中运用软件可靠性工程的理论,对软 件的可靠性进行度量,以保证和提高软件系统的可靠性。首先,根据调度自动化系统 的特点为软件系统制定可靠性指标,选择合适的软件可靠性参数,并以满足该指标作 为终止测试的依据。然后介绍了SCADA软件测试的方法及举例说明测试用例的设计。 最后运用不同模型及参数估计方法对SCADA失效数据进行分析,进而指明其中最适 合SCADA软件可靠性评估的模型及方法。 全文章节如下: 第一章概述了软件可靠性研究和电网调度自动化系统软件可靠性研究意义以及 国内外发展概况,提出了本文的研究的主要思路和研究内容。 第二章阐述了软件可靠性研究的理论基础,介绍了软件可靠性的相关概念、指标 和软件可靠性模型的分类。 第三章提出建立调度自动化系统的软件可靠性目标,并以SCADA软件为例介绍 了如何选取合适的软件可靠性参数,并确定了可靠性目标,作为衡量软件系统是否满 10
10 可靠性的重要保障,并对具体的可靠性技术措施和管理方法进行了介绍。 文献[24-26]从不同的角度分析了软件可靠性研究在电力系统中的应用前景,但是 都只停留在定性的阶段,没有阐明如何定量地对软件系统进行可靠性评估和预测。文 献[27-29]提出电网调度自动化系统可靠性研究应包括三部分:设备层可靠性,网络层 可靠性和功能层的可靠性。明确指出应将软件作为构成电网调度自动化系统的设备之 一,考核其可靠性水平,并简单介绍了软件可靠性模型和失效率的计算方法。文献[30] 认为软件可靠性建模是电力二次系统可靠性研究的基础,根据电力二次系统应用软件 开发、使用的过程中的特点,提出了二次系统软件可靠性模型。该模型将软件生命周 期分为测试期和使用期,建立了测试期的可靠性增长函数和使用期的失效强度恒定的 分段函数。文献[31]认为计算机系统的可靠性问题是变电站自动化的关键问题,讨论 了集成的变电站自动化计算机系统的软件可靠性问题,并进一步给出其软件可靠性模 型和分析。文献[27-31]为进一步量化电力软件可靠性的评价和预测奠定了基础。 1.3 论文的主要工作及章节安排 本文提出在电网调度自动化系统的软件开发中运用软件可靠性工程的理论,对软 件的可靠性进行度量,以保证和提高软件系统的可靠性。首先,根据调度自动化系统 的特点为软件系统制定可靠性指标,选择合适的软件可靠性参数,并以满足该指标作 为终止测试的依据。然后介绍了 SCADA 软件测试的方法及举例说明测试用例的设计。 最后运用不同模型及参数估计方法对 SCADA 失效数据进行分析,进而指明其中最适 合 SCADA 软件可靠性评估的模型及方法。 全文章节如下: 第一章概述了软件可靠性研究和电网调度自动化系统软件可靠性研究意义以及 国内外发展概况,提出了本文的研究的主要思路和研究内容。 第二章阐述了软件可靠性研究的理论基础,介绍了软件可靠性的相关概念、指标 和软件可靠性模型的分类。 第三章提出建立调度自动化系统的软件可靠性目标,并以 SCADA 软件为例介绍 了如何选取合适的软件可靠性参数,并确定了可靠性目标,作为衡量软件系统是否满
足现场运行需要的标准。此外,还介绍了对SCADA软件进行可靠性评估所需要做的 软件测试,举例说明测试用例的设计方法。 第四章和第五章分别利用JM模型和GO模型对SCADA失效数据进行分析,每 种模型分别采用两种不同的参数估计方法一一极大似然估计法和最小二乘法,对比四 种方法得到的软件可靠性评估结果,证明基于JM模型的极大似然估计法和基于GO 模型的极大似然估计法得到SCADA软件的可靠性预测效果最佳。 第六章为全文总结,并对电网调度自动化系统软件可靠性研究中存在的问题及其 研究方向作了展望
11 足现场运行需要的标准。此外,还介绍了对 SCADA 软件进行可靠性评估所需要做的 软件测试,举例说明测试用例的设计方法。 第四章和第五章分别利用 JM 模型和 GO 模型对 SCADA 失效数据进行分析,每 种模型分别采用两种不同的参数估计方法——极大似然估计法和最小二乘法,对比四 种方法得到的软件可靠性评估结果,证明基于 JM 模型的极大似然估计法和基于 GO 模型的极大似然估计法得到 SCADA 软件的可靠性预测效果最佳。 第六章为全文总结,并对电网调度自动化系统软件可靠性研究中存在的问题及其 研究方向作了展望