APP下载

舰船装备软件构件可靠性评估方法

2018-07-04,,,,

计算机测量与控制 2018年6期
关键词:舰船构件可靠性

,,,,

(中国船舶工业集团有限公司 软件质量与可靠性测评中心,北京 100081)

0 引言

随着软件构件技术的快速发展,舰船装备软件开发中集成软件构件的方法日趋成熟。基于构件的软件系统开发日益增多,在舰船作战系统和集成舰桥系统中都采用了构件开发技术。

基于构件的软件开发方法是在软件开发过程中避免重复劳动、实现软件复用、提高软件开发质量和效率的重要途径之一[1]。软件构件进行可靠性评估有助于发现其中的错误,能够最大限度、最有效地发现影响软件可靠性的缺陷,对其可靠性的提高具有显著的效果,同时能够提高软件可靠性能力。

1 舰船装备软件构件可靠性评估方法研究

对软件构件系统进行评估是一个先分解后综合的过程,因此需要对单个构件进行可靠性评估,单个构件的可靠度是在它被调用时能够正确执行的概率。本文针对舰船装备软件构件进行可靠性评估,过程如图1所示。

图1 构件可靠性评估过程

选择可靠性评估模型主要考虑三个因素即代码是否可用、构件被测试的方法;构件本身是重用还是新研。构件若是从以前的型号软件项目中复用过来的,则这些构件的可靠性可使用相似产品法来建模,直接采用以前的软件项目中该构件的可靠性模型和数据。若软件为新研构件考虑固有特性和开发特征建立可靠性模型。若缺少构件的合适信息进行评估,采用基于“黑盒”的可靠性评估方法对其进行评估,即将单个构件当做一个“黑盒”,使用“黑盒测试”的方法计算其可靠度[4]。

1.1 相似产品法

若软件构件是从以前的型号软件复用过来的,则这些构件的可靠性可以使用相似产品法来建模。相似产品主要是指软件结构、功能、接口、配置、环境等5个方面具有相似性的产品。从这五个方面进行定性分析,收集被测构件的相关数据,即可评估被测构件的可靠性。

表1 结构相似对比

表2 功能相似对比

表3 接口相似对比

表4 配置相似对比

表5 环境相似对比

如果没有某个构件的可靠度计算信息,可以通过分析历史数据,分析构件失效情况,通过“单个构件可靠度=1-该构件失效次数/该构件被调用的总次数”计算得到。

1.2 参考S-R方法

S-R方法是由美国Rome中心提出的软件可靠性早期预计方法,其基于软件功能流程图建立预计模型,依据软件本身的固有特征和开发过程中的避错和探错软件开发过程特征,来预测构件的可靠性。

若构件为新研构件,考虑固有特征和开发特征建立可靠性模型。一方面考虑固有特征对软件的错误类型分布产生直接的影响,不同特征对错误类型的影响是不一样的,同一特征对不同的错误类型的影响也是不一样的。另一方面考虑开发特征中的避错和查错措施对构件可靠性的影响,分析各项避错和查错措施对错误类型的影响即避错效应和查错效应,避错效应用软件采用避错措施后错误得以避免的概率来评价,查错效应用软件采用查错措施后错误得以避免的概率来评价。综合固有特征信息和开发特征信息建立相应的可靠性评估模型。

构件的可靠性与其固有可靠性和采用避错和查错技术后可靠性改变的程度有关。

1.3 基于测试的可靠性评估方法

若对构件进行可靠性评估时缺少构件的适合信息,那么就可以采用基于“黑盒”的可靠性评估方法对其进行评估。即将单个构件当作一个“黑盒”,使用“黑盒测试”的方法计算其可靠度。

构件失效数据的获取步骤分为三步:构件操作剖面、生成测试用例、执行测试收集失效数据。

1.3.1 构建操作剖面

操作剖面主要是描述用户对软件的使用情况,并且在此基础上通过测试产生测试数据。常见的可靠性测试操作剖面构建方法有三种:基于操作日志获取操作剖面、基于专家咨询法获取操作剖面和基于操作插桩法获取操作剖面[5]。

1.3.1.1 操作日志法

舰船装备的复杂大型软件系统很难一次性开发完毕,往往采用迭代开发的方法,内部测试、三方验收测试和试验过程中建立跟踪日志。通过收集并统计用户的跟踪日志得到操作列表和操作频率,当操作总数达到一定值,可以用操作频率/操作总数近似于操作概率Pi,如下式所示:

其中:Ti代表操作i的次数,n为操作的种类。

1.3.1.2 专家咨询法

在这一过程中,专家处于互相不知情的隔离状态,每个专家都是根据其个人的知识、经验和专长对软件的所有操作的使用情况进行独立打分。专家咨询法的优点是操作简单、直观。

1.3.1.3 插桩法

该构件如果在软件研制阶段的后期进行了功能测试,对测试过程建立了跟踪日志,跟踪日志中所记录的信息有:第i个测试用例,各子模块的访问次数,是否发生了失效,发生失效的系统时间t,导致失效的错误原因。对每个测试用例运行时所经过的子模块访问路径、子模块的运行次数以及引起模块失效的错误数进行统计。其中各子模块的访问次数的测量方法利用软件测试中的插桩技术,在每个模块的出口设置若干个转移计数变量,例如:模块A转移到模块B的计数变量为sum-atob;模块B转移到模块C的计数变量为sHm-btoc。

1.3.2 生成测试用例

根据构建的操作剖面,按比例对应生成相应的测试用例,搭建构建测试环境,执行测试用例。

1.3.3 执行测试收集失效数据

对构件的失效行为进行定义,明确构件在什么情况下属于失效行为,什么情况下不属于失效行为,本文将“一般”以上等级的问题定义为失效。然后针对失效的具体特征进行监控,在测试用例执行过程中,将导致构件发生失效的测试用例执行时刻进行记录,并且记录相应的失效序号,作为构件可靠性评估的数据依据。在获得测试数据的情况下,计算平均失效间隔时间:

Xi为失效间隔时间,假设构件的失效服从指数分布,则构件的失效率为:

最后得到软件的可靠度为:

若此时已经对软件进行了测试,则可通过分析测试后得到的构件失效历史记录来计算其可靠度,即单个构件的可靠度=1-此构件失效的次数/此构件被调用的总次数。

2 舰船装备软件构件可靠性评估过程

2.1 软件构件可靠性评估过程概述

对舰船装备软件构件进行可靠性评估是一个先分解后综合的过程,因此需要对组成大型软件系统的单个构件进行可靠性评估,单个构件的可靠度是它被调用时能够正确执行的概率,本章对其评估过程进行研究。

2.2 软件构件可靠性评估过程

对舰船装备软件构件可靠性评估过程分为构件特征分析、构件可靠性评估模型确定以及构件特征的数据收集。

2.2.1 构件特征分析

对构件的特征分析就是要识别出软件的任务特点、功能、接口、输入、输出、故障类型和运行环境等属性信息,建立软件特征模型,包括固有特征、开发特征并且给出每类特征属性。

本文将构件的固有特征分为应用特征、任务特征、功能特征、系统接口特征和输入特征等5大类和若干个子类。构件的固有特征类型见表6所示。

表6 构件的固有特征分类

2.2.2 构件可靠性评估模型研究

研究国内外各种软件部件、组件、构件的可靠性评估方法,以及它们的应用情况和效果,进而分析各模型对舰船装备软件构件评估的适用性。根据构件的特征,选择、改进或综合利用现有模型,重点考虑构件设计开发特征和固有特征,形成适用于舰船装备软件构件的评估模型。

2.2.2.1 基于软件测试数据的可靠性增长模型

此种模型的出现主要是早期的软件系统是基于过程开发的。研究者提出软件可靠性与系统故障之间存在相关性的假设,认为故障的检测和修复使得软件的可靠性具有不断增加的特性,基于此,研究者可以通过收集软件构件测试或软件使用过程中的失效数据,并且利用统计知识分析其规律,建立对应的模型,对该统计分布的参数进行估计。具体流程如图2所示。

图2 基于软件测试数据模型评估流程

2.2.2.2 基于软件开发阶段固有特性的早期评估模型

此种模型的产生是因为基于软件测试数据的软件可靠性增长模型都是在软件开发完成后,利用对软件运行、测试过程中所得到的失效数据进行可靠性评估,它只是对软件的可靠性指标进行了评估,并不能够对软件本身的可靠性提高产生作用。若要提高软件的可靠性,在软件开发周期的开始,就要求对软件可靠性进行评估并提高软件的可靠性。

2.2.3 构件可靠性计算方法

根据构件的可靠性评估模型,分别给出不同构件特征的数据收集方法包括相似产品法、S-R方法和软件测试方法,收集构件可靠性评估数据,给出构件可靠性计算过程和方法。

3 软件构件可靠性评估的工具实现

3.1 需求分析

构件可靠性评估是舰船装备软件构件可靠性评估工具中的一个功能模块,其功能需求包括相似产品度判断、相似产品数据的输入与可靠性评估结果的计算、软件开发特征和固有特征的信息统计与计算、软件可靠性测试数据输入与评估结果计算。具体功能包括:

方法选择:提供用户相似产品法、基于特征的SR法、软件可靠性测试方法的用户选择功能[6]。

3.1.1 相似产品法

以表格化的方法供用户选择相似产品特征并且计算软件产品相似度,根据阈值判断相似程度,以表格形式显示相似产品的信息并计算可靠度。

3.1.2 基于特征的SR法

软件能以表格的形式清晰方便的对各个构件的固有特性和开发特征进行统计,计算避错效应矩阵,计算各个构件的可靠性计算结果。

3.1.3 软件测试法

提供单独的界面进行构件可靠性测试结果的输入,根据失效间隔时间,计算基于指数分布的软件可靠性评估结果。

3.2 软件设计

3.2.1 层次结构设计

构件可靠性评估模型的层次架构包括界面显示层、数据处理层和存储层。界面显示层主要用于实现人机交互,提供界面输入数据集,包括相似产品信息、特征信息、可靠性测试数据等,并对计算结果进行显示。数据处理层负责利用显示层统计的数据根据可靠性评估模型建立数据矩阵,进行构件可靠性评估结果的计算,存储层用于存储计算过程的数据。

3.2.2 接口设计

构件可靠性评估模块的接口包括人机交互界面接口和函数调用接口。人机交互界面接口主要用于输入构件的数据,函数调用接口主要用于接收体系结构建模模块的数据结构信息。

3.2.3 界面设计

构件可靠性评估模块人机界面选用非标准Windows风格,兼容标准Windows界面特征。

3.3 构件可靠性评估模块工作流程设计

构件可靠性评估模块工作流程如图3所示。

图3 构件测试工作流程

构件可靠性评估首先识别构件的特征,使用SR法评估其可靠性的前提是要知道构件的固有特征和开发特征。若未知构件开发特性和固有特征,可使用相似产品法和软件测试方法对其进行评估,相似产品法从结构相似、功能相似、接口相似、配置相似和环境相似五个方面进行定性分析,收集被测构件的相似产品,通过两者之间的相似性,即可评估被测产品的可靠性。

测试数据法或软件测试法,主要是选择合适的数学模型,著名的模型有J-M模型,即指数分布假设的可靠性评估模型,该模型分三步,第一是构件操作剖面,第二是生成测试用例,第三是执行测试收集失效数据,最后利用失效数据,依据相应经验公式计算构件的可靠性。

4 舰船装备软件构件可靠性评估工具的实例应用

4.1 应用分析

舰船装备软件构件可靠性评估工具在舰船装备软件中应用广泛,现以该评估工具测试某型舰船综合舰桥软件构件为例,采用其信息输入采用用户勾选或下拉框选择的方式输入,软件构件测试过程及结果如图4~6所示。

图4 接口和输入特性界面

图5 软件构件测试活动界面

图6 软件构件测试结果界面

图4~6评估被测件使用的是SR法,图4根据构件的固有特征在评估工具中选择相应数据后,图5是测试活动界面,可以看到构件中数据流图和调用关系图,图6是构件测试结果图,从图上可以看出舰船装备软件构件可靠性评估工具准确性很高,具有一定的工程意义。

4.2 存在的问题

软件构件可靠性评估的工具,虽然可以极为方便地实现舰船装备软件构件可靠性评估工作,但是也存在一些问题,例如人机交互界面不够友好和无法应用该工具测试嵌入式软件等问题。

5 结论

本文对舰船装备软件构件的可靠性评估方法进行了研究,首先给出了软件构件可靠性评估过程,接着介绍了相似产品法,基于软件特征的可靠性评估方法和基于测试的可靠性评估方法,接着将以上方法在舰船装备软件构件可靠性评估的过程进行应用。最后,开发了软件构件可靠性评估的工具,实践证明该软件可以极为方便的实现舰船装备软件构件可靠性评估工作,具有重要的工程意义。

参考文献:

[1] Goseva P K,Trivedl K S. Architecture-based approach to reliability assessment of software systems[J].Performance Evaluation Journal,2001,45(2/3):179-204.

[2] Ramamoorthy C V,Bastanl F B. Software reliability-status and perspectives[J]. IEEE Transactions on Software Engineering,1982,8(4):354-371.

[3] 钟德明.通用嵌入式软件仿真测试环境的软件体系结构研究[D].北京:北京航空航天大学,2005.

[4] Parnas D L. The Influence of Software Structure on Reliablity[A]. Proc.1975 Int Conf. Reliable Software[C].1975:358-372.

[5] Shooman M.Structural models for software reliability prediction[A]. Proceedings of the Second International ConferenceSoftwareEngineering[C].1976:268-280.

[6] 蔡开元,白成刚,钟小军.软件构件系统的可靠性评估模型简介[J].西安交通大学学报,2003,37(6):560-564.

[7] 郝红卫.计算机系统软件可靠性预计评估方法及CAD[D].北京:北京航空航天大学,1997,3.

[8] 陆民燕.软件可靠性工程[M].北京:国防工业出版社,2011.

[9] 程明华,姚一平.软件可靠性早期预计方法初步研究分析报告[R].1997,11.

[10] 陈春秀,马力.软件可靠性测试技术研究[J].计算机工程与设计,2010(2):4628-4631.

[11] Cheung R C.A user-oriented software reliability mode[J].Software Engineering IEEE Transactions on 1980,SE-6(2):118-125.

猜你喜欢

舰船构件可靠性
舰船通信中的噪声消除研究
钢筋混凝土构件裂缝控制
基于AK-IS法的航空齿轮泵滑动轴承可靠性分析
风浪干扰条件下舰船航向保持非线性控制系统
讨论如何提高建筑电气设计的可靠性和经济性
舰船测风传感器安装位置数值仿真
合理使用及正确测试以提升DC/DC变换器可靠性
GO-FLOW法在飞机EHA可靠性分析中的应用
基于构件的软件工程技术与理论方法探讨
台日舰船对峙内幕曝光