一种基于AHP与神经网络的软件代码可控度综合评价方法与流程

文档序号:17159684发布日期:2019-03-20 00:30阅读:475来源:国知局
一种基于AHP与神经网络的软件代码可控度综合评价方法与流程

本发明涉及软件代码可控度评价技术领域,具体涉及一种基于ahp与神经网络的软件代码可控度综合评价方法。



背景技术:

当前尚无针对软件代码可控性定量评价的方法。对软件代码可控性的定量评价,首先需要建立代码可控性度量模型,确定影响代码可控性的度量元,然后基于多个度量元定量评价代码可控度涉及到多因素多指标的建模方法问题。此类建模方法有优序法、模糊综合评价法、ahp方法、神经网络方法等。选择适当的建模方法是软件代码可控性的定量评价的难点。

影响软件代码可控性的因素众多,如何确定合理的度量模型目前尚属空白。确定可控度评价的度量模型后,由于许多度量元之间并非相互独立,不同的度量元对代码可控度影响的权重不同,而且权重系数可能会随着应用对象的不同而发生一定变化,影响评价模型的训练速度和泛化能力。因此需要建立一种综合评价模型,对度量元进行合理的分析利用进而对软件代码可控度进行评价。



技术实现要素:

(一)要解决的技术问题

本发明要解决的技术问题是:如何设计一种可信、有效的软件代码可控度综合评价方法。

(二)技术方案

为了解决上述技术问题,本发明提供了一种基于ahp与神经网络的软件代码可控度综合评价方法,包括以下步骤:

第一步:选取软件代码可控度的相关度量指标;

第二步:分析各度量指标之间的关系,建立系统的递阶层次结构;

首先把问题条理化、层次化,构造出一个有层次的结构模型,在这个模型下,复杂问题被分解为多个元素,这些元素又按其属性及关系形成若干层次,上一层次的元素作为准则对下一层次的有关元素起支配作用,这些层次分为三类:最高层为目标层,只有一个元素,一般是分析问题的预定目标或理想结果;中间层为准则层,包括为实现目标所涉及的中间环节,它由若干个层次组成,包括所需要考虑的准则、子准则;最底层为方案层,包括为实现目标可供选择的各种措施、决策方案;

第三步:对准则层、方案层中同一层次各元素关于上一层次中一准则的重要性进行两两比较,构造两两比较的判断矩阵;

第四步:用判断矩阵计算被比较元素对应该准则的相对权重,并进行判断矩阵的一致性检验;

第五步:计算各层次对于目标的总权重,并进行排序,得到方案对于目标的总排序;

第六步:选出高权重的预设n个度量元作为神经网络的输入;

第七步:准备m个待测软件,收集各软件n个度量元的度量数据,并对数据进行归一化;

第八步:选定神经网络的类型、隐含层数、隐含层节点个数,输出层为代码可控度量值;对选定的网络进行初始化,置所有可调参数为(0,1)区间中的一个随机值;

第九步:将度量数据作为神经网络的输入值,软件代码可控度量值作为神经网络的输出,训练神经网络,训练基础是使网络实际输出与目标输出之间的误差平方和小于一个预先制定的误差值ξ;

第十步:循环执行第九步,继续训练神经网络,直到神经网络输出的软件代码可控度量值的预测结果与该软件的实际结果的误差达到误差要求。

优选地,第一步中,采用以下度量模型:

表1

软件代码可控度的相关包括表1中的a1~a2,b11~b25,c11~c39。

优选地,第八步中,选定神经网络的类型为bp神经网络。

优选地,第八步中,选定隐含层数为1层。

优选地,第九步中取误差值ξ为1.0×10-4

(三)有益效果

本发明给出了合理的软件代码可控性度量模型,并提出了用层次分析法获取权重作为神经网络输入的软件代码可控性综合评价模型,解决了复杂系统建模时,由于影响因素过多,把它们都作为神经网络的输入,会增加网络的复杂度,降低网络性能,影响计算准确度的问题。工程实例应用的结果表明,本发明针对复杂软件代码,采用层次分析和神经网络相结合的可控度评价结果是可信的、有效的。

附图说明

图1是本发明的递阶层次结构示意图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

本发明通过将ahp与神经网络相结合来建立软件代码可控度综合评价方法:首先利用层次分析法作为人工神经网络的前处理,通过定量与定性相结合的专家评价手段将多个度量元的重要程度数量化,以其结果作为神经网络的输入。以提高传统神经网络评价模型的收敛速度和评价精度。

基于以上思路,本发明提出的一种基于ahp与神经网络的软件代码可控度综合评价方法包括以下步骤:

第一步:选取软件代码可控度的相关度量指标;

例如可以采用以下度量模型,具体模型见表1。

表1评价采用的度量模型

第二步:分析各度量指标(包括表1中a1~a2,b11~b25,c11~c39)之间的关系,建立系统的递阶层次结构;

首先把问题条理化、层次化,构造出一个有层次的结构模型。在这个模型下,复杂问题被分解为多个元素,这些元素又按其属性及关系形成若干层次,上一层次的元素作为准则对下一层次的有关元素起支配作用。这些层次可以分为三类:最高层(目标层):只有一个元素,一般是分析问题的预定目标或理想结果;中间层(准则层):包括了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需要考虑的准则、子准则;最底层(方案层):包括为实现目标可供选择的各种措施、决策方案等如图1所示。

第三步:对准则层、方案层中同一层次各元素关于上一层次中某一准则的重要性进行两两比较,构造两两比较的判断矩阵;

第四步:用判断矩阵计算被比较元素对应该准则的相对权重,并进行判断矩阵的一致性检验;

第五步:计算各层次对于决策目标的总权重,并进行排序。最后得到方案对于决策目标的总排序;

第六步:基于上述层次分析法选出高权重的n个度量元作为神经网络的输入;

第七步:准备m个待测软件,收集各软件n个度量元的度量数据,并对数据进行归一化;

第八步:选定神经网络的类型(推荐bp神经网络)、隐含层数(推荐1层)、隐含层节点个数,输出层为代码可控度量值;对选定的网络进行初始化,置所有可调参数(权和阈值)为(0,1)区间中的一个随机值;

第九步:将度量数据作为神经网络的输入值,软件代码可控度量值作为神经网络的输出,训练神经网络。训练基础是使网络实际输出与目标输出之间的误差平方和小于一个预先制定的误差值ξ,取该误差值为1.0×10-4

第十步:循环执行第九步,继续训练神经网络,直到神经网络输出的软件代码可控度量值的预测结果与该软件的实际结果的误差达到误差要求。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1