《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 网络结构的软件系统可靠性分配方法
网络结构的软件系统可靠性分配方法
来源:微型机与应用2012年第19期
杨宏伟,王焕坤,李庆全
(装甲兵工程学院 技术保障工程系,北京 100072)
摘要: 针对网络结构的软件系统,通过构造软件系统的ANP结构,结合用户和程序员的观点,对超矩阵的构造进行了改进,提出基于改进型ANP的模块重要度评估方法。以软件实用性最大化为目标函数、以可靠性下限和开发费用为约束条件,建立了可靠性分配模型。并以某工厂实力信息管理系统为例,对算法进行了验证。
Abstract:
Key words :

摘  要: 针对网络结构的软件系统,通过构造软件系统的ANP结构,结合用户和程序员的观点,对超矩阵的构造进行了改进,提出基于改进型ANP的模块重要度评估方法。以软件实用性最大化为目标函数、以可靠性下限和开发费用为约束条件,建立了可靠性分配模型。并以某工厂实力信息管理系统为例,对算法进行了验证。
关键词: 软件网络;可靠性分配;ANP;超矩阵

 软件结构描述了软件实体元素方法、属性、类、包以及它们之间的相互关系,在很大程度上直接影响着软件的功能、性能、安全性及可靠性等指标。因此,在进行软件可靠性分配前,对软件系统结构进行分析是非常有必要的。
 目前,在软件可靠性分配的研究中往往是基于软件系统中模块间相互独立、没有交互的假设上。然而现实情况并非如此,由于要处理繁杂的事务,现在的软件系统通常都很复杂,由许多互相作用的模块构成。近年来,一些研究者对大量面向对象软件系统的类图进行了研究,发现软件系统的结构大多数都展现出“小世界”和“无尺度”等复杂网络特性[1]。对于这类软件的可靠性分配问题,可以用网络分析法(ANP)进行探讨。
1 软件网络观
1.1 软件的复杂性

 软件系统复杂性的完整定义应当包括软件的内部结构和外部特性两个方面,其中内部结构反映软件的静态复杂性,而外部特性则反映软件的动态复杂性。本文主要讨论软件内部结构的复杂性。
 复杂系统不一定要有很大的规模,因为引起系统复杂行为的主要原因并不是元件的数量,而是元件之间的交互。所以元件之间的交互方式对复杂系统的特性及行为的影响是一个不可忽视的方面,也是复杂系统研究的关键问题之一。软件系统也是如此,单个类或模块只能完成有限的功能,而在系统范围内,所有类或模块协同交互才能完成用户期望的功能。因此,软件系统模块间的关系和交互的复杂性也是判断软件结构复杂性的重要因素[1]。由此可知复杂软件系统的结构不再是简单的层次结构,模块之间的复杂关系使软件结构呈现网络化。
1.2 软件的网络结构
 对于软件网络的抽象方式,研究人员从不同的层面均给予了不同的定义,例如节点可以是类、子程序、构件和子系统等[2],边可以是面向对象设计中的类间关系或包间关系等[3],也可以是面向过程设计中的函数间调用或子程序间调用等[4]。
 2002年,Valverde[2]等人首先研究了软件网络。他们通过逆向工程方法从程序代码得到系统的类图,然后将系统的类图作为研究对象,用网络图来表示软件系统,即网络中的节点表示类,边代表类之间的交互关系。这样,抽象的软件网络可以用一个二元组来定义:

 假定可靠性与费用呈线性关系[8],αi表示对模块i施加可靠性为rmi时的一般开销,βi为可调整的成本开销,a等于1减去软件开发者的利润率,vi是模块i的售价(为模块i的设计完成成本),模块i的实际成本一定不能超过它,即:


3.2 软件系统的ANP结构[10]
 作为系统功能需求的提出者,用户最明白系统需要具备哪些功能;作为系统的设计者和开发者(程序员)最熟悉系统的整体结构,从而也最了解该由哪些模块组成这些功能。因此,这里以软件用户的观点,划分s项功能为f1,f2,…,fs;然后以软件程序员的观点进一步将功能划分为n个的模块组C1,C2,…,Cn,共m个模块,每个功能可能调用多于一个模块。
 (1)控制层
控制层的目标层是基于用户观点的,是用户对软件可靠性与可用性的总体评估。总体评估是基于软件属性或功能,因此,控制层的决策准则为软件系统能够提供给用户的功能。
 (2)网络层
 每个功能又是通过不同的模块组合实现的。模块之间不是简单的相互独立关系,而是存在反馈依存关系,形成网络结构。
 软件系统的ANP结构如图2所示。

 

 

 一般情况下当C.I≤0.1时,认为判断矩阵可以接受,否则需要调整判断矩阵。
3.3.2 模块局部重要度指标WMfi
 传统ANP方法在构造判断矩阵时都有两个评估准则,在元素两两比较时需要在某目标准则条件下,先比较两元素i、j相对于该准则下的第三个元素(称为次准则)的重要程度wi与wj,然后再通过wi/wj得到元素i与元素j重要度比值[10]。这种通过两步比较的方法不是很直观,容易混乱决策者的思维,产生错误。相对来说一步直接比较是比较直观且较容易被理解。
 下面主要介绍一种利用一步直接比较来构造网络层的超矩阵。
 (1)构造模块间判断矩阵。这里将判断矩阵分为两种:一是以控制层功能fi为单一准则的判断矩阵;二是以网络层模块组Cj中元素为单一准则的判断矩阵,并计算出排序向量矩阵。
 (2)构造超矩阵。将所有网络层元素的排序向量矩阵组合,由此得到控制层功能fi下的超矩阵,记为W。

4 案例
 本文以某一工厂实力信息管理系统为例,对上述方法进一步说明和验证。该软件系统功能结构如图3所示。

 系统要求各模块的可靠度不低于0.9,软件开发的投资为495 000元,利润率为50%,则有:a=0.5,C=495 000。
 其中,C13数据修改调用C11数据录入;C21数据统计调用C14数据查询;C22数据汇总调用C21数据统计和C12数据导入;C32报表生成调用C21数据统计和C22数据汇总;C33数据打印调用C21数据统计、C22数据汇总以及C32报表生成;C42计划生成调用C21数据统计、C22数据汇总和C41数据分析。由此,可得该软件系统基于ANP的网络结构如图4所示。


 通过求解上述模型,可以得出此软件系统的可靠性分配的目标值为:
 RM=(0.982  0.963  0.900  0.976  0.984  0.978  0.900  0.963  0.900  0.931  0.900)
U=0.961 3,即为约束条件下可得到的最大软件实用性。从结果中可知,可靠性指标较高的模块为:C11、C12、C14、C21、C22、C32。因此,在软件系统的开发过程需要投入较大人力物力以保证其完成的质量,才能最终满足用户对软件实用性的要求。
 目前软件可靠性分配研究中,对于具有网络结构的软件可靠性分配讨论比较少。本文首先对软件的网络结构的存在性、普遍性进行了说明;然后结合ANP理论讨论了具有网络结构的软件可靠性分配方法,并对传统的ANP方法进行了改进;最后将该方法应用于案例中进行验证,得出如下结论:(1)在ANP结构中,没有依赖与影响关系的限制,能更准确地描述软件系统网络结构;(2)在ANP决策中,综合了用户和程序员的观点,降低了决策者单方面的主观因素的影响;(3)通过改进ANP中超矩阵的构造,方法更加清晰、直观、容易理解,且在一定程度上减少了计算量;(4)ANP方法能够有效地解决网络结构的软件系统可靠性分配问题。
参考文献
[1] 何克清,马于涛,刘婿,等.软件网络[M].北京:科学出版社,2008.
[2] VALVERDE S, CANEHO R, SOLE R. Seale free networks from optimal design[J]. EuroPhysics Letters,2002,60(4): 512-517.
[3] SOLE R V, VALVERDE S. Information theory of complex networks: on evolution architectural constraints[J]. Lect Notes Physical, 2004, 65(1):189-207.
[4] MYERS C R. Software systems as complex networks: Structure, function, and resolvability of software collaboration graphs[J]. Physical Review E, 2003, 68(4): 046-116.
[5] 徐仁佐. 软件可靠性工程[M]. 北京.清华大学出版社, 2007.
[6] 左云霞.基于遗传算法与AHP的软件可靠性分配方法[D].西安:西北工业大学,2007:13-18.
[7] 徐仁佐,向剑文,肖英柏.面向多用户软件系统的可靠性分配的故障树分析法[J].小型微型计算机系统,2001,22(3):329-332.
[8] MARY E H, MING Z, OHLSSON N. Planning models for software reliability and cost[J]. IEEE Transaction on Software Engineering,1998,24(6):420-434.
[9] ZAHEDI F. ASHRAFI N. Software reliability allocation based on structure, utility, price and cost[J]. IEEE Transaction Software Engineering, 1991, 17(4):345-356.
[10] SAATY T L, VARGAS L G. Decision making with the analytic network Process[M]. Springer Science Business Media, LLC, 2006.
[11] 吴志彬,陈义华.ANP中超矩阵排序算法研究[D].中国控制与决策学术年会论文集,2006:1235-1242.

此内容为AET网站原创,未经授权禁止转载。