软件可靠性影响因素权重分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件可靠性影响因素权重分析
吴洪丽;蒋永辉
【摘要】对软件可靠性早期预测模型的研究,首先必须考虑影响软件可能性的主要因素.而影响因素权重的确定不可说是整个早期预测模型的"灵魂".针对主观赋权和客观赋权法的优缺点,提出了基于神经网络和MIV的组合赋权法来分析软件可靠性的影响因素.该方法首先根据主观赋权法得到影响因素的排序,然后利用神经网络的强大的非线性处理能力以及MIV进行客观分析,从而获得更客观更具解释性的权重值和排序.
【期刊名称】《计算机工程与应用》
【年(卷),期】2010(046)033
【总页数】5页(P58-62)
【关键词】可靠性因素;BP网络;平均影响值;权重分析
【作者】吴洪丽;蒋永辉
【作者单位】海南师范大学,信息科学技术学院,海口,571158;中国科学院,成都计算机应用研究所,成都,610041;海南师范大学,信息科学技术学院,海口,571158
【正文语种】中文
【中图分类】TP301
软件可靠性是软件质量的重要特性之一,软件可靠性工程就是一个十分实用的、覆盖软件整个开发过程的软件质量保障技术[1]。

软件可靠性模型是软件可靠性研究
的焦点问题。

针对可靠性模型及其应用展开的研究主要集中在两个方面:关于软件可靠性早期预测模型的研究和关于软件可靠性预测模型的研究。

其中,早期预测模型是指在不知失效数据的情况下,根据软件产品及其开发过程度量预测软件可靠性。

这种模型对于改进软件开发过程、指导软件测试、提高软件可靠性具有重要意义[2]。

目前的
研究成果中,对于早期预测模型成果很少,同时,大多数模型没有考虑软件过程特性,模型的应用范围一般只能局限在一定的子空间中,通用性比较差。

现代软件工程认为,质量形成于过程。

过程的因素是影响软件可靠性的主要因素。

对软件可靠性早期预测模型的研究,首先必须考虑影响软件可靠性的主要因素。

关于这个问题的研究,已经有大量的研究成果[3-15]。

研究者们站在不同的角度去分析,发现影响软件可靠性的原因也是多方面的。

从软件开发的角度而言,影响软件可靠性的主要因素包括:软件规模、运行剖面、软件内部结构、软件可靠性管理、软件可靠性测试与投入、软件可靠性设计技术、软件开发方法和软件开发环境等。

就软件规模而言,规模越大,其可靠性问题就越多。

但遗憾的是,这些因素对软件可靠性的影响至今没有定论。

而影响因素的权重的确定可以说是整个早期预测模型的“灵魂”。

目前关于权重系数的确定方法有数十种之多,根据计算权重系数时原始数据的来源不同,这些方法大致可分为两大类:一类为主观赋权法,其原始数据主要由专家根据经验主观判断得到,如古林法、AHP法、专家调查法、层次分析
法等;另一类为客观赋权法,其原始数据由各指标在被评价单位中的实际数据形成,如均方差法、主成份分析法、离差最大化法、熵值法、代表计数法等。

这两类方法各有优缺点:主观赋权法客观性较差,但解释性强;客观赋权法确定的权数在大多数情况下精度较高,但有时会与实际情况相悖,而且解释性比较差,对所得结果难以给出明确的解释[16]。

鉴于主客观赋权法的优缺点,提出了基于BP神经网络和M IV的综合主、客观赋
权法的第三类方法,即组合赋权法来分析影响软件可靠性的过程因素,以确定各个影响因素对软件可靠性的排序和权值,为后期的建立软件可靠性早期预测模型做准备。

1 主观赋权法
目前对于主观赋权法的研究比较成熟,这些方法的共同特点是各评价指标的权重是由专家根据自己的经验和对实际的判断给出。

但这类方法的主要缺点是主观随意性大。

选取的专家不同,得出的权重系数也不同。

这一点并未因采取诸如增加专家数量、仔细选择专家等措施而得到根本改善。

因而,在某些个别情况下应用单一一种主观赋权法得到的权重结果可能会与实际情况存在较大差异。

但主观赋权法的优点是专家可以根据实际问题,较为合理地确定各指标之间的排序,也就是说尽管主观赋权法不能准确地确定各指标的权重系数,但在通常情况下,主观赋权法可以在一定程度上有效地确定各指标按重要程度给定的权重系数的先后顺序。

2 客观赋权法
鉴于主观赋权法的不足之处,研究者们提出了客观赋权法。

客观赋权法的基本思想是:属性权重应当是各属性在属性集中的变异程度和对其他属性的影响程度的度量,赋权的原始信息应当直接来源于客观环境,处理信息的过程应当是深入探讨各属性间的相互联系及影响,根据各属性的联系程度或各属性所提供的信息量大小来决定属性权重。

这类方法的突出优点是权重系数客观性强,但有时会与实际不符。

在实际情况中,依据上述原理确定的权重系数,最重要的指标不一定具有最大的权重系数,最不重要的指标可能具有最大的权重系数。

神经网络是目前应用比较广范的一种客观权重分析方法。

神经网络是建立以权重描述变量与目标之间特殊的非线性关系模型,对事物的判断分析必须经过一个学习或训练过程,类似于人脑认识一个新事物必须有一个学习过程一样,神经网络通过一定的算法进行训练,将反馈传播(BP)算法引入神经网络中,很好地实现了多层
神经网络的设想。

这种处理方式更符合客观实际,因而得到的结果可靠性更大[17]。

3 基于神经网络和M IV的组合赋权法
主观赋权法在根据属性本身含义确定权重方面具有优势,但客观性较差;而客观赋权法在不考虑属性实际含义的情况下确定权重方面具有优势,但不能体现决策者对不同属性的重视程度,有时会出现确定的权重与属性的实际重要程度相悖的情况。

针对主、客观赋权法各自的优缺点,为兼顾到开发过程的实际情况,同时又力图减少赋权的主观随意性,使对属性的赋权达到主观与客观的统一,进而使决策结果真实、可靠,提出了基于神经网络和M IV的组合赋权法。

3.1 M IV
平均影响值(M ean Impact Value,M IV)被认为是神经网络中评价输入变量影响传出神经细胞最好的指标之一[18]。

M IV是用于确定传入神经细胞对传出神经
细胞影响大小的一个指标,值的正负代表正相关和负相关,绝对值的大小代表影响的相对重要性。

将训练样本每一个输入变量的值±10%,构成2个新的样本,利用仿真函数sim加以模拟,再取模拟值差值的算术平均数,即获得该变量的M IV值。

3.2 组合赋权法思想
组合赋权法的基本思想是:引入M IV,利用神经网络的客观性来分析各个影响因
素对软件残留缺陷数的影响。

如果主观分析和BP网络分析得到的影响因素的权重的序是一致的,则认同主观权重法所得的序,则训练好的神经网络的权重值作为最后的权重分析值;若BP网络所得的序,和主观分析法不一致,则需重新考虑主观权重法所得的结果,同时,利用更多的项目数据来训练神经网络,直到一致。

3.3 算法描述
根据上述原理,结合M IV来进行组合赋权分析,则组合赋权法的算法步骤如下:第一步:运用主观赋权法得到各个影响因素的权重值,根据权重值排序得到影响因素的序。

权重值越大,说明其越重要,则排序越靠前;权重值越小,说明其影响弱,
则排序越靠后。

第二步:运用BP网络和M IV相结合的算法得出每个影响因素对软件可靠性的影
响排序。

第三步:根据两种方法(主观赋权法和客观赋权法)分别得到的影响因素的权重值,判断两种方法得出的结果中各影响因素的排序是否一致。

第四步:如果不一致,则有可能是BP网络在训练过程中陷入到误差面中的局部最小点,没有达到真正的最小点,这就需要采取:重新选择训练数据、增加隐层神经元数、改用动量算法等措施来重新训练、检验网络,得出新的排序,再分析;同时,检查主观赋权法所得的结果并查原因,同时分析是否需要调整排序。

第五步:如果一致,则说明BP网络在训练过程中没有陷入到误差面中的局部最小点,达到了真正的最小点,得出的结果可以信赖。

第六步:利用已训练好的BP网络得到各个影响因素的权重值。

4 实验过程
步骤1运用主观赋权法得到影响因素的权重值和序。

主观赋权法有很多选择,如古林法、AHP法、专家调查法、层次分析法等。

采用
相对权重法来分析。

令:rij是第i个因素的第j份调查表的得分值,则第i个因素在第j次调查中的初
始权值wij为:
其中,n表示第j次调查中,影响因子的数目。

因此对每一次调查,都有不同的人,对于各个影响因素的认识不同,其在给相应影响因素打分的时候其值也不尽相同。

因此,为了消除偏差,对全部调查表(设有m份调查表),取其平均值,即可获
得其最后的权重值:
表1 相对权重法得到影响因素的序ID 1234567891 0排序40 28 1 39 4571 11 12 13 14 15 16 17 18 19 20影响因素开发环境开发工作量软件复杂度软件类别开发难度开发技术水平代码重用率需求跟踪需求更改率需求变更影响设计方法设计变更软件设计文档规模详细设计对需求的满足代码控制开发文档变更频度开发文档质量数据库变更数据库复杂度过程变更频度权重值0.017 54 0.023 31 0.036 85 0.018 77 0.029 57 0.029 05 0.028 80 0.028 19 0.029 59 0.028 84 0.028 60 0.027 17 0.023 85 0.028 09 0.019 28 0.019 10 0.026 99 0.023 75 0.026 73 0.024 85 13681 7 24 12 35 37 18 26 19 20 ID 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40影响因素度量和模型的使用过程偏差过程失控率过程管理成熟度需求的进度状态问题报告的状态完成评审的状态程序员技能程序员的组成结构人员投入人员变更技术适应性技术影响开发队伍的规模应用领域专业知识工作压力团队协作开发人员的综合素质开发团队的经验教育程度权重值0.021 26 0.024 30 0.024 25 0.028 58 0.028 51 0.022 55 0.024 42 0.029 96 0.020 47 0.020 10 0.019 81 0.027 94 0.023 79 0.019 15 0.027 89 0.027 36 0.020 09 0.028 00 0.023 74 0.018 91排序30 22 23 9 10 29 21 2 31 32 34 14 25 36 15 16 33 13 27 38
基于相对权重方法,即可获得每一个影响因素的最后的权重值。

同时,可由此权重值可以得到各个影响因素的序。

由相对权重法所得排序如表1所示。

步骤2使用MATLAB编程,建立BP网络,同时引入M IV。

利用工程数据训练网络,得到影响因素的排序。

使用MATLAB编程,程序如下:
其中:index是代表了输入神经元的编号,对应于表1中的ID。

则根据BP网络和
M IV结合的算法得到影响因子的排序如表2所示。

表2 BP网络和M IV结合算法所得排序ID 1234567891 0排序40 30 1 39排序29 23 24影响因素开发环境开发工作量软件复杂度软件类别开发难度开发技术水
平代码重用率需求跟踪需求更改率需求变更影响设计方法设计变更软件设计文档规模详细设计对需求的满足代码控制开发文档变更频度开发文档质量数据库变更数据库复杂度过程变更频度3671 982 8 11 12 13 14 15 16 17 18 19 20 2251 0 17 26 13 35 37 18 25 19 21 ID 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
36 37 38 39 40影响因素度量和模型的使用过程偏差过程失控率过程管理成熟度
需求的进度状态问题报告的状态完成评审的状态程序员技能程序员的组成结构人员投入人员变更技术适应性技术影响开发队伍的规模应用领域专业知识工作压力团队协作开发人员的综合素质开发团队的经验教育程度22 4 31 32 33 15 11 36 16
20 34 14 27 38
步骤3比较分析,得到权重值。

根据步骤1和步骤2所得的结果,比较分析。

如若一致,则由训练好的神经网络
中导出权重值。

若不一致,则调整步骤1所得结果或是重新训练神经网络。

其详
细的实验过程如图1所示。

图1 组合赋权法分析过程图
根据客观赋权法所得的权重的序,重新分析主观赋权法所得到的序,重新调整主观赋权法所得的序。

发现,客观赋权法所得到的排序,比如:技术影响,排序为25。

在使用主观赋权法时,认为其对软件可靠性的影响排在第11位。

Orelena在其文献[19]中指出,需求跟踪率的变更,将对软件质量产生重要影响。

故,对结果重新处理。

处理1:结合相关的文献研究,以及相关行业专家的意见,重新调整主观赋权法所得到的排序。

调整后的主观赋权法的排序如表3所示。

处理2:增加样本数,重新训练数据、同时改用动量算法等措施来重新训练、检验网络,得到新的排序,再分析,直至一致。

由此,得到影响软件可靠性的过程因素的排序及权重。

如表4所示。

表3 调整后的主观赋权法排序注:带**号的表示引起调整的因素;带*的表示有调整的因素。

ID 3 28主观赋权法排序95861 071 1 24 25 14 38 32 35 33 36 12 17 19影响因素软件复杂度程序员技能需求更改率开发难度需求跟踪**开发技术水平*需求变更影响*代码重用率*设计方法*过程管理成熟度*需求的进度状态*详细设计对需求的满足开发人员的综合素质技术适应性应用领域专业知识技术影响**工作压力*设计变更*开发文档质量*数据库复杂度*1234567891 0 11 12 13 14 15 16 17 18 19 20 ID 20 27 22 23 13 18 39 2 26 21 29 30 37 31 15 34 16 40 41影响因素过程变更频度*完成评审的状态*过程偏差*过程失控率*软件设计文档规模*数据库变更开发团队的经验开发工作量问题报告的状态度量和模型的使用程序员的组成结构人员投入团队协作人员变更代码控制开发队伍的规模开发文档变更频度教育程度软件类别开发环境主观赋权法排序21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
表4 影响软件可靠性的过程因素权重及排序ID 1234567891 0排序40 28 1 39 11 12 13 14 15 16 17 18 19 20影响因素开发环境开发工作量软件复杂度软件类别开发难度开发技术水平代码重用率需求跟踪需求更改率需求变更影响设计方法设计变更软件设计文档规模详细设计对需求的满足代码控制开发文档变更频度开发文档质量数据库变更数据库复杂度过程变更频度权重值0.017 54 0.023 31 0.036 95 0.018 77 0.029 58 0.028 84 0.028 60 0.029 08 0.029 63 0.028 80 0.028 58 0.026 99 0.023 85 0.028 09 0.019 28 0.019 10 0.026 73 0.023 75 0.024 85 0.024 42 46853791 8 25 12 35 37 19 26 20 21 ID 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40影响因素度量和模型的使用过程偏差过程
失控率过程管理成熟度需求的进度状态问题报告的状态完成评审的状态程序员技能程序员的组成结构人员投入人员变更技术适应性技术影响开发队伍的规模应用领域专业知识工作压力团队协作开发人员的综合素质开发团队的经验教育程度权重值0.021 26 0.024 25 0.023 85 0.028 51 0.028 19 0.022 55 0.024 30 0.029 94 0.020 47 0.020 10 0.019 81 0.027 94 0.027 36 0.019 15 0.027 89 0.027 17 0.020 09 0.028 00 0.023 74 0.018 91排序30 23 24 10 11 29 22 2 31 32 34 14 16 36 15 17 33 13 27 38
5 结束语
对软件可靠性早期预测模型的研究,首先必须考虑影响软件可靠性的主要因素。

而影响因素的权重的确定可以说是早期预测模型的“灵魂”。

针对主、客观赋权法各自的优缺点,为兼顾到开发过程的实际情况,同时又力图减少赋权的主观随意性,使对影响因素的赋权达到主观与客观的统一,提出了基于神经网络和M IV的组合赋权法来分析软件可靠性的影响因素。

此算法的分析结合工程数据,将分析所得的影响因素权重值考虑进可靠性早期预测模型中,以期在软件测试之前预测软件可靠性。

【相关文献】
[1]Pham H.Software reliability[M].[S.l.]:Springer-Verlag,2000.
[2]张永强,孙胜娟.基于未确知理论的软件可靠性建模[J].软件学报,2006,17(8):1681-1687.
[3]孙志安,裴晓黎,宋昕.软件可靠性工程[M].北京:北京航空航天大学出版社,2009.
[4]Zhang X,Pham H.An analysis of factors affecting software reliability[J].The Journal of Systems&Software,2000,50(1):43-56.
[5]谢瑞生.软件失效原因分析[J].电子产品可靠性与环境试验,2009(3):13-19.
[6]Jacobs J,van Moll J,Kusters R,et al.Identification of factors that influence defect injection and detection in development of software intensive products[J].Information and
Software Technology,2007,49(7):774-789.
[7]Schneberger S L.Distributed computing environments:Effects on software maintenance difficulty[J].Journal of Systems and Software,1997,37(2):101-116. [8]Evanco W M,Lacovara R.A model-based framework for the integration of software metrics[J].Journal of Systems and Software,1994,26(1):77-86.
[9]Law rence J D,Persons W L,Sicherman A,et al.Assessment of software reliability measurement methods for use in probabilistic task assessment,UCRL-ID-136035[R].Law rence Livermore National Laboratory,1998.
[10]徐仁佐.软件可靠性模型及应用[M].北京:清华大学出版社,1994.
[11]Schulmeyer G G.Handbook of software quality assurance[M].4 ed.[S.l.]:A rtech House Publishers,2007.
[12]胡仁胜.软件可靠性和软件最优发布问题的研究[D].合肥:合肥工业大学,2001.
[13]蔡开元.关于软件可靠性和软件控制论的若干认识[J].中国科学基金,2004(4):11-14.
[14]潘秋菱.基于过程和度量的软件质量管理方法研究[D].合肥:合肥工业大学,2002.
[15]张力.软件公司经营效率、组织特性与市场价值之研究[D].大连:东北财经大学,2006.
[16]梁杰,侯志伟.AHP法专家调查法与神经网络相结合的综合定权方法[J].系统工程理论与实践,2001,21(3):59-63.
[17]王晖,陈丽,陈垦.多指标综合评价方法及权重系数的选择[J].广东药学院学报,2007(5):583-589.
[18]Dombi G W,Nandi P,Saxe J M,et al.Prediction of rib fracture injury outcome by an artificial neural network[J].The Journal of Trauma,1995,39(5):915-921.
[19]Gotel O,Finkelstein A.An analysis of the requirements traceability problem[C]//Proc of the 1st International Conference on Requirements Engineering,1994.。

相关文档
最新文档