发明内容
本发明的目的是提供一种面向软件演化的可信性动态评估方法,基于分布式评估框架的思想,利用关联矩阵对可信属性间的内在联系及可信属性相对权重的变化规律进行分析,提出应用于软件可信性评估指标系统自主配置的自适应重构器,给出软件可信性评估及演化模型的整体框架,实现面向软件演化的可信软件的动态综合评估。
为了达到上述目的,本发明所采用的技术方案为:
面向软件演化的可信性动态评估方法,其特征在于:遵循软件可信性评估的总体目标,结合领域专家知识,分析待评软件的相关技术文档,获取完备可信需求集TR,并提取可信需求集TR中的可信指标以获得一个完备的确定性的可信指标集Xe,依据可信指标集Xe中各可信指标的层级特征,采取主观判断的方式求解可信指标间的权重Xw后,构建初始状态下的可信性评估指标系统TEIS:Xe×Xw→TEIS;遵守决策独立性条件,制定符合用户需求的可信决策规则集;在计算机中通过软件演化分析,监测软件实体状态,若发生软件演化,则获取演化激励信号,并获取演化激励后在计算机中生成的状态转移函数CSi→j(τ);当计算机发出演化激励信号的同时,在计算机中基于重构框架schemes,运用自适应重构算法SAR进行可信性评估指标系统的自主重构:TEIS→TEIS*;通过软件测试或软件分析、软件建模预测分析或软件定性评价采集原始评估数据,并对TEIS*进行一致性预处理,获得统一识别框架下的初始可信证据集Xm;遵循可信指标间的复杂层级特征,在计算机中构建软件可信性演化推理模块,调用可信性演化推理模块对可信证据集Xm进行可信性求解,得到量化的可信性综合评价V;在可信决策规则集的指导下,依据量化后的可信性综合评价V,通过使用可信决策规则集制定可信性综合决策,并进一步制定面向待评软件的可信性综合决策。
所述的面向软件演化的可信性动态评估方法,其特征在于:所述总体目标为全面评价系统软件的多维可信属性。
所述的面向软件演化的可信性动态评估方法,其特征在于:所述演化激励是指当发现软件实体状态发生演化时,由计算机发出的一个演化讯号。
所述的面向软件演化的可信性动态评估方法,其特征在于:所述原始评估数据针对可信指标集Xe中的底层指标展开。
所述的面向软件演化的可信性动态评估方法,其特征在于:所述可信性综合评价V表示一个完备的确定性的可信性评估结果集。
本发明方法具体包括以下步骤:
(1)分析待评软件的相关技术文档,通过获取的完备可信需求集TR提取可信指标集Xe,再依据可信指标间的层级特征得到可信指标间的权重Xw,综合进行初始可信指标系统TEIS的构建,其中包括以下步骤:
(1.1)根据不同的应用背景选择或定义不同的度量指标,并定义一个开放的可信指标数据库。
可信指标可以被看作是指标树中的结点Tindex。与传统指标树结点相比,int型参数FLAG用以标记指标结点的类型,FLAG=0表示定量指标,FLAG=1表示为定性指标;int型参数weight用以标记指标权重。
依据度量方式的不同,将指标分为定性(qualitative index)和定量(quantitativeindex)两种。为了便于本发明的评估信息操作,构建一个统一的数据类型TIType。根据指标类型的不同,结构内部的变量具有不同的定义。string型参数unit用以标记指标的度量单位,若为定性指标,该参数设置为空;string型参数metricType用以标记指标的度量方式。
上述程序能实现的目的:通过上述定义,将所有可信指标的信息进行数字化存储。通过预定义或用户输入,数据库中用于度量可信软件的指标得到不断累积和修正,便于不同软件可信评估指标树的构造,可信评估指标树是指具有树状逻辑结构的可信性评估指标系统。
(1.2)在定义开放的可信指标数据库基础上,采用树型逻辑结构,在计算机中设计实现递归的可信指标树生成算法CreateITree的软件模块。
在实现递归的可信指标树生成算法CreateITree算法的软件模块中,以结点“TSE为Tindex头结点的指标树即为所需。待评软件的可信评估指标树建立之后,将每个Tindex父结点下的所有Tindex子结点看作一个子集,运用AHP方法求解权重向量w,即可赋值NIT.Weight=w。
(2)通过构建初始状态下的指标系统TEIS,依据决策独立性条件,制定符合用户需求的可信决策规则集;可信决策规则集是指支持软件用户制定可信性决策的规则集合。可信决策规则集通常是由评估专家依据软件应用和开发背景,以用户需求为导向,采用群决策的模式进行制定。
可信性决策规则集通常是对软件可信性评估推理结果的具体阐释,并为专家的终极决策提供有效支持.在实际操作中,为了保证制定的改进策略切实有效,需要专家以软件可信性需求为基准,不断细化和优化决策规则,提升其适用性和准确性。
(3)软件运行状态的迁移将导致软件的可信需求不断发生变化,因此需要对由软件演化导致软件状态的变动进行动态检测(state inspection):
对软件演化背景下的可信性评估而言,ti时刻下软件实体的状态记为:S<ti,tri,TEIS(Xe,i,Xw,i)>,其中:ti表示软件的当前运行时刻,tri表示第i时刻下的软件可信需求,TEIS(Xe,i,Xw,i)为对应的指标系统,Xe,i和Xw,i分别为第i时刻下的可信指标集和指标权重集。待评软件运行于时间区间(ti,tj]内并发生演化,状态转移函数记为:CSi→j(τ)=S<ti,tri,TEIS(Xe,i,Xw,i)>→S<tj,trj,TEIS(Xe,j,Xw,j)>,τ为激励参数,0≤i≤n,e,w,是对引起演化因素的量化衡量,通过状态转移函数的变化检测软件状态的变动。
(4)获取软件演化激励后,通过重构框架Schemes运用自适应重构算法SAR进行软件可信指标系统TEIS的自主重构,其中包括以下步骤:
建立关联度及非对称TA关联矩阵。TA是指软件可信性包含所有非功能性属性。关联度及非对称TA关联矩阵定义如下:
假设软件的可信属性集合为TA={a1,...,an}。
关联度Cij∈(-1,1)是指可信属性ai对aj的量化关联程度,且Cij≠Cji。若Cij>0,说明ai对aj正相关(相辅);若Cij=0,说明ai对aj不相关(完全独立)。若Cij<0,说明ai对aj负相关(互斥),式中i、j是某两个可信属性的下标,i、j∈[1,n],关联度及TA关联矩阵=[Cij]n*n是指软件所有可信属性间关联度的非对称的集合矩阵。
(4.1)重构框架Schemes
定义一种关联度及非对称TA关联矩阵间权重自调整方法:
首先定义TA间相对权重集W={w1,...,wi,...,wn},具体操作如下:
(4.1.1)删除TEIS中的TAai
a如果关联矩阵的第i行全为0,则可直接删除ai,而不会对其他TA造成影响,但会影响TEIS的结构,需要重新求解剩余TA的权重。
令at(t=1,...,n,t≠i)为剩余的TA,则删除ai后,at的相对权重变为:
wt′=(nwt+wi)/n,t=1,...,n,t≠i.
b如果关联矩阵的第i行至少存在一个不为0,则删除ai会对TEIS的结构及其他属性造成影响。
令AC
i是由与a
i相关的TA组成的有限集,|AC
i|为集合中元素的个数,a
t∈AC
i是与a
i相关的TA,
是与a
i不相关的TA,C
it是a
i→a
t的关联度,删除a
i后,a
t和a
x的相对权重分别变为:
显然有0≤wt′,wx′≤1。
(4.1.2)增加TEIS中的TAai
增加一个新的可信属性ai时,首先要提供与之有直接关联的TA,并给出相应的Cit(t=1,...,n)和Cti(t=1,...,n),进而形成新的关联矩阵。增加ai后,采用群决策的方式进行权重计算。
(4.1.3)TA间权重修正
发生软件演化时,同一TA在保障软件可信性中所呈现的重要程度会发生较大变化,需要采取权重修正的方式进行调节。
若ai为软件S的关键可信属性,A是保障其可信所需考察的完备TA集,则需满足:
时,w
i≥w
j恒成立。
令ai是关键可信属性,wi和wi’分别表示ai在软件状态Sk和Sk+1下的权重。
ACi是由与ai相关的TA组成的有限集,at是与ai相关的TA,ax是与ai不相关的TA,wt和wx分别表示它们在Sk状态下的权重,Cit是ai→at的关联度,则at和ax在Sk+1状态下的权重可以采用下式求解:
通过关联矩阵对可信属性间的内在联系的分析,即可得到完整的配置重构框架Schemes。
(4.2)在以上TA增减及TA间权重自调整方案的框架下,在计算机中定义一种面向软件演化的TEIS动态自适应重构算法SAR,
所述TEIS动态自适应重构算法SAR通过检测软件实体状态,获取演化激励,判别可信性评估指标系统的调整方式:仅需调整可信属性间相对权重、增加新可信属性及删除某可信属性,分别运用上述的基于关联矩阵的TA间权重自调整方法,最终实现可信性评估指标系统的动态自适应重构。
(5)按照步骤(4)后获得新状态下的软件TEIS,需要进一步开展软件进行可信演化推理,并对获得的基础信息进行一致性转换,具体包括以下步骤:
若软件运行于一定的稳态环境中,且在有效时间内具有可持续性和相容性,采集原始数据I={I1,I2,...,IM}。数据采集方式包括:软件测试或代码分析、软件模型预测或专家定性评价。
在获得原始数据之后,运用基于效用理论的主/客观信息一致性转换技术,获得统一识别框架Ω={h1,h2,...,hM}下的初始证据集Xm。其中,依据起源的不同,可以分为主观证据和客观证据。
(6)通过监测软件实体S的运行状态,获取TR演化激励,再利用在自适应重构算法基础上构建的自适应重构器(TEIS Adaptive reconstruction)装载和配置重构框架Schemes以进行TEIS的自主重构构建,包括以下步骤:
(6.1)为了实现软件可信性评估演化,调用基于TEIS自适应重构的软件可信性评估演化算法STEE,
算法STEE中,令软件M的实体状态集为S={S1,...,St},当前状态为Si(i∈[1,t])。析取Si状态下软件的可信性需求,提取对应的可信性评估指标,求解指标间相对权重,构建初始TEIS,并采集可信证据,调用层级递推算法获得Si状态的可信性评估结果;检测软件实体状态,若发生转移Si→Si+1,调用SAR算法实现软件可信性评估指标系统的动态自适应重构,并再次采集证据,求解Si+1状态的可信性评估结果。如此反复,直至获得所有状态S={S1,...,St}下的软件可信性评估结果。
通过调用STEE算法(可以在软件连续状态下开展可信性动态评估,获得一个完备的可信性评估结果集。
(6.2)利用证据理论中的分布式评估框架和证据合成规则,定义一个用于软件可信性评估的层级递推算法HRA,将采集到的可信证据带入层级递推算法HRA,结合可信性评估演化算法STEE构建软件可信性演化推理模块,算法的实现过程及核心步骤表述如下:
Step 1令Ω={h
s,1≤s≤S}为待评软件的可信性评估统一识别框架,各评价等级的效用为V={v
s,(1≤s≤S)},评估指标系统TEIS=(X
e,X
m,X
w,subelem,indeva,weis),其中:X
e={e
r,X
em,X
el},e
r是软件可信性综合评价指标,X
em={em
1,...,em
n}是软件的可信属性或子可信属性,X
el={{el
p},{el
q}}(p,q∈[1,m]),el
p和el
q分别表示定量和定性叶子指标。EM={em
x}(1≤x≤X)为参与定性叶子指标评价的专家集合,专家权重为
Step 2对每个指标层级H
t(1≤t≤N),求得指标的相对权重,定义为
同时,采集原始评估信息,并转换为Ω上的基本信念分配BBA,定义为
令Ω为识别框架,S为Ω上的证据源,则证据源的基本信念分配BBA定义为函数m:2
Ω→[0,1],满足
若焦元A都是单基焦元,则称m(A)为贝叶斯BBA.
Step 3求得联合系数π,计算叶子指标上经相对权重和折扣联合调整后的BBA
Step 4执行群体意见集结。对定性叶子指标elq,对专家意见进行证据合成,调用ER解析合成算法求得定性叶子指标上的合成评价
将原BBA中的无知空间按来源的不同进行划分,调整为可以被直接应用于ER解析合成算法的新BBA,再结合相对权重
求得调整后待合并的BBA
所述待合并的BBA定义函数如下:
mw(hp)=wimi(hp),p=1,...,P
Step 5对指标层级H
N指标上的BBA进行证据合成,求得层级H
N-1上指标的BBA
再结合指标上的相对权重
求得调整后BBA
Step 6如果N>1,则N=N-1,转Step 5;否则,向下执行;
Step 7执行最后一次证据合成,求得待评软件的可信性综合评价
可信性综合评价
是指最后证据合成的结果,不是最终的确定性的可信性综合评价,而是一个在指标“可信性”上的不确定性的可信性评价,
Step 8量化评价,提供更为直观的定量评估数据。依据统一评价等级h
s的效用值,使用下式计算所有指标的评价值
其中
表示的是可信性综合指标上的BBA,
表示的是可信属性和子可信属性上的BBA,
表示的是叶子指标上的BBA。
层级递推算法HRA中的证据合成使用Dempster合成规则,模型最终以量化后的评价值方式给出软件的可信性评估结果。
(7)运用全局灵敏度方法找出导致软件失信或可信度较低的关键因子,并制定可信性改进策略。
本发明其特点和优点如下:
(1)软件演化背景下的可信性评估:作为传统方法难以应对的难题,软件演化背景下可信性评估指标系统的频繁失效在本发明中得以有效解决。应对该问题的核心部件是一种基于关联矩阵的软件可信性评估指标系统动态自适应重构器。
(2)方法的普适性:基于开放的可信性评估指标系统构建的评估模型,以及面向多维可信属性的多个经典算法的设计与实现,使得本发明普遍适用于当前复杂系统软件的可信性评估过程。
(3)不确定性因素的有效处理:复杂系统软件的可信性评估过程具有不确定性特征。证据理论中基本信度分配、证据合成规则、分布式评估框架等的合理应用,将保证本发明适用于处理不确定性环境下的可信性评估问题,也提高了评估结果的准确性。
对运行于繁杂工业现场的规模庞大、体系结构复杂、可信需求较高的软件而言,软件演化将给可信性评估模型的适用性提出新的较高的要求。本发明的研究与应用,将为软件演化背景下的可信性动态评估问题提供一种便捷、有效的解决方案,克服了传统模型在动态性、普适性及不确定性方面所存在的不足,具有重要的实际应用价值。
具体实施方式
本发明主要提供一种面向软件演化的可信性动态评估方法。本方法在分析现有可信软件评估需求的基础上,综合考虑软件演化过程中可信性评估指标系统失效、可信证据推理无法正常开展等问题,设计实现基于关联矩阵的可信性评估指标系统自适应重构器,并在此基础上给出了一种面向软件演化的可信性动态评估方法,主要分为七个步骤:第一,遵循复杂系统软件可信性评估的总体目标,以不确定性软件可信性评估的推理逻辑及演算过程为理论基础,定义一个面向软件演化的软件可信性评估过程;第二,结合领域专家知识,分析待评软件的相关技术文档,获取完备可信需求集TR,并进一步提取可信指标集Xe;依据可信指标间的层级特征,采取主观判断的方式求解可信指标间的权重Xw,并进一步构建初始状态下的可信性评估指标系统(trustworthiness evaluation index system,TEIS):Xe×Xw→TEIS;第三,遵守决策独立性条件,制定符合用户需求的可信决策规则集;第四,通过软件演化分析,监测软件实体状态。若发生软件演化,则获取演化激励,生成状态转移函数CSi→j(τ);第五,基于重构框架schemes,运用自适应重构算法SAR进行指标系统的自主重构:TEIS→TEIS*;第六,采集原始评估数据并进行一致性预处理,获得统一识别框架下的初始可信证据集Xm;第七,遵循可信指标间的复杂层级特征,构建软件可信性演化推理模块,并调用该模块进行可信性求解,得到量化的可信性综合评价;第八,在可信决策规则集的指导下,制定面向待评软件的可信综合决策。
下面对上述基于证据理论不确定性推理模型的软件可信性评估方法的过程的八个步骤分别进行详细描述。
在步骤(1)中,定义一个面向软件演化的软件可信性评估过程。具体操作如下:
定义的模型如图1所示,图中所示的评估过程适用于软件实体在发生软件演化状态下的可信性评估,而在连续软件演化状态背景下的软件可信性评估及过程应该是由一系列这样的子过程组成的。
主要包括如下几个步骤:
(1-1)结合领域专家知识,分析待评软件的相关技术文档,获取完备可信需求集TR,并进一步提取可信指标集Xe;依据可信指标间的层级特征,采取主观判断的方式求解可信指标间的权重Xw,并进一步构建初始状态下的可信性评估指标系统(trustworthiness evaluation index system,TEIS):Xe×Xw→TEIS;
(1-2)遵守决策独立性条件,制定符合用户需求的可信决策规则集;
一个简单的可信性决策规则集如表1所示,其中v表示可信性综合评估值,g(v)表示可信性等级函数,dr(v)表示决策规则函数。
表1可信性决策规则集
(1-3)通过软件演化分析,监测软件实体状态。若发生软件演化,则获取演化激励,生成状态转移函数CSi→j(τ);
(1-4)基于重构框架schemes,运用自适应重构算法SAR进行指标系统的自主重构:TEIS→TEIS*;
(1-5)采集原始评估数据并进行一致性预处理,获得统一识别框架下的初始可信证据集Xm;
(1-6)遵循可信指标间的复杂层级特征,构建软件可信性演化推理模块,并调用该模块进行可信性求解,亦即得到量化的可信性综合评价V;
(1-7)在可信决策规则集的指导下,制定面向待评软件的可信性综合决策。
在步骤(2)中具体描述了如何定义一个基于多维可信属性的多尺度量化指标系统(trustworthiness evaluation index system,TEIS),下面详细说明之:
(2-1)不同的应用背景需要选择或定义不同的度量指标,由此本发明定义一个开放的可信指标数据库。
可信指标可以被看作是指标树中的结点Tindex,结构定义如下:
typedef struct NIT{//Node of index tree-NIT
int ID;//index ID
string name;//index name
boolean isBaseNode;//is or not is base index
TIType*iType;//qualitative or quantitative
NIT*father;
NIT[]*child;
int weight;
int FLAG;//FLAG=0 or 1 denotes the type of index is
quantitative or quantitative respectively.
}
依据度量方式的不同,将指标分为定性(qualitative index)和定量(quantitativeindex)两种。为了便于本发明的评估信息操作,构建一个统一的数据类型TIType。根据指标类型的不同,结构内部的变量具有不同的定义:
typedef struct TIType{//type of trusted index
string[]indexdim;//index dimension
string unit;//qualitative index’s unit is null
string metricType;//forecast modeling or measure for
quantitative index and expert
judgment for qualitative index
}
通过上述定义,将所有可信指标的信息进行数字化存储。通过预定义或用户输入,数据库中用于度量可信软件的指标得到不断累积和修正,便于不同软件可信评估指标树的构造。
(2-2)在定义开放的可信指标数据库基础上,采用树型逻辑结构,进行可信指标树生成算法(CreateITree)。
CreateITree(NIT*INDB){
Traverse index node database INDB and get the head
node TSE;
NIT FNode=TSE;
Insert(FNode){
if(FNode.isBaseNode)break;
For(i=0;i<INDB.length-1;i++){
If(INDB[i].father==FNode.ID){
Fnode.child[j]=INDB[i].ID;
Insert(INDB[i]);
j++;}
}
}
NIT CheckNode=TSE;
Check(CheckNode){
if(CheckNode){
for(int i=0;i<CheckNode.child[].length-1;i++){
if(CheckNode.child[0]==null)
if(!CheckNode.isBaseNode)return ERROR;
Check(CheckNode.child[i]);}
}
}
执行CreateITree算法后,以TSE为头结点的指标树即为所需。函数Insert是指标树的建立函数,Check用来检查指标树是否完整,二者皆采用递归实现。待评软件的可信评估指标树建立之后,将每个父结点下的所有子结点看作一个子集,运用AHP方法求解权重向量w,即可赋值NIT.Weight=w。
一个较为典型的可信软件评估指标树如图2所示,其中,TSE(Trustworthysoftware evaluation)是软件可信的综合度量,提供用户对软件可信状态的综合认识。Ai代表软件的可信性质,是软件实体可信所应具备的所有非功能性属性。Eij表示”叶子”指标,是原始评估信息的采集点。权重向量wi和wij分别表示指标间的相对重要程度,并满足归一化。
本发明的步骤(3)具体操作如下:可信性决策规则集通常是对软件可信性评估推理结果的具体阐释,并为专家的终极决策提供有效支持。在实际操作中,为了保证制定的改进策略切实有效,需要专家以软件可信性需求为基准,不断细化和优化决策规则,提升其适用性和准确性。
本发明的步骤(4)具体操作如下:对软件演化背景下的可信性评估而言,ti(0≤i≤n)时刻下软件实体的状态记为:S<ti,tri,TEIS(Xe,i,Xw,i)>,其中:ti表示软件的当前运行时刻,tri表示第i时刻下的软件可信需求,TEIS(Xe,i,Xw,i)为对应的指标系统,Xe,i和Xw,i分别为第i时刻下的可信指标集和指标权重集。待评软件运行于时间区间(ti,tj]内并发生演化,状态转移函数记为:CSi→j(τ)=S<ti,tri,TEIS(Xe,i,Xw,i)>→S<tj,trj,TEIS(Xe,j,Xw,j)>,τ为激励参数,是对引起演化因素的量化衡量。
本发明的步骤(5)如下:
获取软件演化激励后,通过重构框架Schemes运用自适应重构算法SAR进行软件可信指标系统TEIS的自主重构,其中包括以下步骤:
本发明借鉴工程管理领域中,研究相关背景下项目选择问题的依赖矩阵(dependency matrix)的设计理念,提出关联度及非对称TA关联矩阵(TA incidencematrix,TAIM)的概念。关联度Cij∈(-1,1)是指可信属性ai对aj的量化关联程度,且Cij≠Cji。若Cij>0,说明ai对aj正相关(相辅);若Cij=0,说明ai对aj不相关(完全独立)。若Cij<0,说明ai对aj负相关(互斥),
设某软件TEIS中包含了5个TA(a1...a5),对应的关联矩阵TAIM=[Cij]5×5,如图3所示。其中,本发明将语义信息简化成了TA间是否存在直接交互以及交互的方向语义,有利于TEIS重构中波及效应的研究。
(5-1)重构框架Schemes
传统方法中,软件每发生一次状态转移时,都需要通过群体专家主观判断集结的方式求解新的TA间权重,过程繁琐且准确性较差。本发明将给出一种基于关联矩阵的TA间权重自调整方法。
关联度Cij∈(-1,1)是指可信属性ai对aj的量化关联程度,且Cij≠Cji。若Cij>0,说明ai对aj正相关(相辅);若Cij=0,说明ai对aj不相关(完全独立)。若Cij<0,说明ai对aj负相关(互斥)。
定义TA间相对权重集W={w1,...,wi,...,wn},具体操作如下:
(5-1-1)删除TEIS中的TA ai
a如果关联矩阵的第i行全为0,则可直接删除ai,而不会对其他TA造成影响,但会影响TEIS的结构,需要重新求解剩余TA的权重。
令at(t=1,...,n,t≠i)为剩余的TA,则删除ai后,at的相对权重变为:
wt′=(nwt+wi)/n,t=1,...,n,t≠i.
b如果关联矩阵的第i行至少存在一个不为0,则删除ai会对TEIS的结构及其他属性造成影响。
令AC
i是由与a
i相关的TA组成的有限集,|AC
i|为集合中元素的个数,a
t∈AC
i是与a
i相关的TA,
是与a
i不相关的TA,C
it是a
i→a
t的关联度,删除a
i后,a
t和a
x的相对权重分别变为:
显然有0≤wt′,wx′≤1。
(5-1-2)增加TEIS中的TAai
增加一个新的属性ai时,首先要提供与之有直接关联的TA,并给出相应的Cit(t=1,...,n)和Cti(t=1,...,n),进而形成新的关联矩阵。增加ai后,仍需采用群决策的方式进行权重计算。
(5-1-3)TA间权重修正
发生软件演化时,同一TA在保障软件可信性中所呈现的重要程度会发生较大变化,需要采取权重修正的方式进行调节。
若a
i为软件S的关键可信属性,A是保障其可信所需考察的完备TA集,则需满足:
时,w
i≥w
j恒成立。
令ai是关键可信属性,wi和wi’分别表示ai在软件状态Sk和Sk+1下的权重。
ACi是由与ai相关的TA组成的有限集,at是与ai相关的TA,ax是与ai不相关的TA,wt和wx分别表示它们在Sk状态下的权重,Cit是ai→at的关联度,则at和ax在Sk+1状态下的权重可以采用下式求解:
通过关联矩阵对可信属性间的内在联系的分析,即可得到完整的配置重构方案Schemes。
(5-2)在以上TA增减及TA间权重自调整方案的框架下,本发明提出一种面向软件演化的TEIS动态自适应重构算法。
TEIS自适应重构算法SAR(Self-Adaptive Reconstructing Algorithm)
SAR(M,S<ti,tri,TEIS(Xe,i,Xw,i)>,tj,,TAIMi){
/*函数名,输入:软件名,初始状态,演化时刻,激励参数及关联矩阵*/
int FM=GetNeed(ti,tj);
/*提取TEIS重构的种类*/
While(tri trj){
IF(FM==1)/*仅需权重调整*/
Xw,j=Adjust(Xw,i,wc,TAIMi);
/*wc为待调整TA的新权重,TAIMi为关联矩阵*/
ELSEIF(FM==2){/*增加可信属性a*/
Xe,j=Add(Xe,i,a);
TAIMj=Recons(TAIMi,a);
/*采取专家群决策模式重构关联矩阵*/
Xw,j=Adjust(Xw,i,wa,TAIMj);
}
/*wa为新TA的权重,TAIMi为新关联矩阵*/
ELSE{/*删除可信属性a*/
Xe,j=Del(Xe,i,a);
TAIMj=Recons(TAIMi,a);
Xw,j=Adjust(Xw,i,wa,TAIMj);
}
}
IF(CSij())
TEIS(Xe,j,Xw,j);/*TEIS重构*/
END.
算法中,Adjust()函数运用自适应重构框架中提出的方法实现权重调整,Recons()函数则是被用来实现TAIM的矩阵压缩或扩展。
以上本发明通过调用基于重构框架schemes的自适应重构算法SAR就可以实现了对TEIS的自主重构。
本发明的步骤(6)是:
获得新状态下的软件TEIS,需要进一步开展软件进行可信演化推理,并对获得的基础信息进行一致性转换,具体包括以下步骤:
若软件运行于一定的稳态环境中,且在有效时间内具有可持续性和相容性,采集原始数据I={I1,I2,...,IM}。数据采集方式包括:软件测试或代码分析、软件(可靠性或可用性)模型预测或专家定性评价。
在获得原始数据之后,本发明运用基于效用理论的主/客观信息一致性转换技术,获得统一识别框架Ω={h1,h2,...,hM}下的初始证据集Xm。可信证据采集与转换过程如图4所示。
在评估过程中,效用值是以评估专家的现状为基础的精神感受值。若把某评估的结果记为X,则该结果对于评估专家的效用值记为u(X)。效用值具有客观性和主观性,本发明采用基于效用的信息转化方法来解决可信软件评估过程中存在的多量纲信息融合问题。
(1)定性指标
对于定性指标而言,不同的评估专家(evaluation making)对同样的一组评价等级会有不同的理解或者偏好,即不同的效用函数。利用加性效用函数u(S(a))=∑βnu(Hn)可以计算专家给出评价的效用值,其中βn代表专家对该指标评价等级Hn的置信度。例如,专家2对定性指标a给出的评价信息为S(a)={(average,0.4),(good,0.5),(excellent,0.1)},则该信息对应的效用为
u(S(a))=u(average)×0.4+u(good)×0.5+u(excellent)×0.1
=0.65×0.4+0.85×0.5+0.95×0.1。
=0.78
经效用转换,可以将定性指标上的评价信息进行合理量化,并保证转换后的信息具有统一的量纲。
(2)定量指标
传统的定量数据转换技术大多忽视了专家或用户的主观认识。若在实际应用中直接采用①式将原始信息vrow转换为一个[0,1]之间的数,往往可能造成数据转换失真,得不到用户希望达到的值。
①
例如,软件可靠性常用的度量指标是MTTF,一般可以队为MTTF的预测数据越大所反映出软件的可靠性越好。但通过建模计算获得的预测值的增长趋势往往不是线性的,即同样大小的不同区间(如[20,70]和[200,250])可能反映出不同的”好”的程度。若采用①式进行转换,可能会歪曲专家或用户的真实意图。所以定量指标的评估数据也应采用基于效用的转换方法。
当获得评估专家对定量指标e的分段效用函数后,原始评估数据ve的效用u(ve)可以通过②式计算。
②
通过上述方法,指标的效用u(e)就可作为具有统一量纲的软件度量信息。为了便于使用证据理论的方法进行评估,需要建立一个统一的可信评估效用等级H={Hi,i=1,...,6}={0,0.2,0.4,0.6,0.8,1}。评估专家对各指标在效用等级H上的置信度可通过下式获得:
本发明的步骤(7)是:
通过监测软件实体S的运行状态,获取TR演化激励,再利用自适应重构器(TEIS Adaptive reconstruction)装载和配置重构方案(Schemes)以进行TEIS的自主重构,构建,包括以下步骤:
(7-1)为了实现软件可信性评估演化,调用基于TEIS自适应重构的软件可信性评估演化算法STEE,用来构建软件可信性演化推理模块。
STEE(M,S){
/*输入软件实体及运行状态集*/
FOR(所有Si S)DO
析取Si状态下的可信需求集TR<M(Si)>;
/*M(Si)表示软件M运行于Si状态下.*/
/*<M(Si)>是状态戳,描述对应变量适用的背景及运行状态.*/
IF(TR<M(Si)>NULL)THEN{
Xe=Elicit(TR<M(Si)>);/*可信指标提取*/
Xw=GetWeight(Xe);/*相对权重求解*/
TEIS<M(Si)>=Construct(Xe,Xw);/*TEIS初始构建*/
Xm=InfoCollect(M(Si),TEIS<M(Si)>);/*可信证据采集*/
TEIS<M(Si)>×Xm V<M(Si)>;
/*运用HRA进行可信性评估求解*/
}
IF(StateTrans(Si,Si+1)==TRUE)/*发生状态转移*/
TEIS<M(Si+1)=SAR(M,S,TEIS<M(Si)>,TAIM<M(Si));
/*TEIS重构*/
ENDFOR;
输出V={V<M(Si)>,Si S};/*V表示可信性评价集*/
END.
}
(7-2)结合证据理论中的分布式评估框架和证据合成规则,本发明定义一个用于软件可信性评估的层级递推算法(Hierarchy recursive algorithm HRA),将采集到的可信证据带入该算法,即可获得软件的可信性量化综合评价。算法的实现过程及核心步骤表述如下:
Step 1令Ω={h
s,1≤s≤S}为待评软件的可信性评估统一识别框架,各评价等级的效用为V={v
s,(1≤s≤S)},评估指标系统TEIS=(X
e,X
m,X
w,subelem,indeva,weis),其中:X
e={e
r,X
em,X
el},e
r是软件可信性综合评价指标,X
em={em
1,...,em
n},X
el={{el
p},{el
q}}(p,q∈[1,m]),el
p和el
q分别表示定量和定性叶子指标。EM={em
x}(1≤x≤X)为参与定性叶子指标评价的专家集合,专家权重为
Step 2对每个指标层级H
t(1≤t≤N),求得指标的相对权重,定义为
同时,采集原始评估信息,并转换为Ω上的BBA,定义为
Step 3求得联合系数π,计算叶子指标上经相对权重和折扣联合调整后的BBA
Step 4执行群体意见集结。对定性叶子指标el
q,对专家意见进行证据合成,求得定性叶子指标上的合成评价
结合相对权重
求得调整后待合并的BBA
Step 5对层级H
N指标上的BBA进行证据合成,求得层级H
N-1上指标的BBA
再结合指标上的相对权重
求得调整后BBA
Step 6如果N>1,则N=N-1,转Step 5;否则,向下执行;
Step 7执行最后一次证据合成,求得待评软件的可信性综合评价
Step 8量化评价,提供更为直观的定量评估数据。依据统一评价等级h
s的效用值,使用下式计算所有指标的评价值
HRA中的证据合成使用Dempster合成规则,该方法较为经典,这里不再赘述。模型最终以指标上的BBA和量值两种方式给出软件的可信性评估结果,“不确定性”因素的深入理解保证了推理过程的合理性及评估结果的准确性。
本发明的步骤(8)具体操作如下:
运用全局灵敏度分析方法找出导致软件失信或可信度较低的关键因子{e1,e2,…,et},并制定可信性改进策略S={S1 S2,,…,St}.
至此,最终通过对待评软件实体的量化可信评价和改进策略,这样就完成了面向软件演化的软件可信性动态评估。