李 伟 龙 飞 孙续文
(海军大连舰艇学院 大连 116018)
在水面舰艇作战领域,指控(C3I)系统被称为军舰整体战斗力的“倍增器”,舰艇指挥员靠它把信息处理和武器控制连接到一起,必将成为未来信息化海战场上的“指挥神器”[1]。从组成上讲,对任何一种指控系统而言,除了探测与信息处理过程中的硬件设备以外,以分布式操作系统为主体的各类软件承载着指挥与控制的主要功能,其软件质量是指控系统性能优劣的重要指标。
随着科技的进步和人们对系统评价要求的提高,在软件工程理论和方法日渐成熟的背景下,对于指控系统的评价逐渐形成评测结合、以测为主的格局,系统软件的量化评估成为一项亟待解决的重要课题。
舰艇指控系统结构复杂,内容繁多,对软件质量层面的评价首先需要理清评价的范畴,挖掘出最能代表软件系统质量的关键要素。在评价方向上,对指控系统软件质量的评估,不是对具体作战指挥效果的评判,而是在既定战术下考究软件实现的效率;不是仅仅评价单个的软件系统的运行,还要考察系统的外延特性。在评价内容上,一个公认的结论就是,世界上没有一个能够适用于所有软件系统质量进行评估的标准,对于指控系统的软件质量,必须根据实际情况进行深入挖掘。根据GJB5236的界定,软件系统的质量要素可概括为为功能性(正确性)、解算效率、可靠性和外延属性等四大方面[2]。
软件的功能性指标是软件质量的首要因素,即为软件是否满足了最初的设计目标,就指控系统而言,功能性指标主要包括程序代码的正确性、可理解性和堪用性[3]。
软件的正确性是指软件运行或函数的调用是否正确体现了海军战术的基本原则和相关公式要求,可理解性为程序语言使用是否标准规范、可读性如何[4];堪用性是指软件模块是否可用于实际的作战指挥。上述三者互为条件,相互依存,是软件系统价值存在的基础。在小型舰艇或系统组成较为简单时,软件功能性指标有时也集中体现为有限元素解算的精度[5]。
软件系统的解算效率一般包括时间效率和空间效率两方面,对指控系统来讲主要指时间效率。软件系统解算的速度越快,系统反应的时间就越短,通道组织就越有时间保证,这对于防空反导意义尤为重大,解算效率是指控系统高效运转的重要前提。
在量化评估上,解算效率主要表现为完成指定科目解算所用的时间[6]。
稳定性是军用软件的首要要求,主要内容包括软件的可靠性、可维性和可用性。
软件的可靠性是指软件在复杂情况下维持正常运行的能力,一般用平均无故障时间来衡量;可维性是指软件出现故障后成功修复的能力,一般用平均修复时间来衡量;可用性又称有效度,是指系统在需要时能够执行其预定功能的概率,是可靠性和可维性的二元函数[7]。
考虑到战场环境的破坏性,为对抗外力打击可能造成的系统瘫痪,系统一般具有硬件冗余和软件冗余,保证在任何情况下都能进行有效的作战指挥,这也是软件稳定性评估的重要内容。稳定性指标的量化评估可以通过软件测试的方法快速获取,也可以在系统使用中根据装设备使用记录间接获得。
软件系统的外延属性是指软件系统作为一个客体在操作使用中所表现出的人机交互的能力,主要包括可移植性、可修改升级性、可测试性和界面友好灵活性等[8]。
软件的可移植性是指软件模块在不同操作环境下仍能顺畅运行的能力;可修改性是指程序能够被正确修改或升级改造的难易程度;软件的可测试性是指检验软件系统是否能够满足用户需求的难易程度;软件的界面友好灵活性是指用户使用软件的难易程度,最高标准即为“免培训”即可交付使用。软件的外延属性是最难以进行量化评估的指标。
目前来看,软件系统的量化评估还处于起步阶段,既没有权威的标准,也没有统一的步骤和模型,只能实行一事一议,根据具体问题进行具体分析。软件性质、功能和使用环境决定着质量要素的选取,质量要素的重要性也随时间地点的变化而有所不同。在国际上,ISO9000系列和CMM系列也只是对开发过程是否规范和开发能力的认证,并无统一的评估标准。
在质量要素量化评估的过程中,并不是所有指标都简单易行。有的指标概念简单,可以通过公式的形式进行量化,而有的指标却与用户的主观感受紧密相关,无法用数学的形式进行表示。除此之外,质量要素之间还有可能出现内容上的交叉,无法简单进行区分隔离。
我国著名科学家钱学森认为“系统是由相互作用和相互依赖的若干组成部分结合成的具有特定功能的有机整体”,相互作用、相互依赖是系统的重要特点,指控系统软件质量的量化评估,可以借鉴系统理论的相关原理和结论来进行[9]。
根据指控系统特点对软件系统进行分析,挖掘出系统质量要素。首先,将软件系统S分解为P1,P2,⋅⋅⋅Pn等 n 个质量要素,列出判断矩阵 Sn×n,其中,sij即为第i个要素相对于第 j个要素的重要程度,可见,矩阵 Sn×n是一个对称矩阵[10]。
在满足矩阵一致性的前提下,可用Matlab求得矩阵Sn×n最大特征值对应的特征向量:
根据系统理论,n个质量要素相对于软件系统的相对权重分别为e1:e2:…en。
式(1)为经过处理后的标准化向量,满足:
对于软件系统组成的每一部分,可按照相关评估准则,根据软件测试的结果进行量化评估。若某项质量要素包含子要素较多,可进一步增设二级指标。在这种情况下,设某一要素Pi被分解为m个子要素,则判断矩阵Pm×m中元素 pij即为模糊对比值,矩阵Pm×m也是一个对称矩阵,对应的标准化向量记为k。设m个子要素(二级指标)的量化评估值分别为 q1,q2,…qm,则质量要素 Pi的量化评估值为
根据式(1)和式(3),不能直接量化的系统组成部分(质量要素)可以间接获得。
这样,软件系统的最终量化评估结果为
下面按照第1部分分析与第3部分模型具体说明量化评估的实施过程。
1)由合到分,科学界定软件质量要素,并根据系统功能列出判断矩阵。如专家给出的软件质量要素四方面的判断矩阵为
功能性 效率 稳定性 外延属性功能性 1 3/2 4/3 6/5效 率 2/3 1 3/4 5/3稳定性 3/4 4/3 1 5/3外延属性 5/6 3/4 3/5 1
在满足矩阵一致性的前提下可得权重向量为
2)对于可量化评估的质量要素,可按照相关准则和软件测试结果进行量化评估;对于不能直接量化的指标,可根据可量化指标评估值和质量要素之间的权重关系间接获取。
此步骤完成之后,假设得到软件质量要素四部分的量化评估向量为(采用百分制)
3)由分到合,最终评估
则软件系统的量化评估结果为
本模型的主要优点就是能够根据系统功能的特点进行具体分析,通过系统理论科学确定各质量要素间的相互关系,进而间接获取难以直接量化的要素的量化评估值,是一种具有普适意义的评估办法。从世界主要军事强国指控系统发展的情况来看,智能化、分布式开发成为软件设计的主流方向[11],面向对象的开发技术成为主要的技术手段[12],软件工程正在向更深层次发展,而软件质量的评估与管理也逐渐成为一个重要的研究方向。