基于人工神经网络的软件质量评价图文精Word文档下载推荐.docx
《基于人工神经网络的软件质量评价图文精Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于人工神经网络的软件质量评价图文精Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
在MATLAB环境下实例仿真,基于人工神经网络的评价结果与期望的结果是一致的,表明该方法能够准确、科学和客观地评价软件质量。
关键词 人工神经网络 软件质量 综合评价
SOFTWAREQUALITYEVALUATIONBASEDONARTIFICIALNEURALNETWORK
WangLijin
WuBaoguo1 ZhengDexiang
(SchoolofInformation,BeijingForestryUniversity,Beijing100083,China
(SchoolofComputerandInformation,FujianAgricultureandForestryUniversity,Fuzhou350002,Fujian,China
Abstract Toimprovetheaccuracyofsoftwarequalityevaluation,inthispaperanevaluationindexsystemissetupwiththereferenceofqualityfactorsinvarioussoftwarequalitymodels,andthestructureofBPnetworkisdesignedaswell.Theresultofevaluationbasedonartifi2cialneuralnetworkaccordedwithwhatwasexpectedinemulationundertheMatlabenvironment.Theconclusionisthatthemethodcanevalu2atesoftwarequalitymoreexact,scientificandimpersonal.
Keywords Artificialneuralnetwork Softwarequality Overallevaluation
0 引 言
软件质量是贯穿于软件生存周期的一个重要问题,是各种特性的复杂组合[1]。
为了定量地评价软件质量,在软件开发和维护过程中,必须对软件质量特性进行度量。
Boehm、McCall、ISO度量模型是软件行业的标准。
围绕着这些模型,产生了很多的软件质量评价方法,有模糊综合评判方法[2-5]、AHP评判方法[8]等。
大多数方法不仅指标的权重一般都要由专家给定,而且定性信息也多是通过人的主观判断予以量化,这存在着主观的随意性和思维的不确定性。
然而如何尽量减少主观的随意性和思维上的不确定性等因素,则一直是困扰着软件质量评价的问题;
此外,无法用定量关系表达式来表达质量特性之间的权重分配,所能准确提供的只是各类软件质量特性及其同类评价的结果。
由此看来,如果能够利用已有的评价结果,根据所给待评价软件就能对其质量直接作出评价,则可以减少主观的不定因素,提高评价的准确性。
人工神经网络技术可有效解决上述问题,其所具有的自学习能力可以使传统的专家最困惑的知识获取工作转换为网络的结构调节过程。
因此,本文结合人工神经网络技术,提出基于BP人工神经网络的软件质量评价方法,实验证明该方法能科学、准确地进行软件质量评价。
1 人工神经网络
人工神经网络是由大量的、简单的神经元广泛地互相连接
而形成的复杂网络系统,在模式识别、趋势预测和质量等级评价
等方面得到了广泛的应用。
BP网络是在模式分类中用得最多的一种神经网络,从结构上讲,是一种分层型网络,具有输入层、中间层(隐藏层和输出层的三层结构。
各层中神经元的输出,数学描述为:
outi=f(neti=f(
∑
j
Wij
outj+θj
式中outi表示所考虑层中第i个神经元的输出;
outj是前一层第
j个神经元的输出。
要求采用非线性的连续可导的激励函数,经多年试验研究,现通常采用S型(Sigmoid函数作为激励函数。
2 软件质量的BP网络模型
2.1 软件质量评价体系
在不断的探索中,目前,比较常见的软件质量评价模型有Boehm模型、McCall模型和ISO9126软件质量模型,在我国最引人注目的是上海软件计算机中心的软件质量评估体系[9]。
Boehm模型以60个度量公式对软件质量进行定量评价,评价方法侧重于可用性、可维护性和可移植性。
McCall模型从软件质量要素、准则和度量三个层次进行度量,归纳了11个度量因素。
McCall等人认为,因素是软件质量的反映,而软件属性可用作评价准则以定量地度量软件属性,从而反映其质量。
国际标准
化组织的ISO/IEC9126标准是当前国际上流行的软件质量评价标准,该模型是在McCall模型的三层基础上制定的。
上述模型分别定义了不同应用软件应满足的一些质量因素。
软件质量高低的衡量,应综合考虑不同应用软件需要满足的质量因素,因此,本文综合上述几种模型的软件质量因素,选择正确性、可靠性、完整性、可用性、效率、可维护性、可测试性、可操作性、灵活性、复用性、移植性、明确性、可修改性、文档性、可理解性、有效性、功能性、普遍性、经济性、连接性、安全性及适用性共计22个因素为评价体系中的指标。
在实际操作中可根据实际需要再进行定义。
指标的评价准则参照McCall定义的评价准则,评价分级为优、良、一般、差。
2.2 神经网络结构设计
在设计BP网络时,一般先考虑设一个隐层,当一个隐层的隐节点数很多仍不能改善网络性能时,才考虑再增加一层。
隐层的节点数取决于训练样本的多少,样本噪声的大小以及样本中蕴涵规律的复杂程度。
本文采用(1式粗略估算隐节点数。
m=nl(1式中,m表示隐节点数,n为输入层节点数,l为输出点节点数。
根据评价指标的个数、评价分级数及(1式,设计网络结构如图1所示。
图1 软件质量评价的BP网络结构
图1中V1、V2、V3、V4分别表示输出等级,C1,C2,…,C22分别对应着正确性、可靠性、…、适用性各指标。
3 应用仿真
3.1 训练样本表示
本文采用的数据[6],如表1所示。
前16样本用于网络训练,为了更好理解评价结果,对评价集进行编码,如表2所示。
表1 样本数据
C1C2C3C4C5C6C7C8C9C10C11C12C13C14C15C16C17C18C19C20C21C22等级10158591068789311151181413581315优527378579851032151248222良32310214213433131217732一般2122215331243210220321差1288510978568969410915981414优2755751055576108885310823良4358212484414252511332一般2222151325140130110111差810151397810715168131291171398810优8735792494284276545568良3211138531132513525641一般111131************1121差151********97587121511107101587优35793787810579328577269良1142263523843421442232一般1010111110211110121132差1710987968910678111215715891413优2566799588677354928654良1545524622642421323312一般0011101110223210111201差
表2 输出编码
编码等级
1000V1
0100V2
0010V3
0001V4
3.2 网络训练
网络训练可采用BP算法,但其收敛速度慢、局部极值、难以确定隐层和隐层节点的个数。
在实际应用中,可以采用改进BP算法,一种是启发式学习算法,如有动量的梯度下降法、自适应学习的梯度下降法、弹性梯度下降法等[11];
一种是基于数值最有理论的训练算法,如共轭梯度法、高斯-牛顿法等[11]。
本文采用启发式学习算法中的弹性梯度下降法,在Matlab环境下实现,Matlab代码如下:
%m_data存放样本数据,每行前22个数据为指标值,后4%位为所对应等级的编码,前16行数据为训练网络,后4行为验证
p_xl=m_data(1:
16,1:
22;
t_xl=m_data(1:
16,23:
26;
p_yz=m_data(17:
20,1:
t_yz=m_data(17:
20,23:
p=p_xl′;
t=t_xl′;
net=newff(minmax(p,[9,4],{’tansig’,′logsig′},’trainrp′;
net.trainParam.show=50;
net.trainParam.epochs=200000;
(下转第150页
型。
RequiredType用于表达节点的必要类型,OnParentVersion用于表达节点在父节点创建新版本时的行为。
4 建模实例
以下展示利用上述的基于MDA的CMS节点类型框架的建模实例。
这个实例是一个基于Flash的多媒体协同平台中资源管理部分的模型。
首先使用扩展的IBMRationalSoftwareArchi2
tect设计资源管理部分的平台无关模型[5]
如图3所示(图中为表达方便,将节点或属性与标记值显示在一起
。
图3 资源管理部分的平台无关模型
然后使用框架提供的自动生成功能,解析表示UML
模型的
XMI文档,自动转换为CND。
最后使用框架提供的从CND到CMS底层存储方式的自动生成功能,将CND转换成CMS底层数据库结构。
5 结 语
本文针对传统CMS建模中的一些问题,结合UML2.0扩展
机制,提出了CMS节点类型的UMLProfile,设计并实现了一种基于MDA的CMS节点类型框架。
该框架结合建模工具软件,对CMS节点类型进行可视化建模,然后自动生成符合JSR2170规范的节点类型描述语言,并进一步生成CMS底层结构。
下一步的研究工作包括CMS节点类型模型的分层管理,以及一些反向自动生成功能(如:
通过解析实际的CMS结构,反向生成CMS平台无关模型,进一步提高框架自动化的功效。
参 考 文 献
[1]JSR170:
ContentRepositoryforJavaTMtechnologyAPI.http:
//jcp.
org/en/jsr/detail?
id=170.
[2]DebnathNC,GarisA,RiescoD,etal.DefiningPatternsUsingUML
Profiles.IEEEInternationalConferenceonMarch8,2006:
114721150.[3]LiWenjun,HuangChuwei,ChenQiangchao,etal.AModel2DrivenAs2
pect
Framework
for
Grid
Service
Development.
Services
Computing,2006.
[4]OmarAldawud,TzillaElrad,AtefBader.AUMLProfileforAspectOri2
entedModeling.WorkshoponAOP,OOPSLA2001.
[5]DuskoMisic.AuthoringUMLprofilesusingRationalSoftwareArchitect
andRationalSoftwareModeler.http:
///developer2works/rational/library/05/0906_dusko/index.html.
(上接第134页
net.trainParam.goal=1e-3;
net=train(net,p,t;
样本训练过程如图2所示。
3.3 实例评价
根据上述训练完毕的网络,利用sim(net,p_yz′
语句进行图2 网络训练过程
仿真,得网络的输出向量如表3所示。
表3 评价结果向量
网络输出
评价
等级期望等级误差0.99720.00870.21760.0011优优无0.09000.75760.04120.0136良良无0.0018
0.03560.51380.1168一般一般无0.0000
0.0000
1.0000
差
无
按最大隶属,表3中每向量所对应的等级为V1、V2、V3、V4,与期望的评价等级是完全一致,无误差。
4 结 论
基于人工神经网络的软件质量评价方法很好地解决了评价过程中的主观随意性及思维的不定性。
其优点是充分利用了以往的评价结果,使得同类评价结果稳定、客观和科学。
本文对现行业软件质量模型中涉及的质量因素作为输入向量,但在实际应用中各特性侧重不同,可以增加或删除某些特性来实现评价。
参考文献
[1]邓良松,刘海岩,陆丽娜.软件工程[M].西安:
西安电子科技大学
出版社,2004.
[2]宁正元,王李进.软件质量Fuzzy综合评价方法[J].计算机科学,
2001(增刊.
[3]王胜芝,等.软件质量综合评价方法研究[J].计算机工程与设计,
2002,23(4:
16218.
[4]李良宝,韩喜双.软件质量的多级模糊综合评价[J].哈尔滨工业
大学学报,2003,35(7:
8122814.
[5]杨扬.计算机软件质量模糊综合评价方法[J].小型微型计算机系
统,2000,21(3:
3132315.
[6]刘宏兵,等.基于模糊推理的软件质量评价模型[J].计算机工程
与设计,2005,26(8:
214622148.
[7]宋庆克,汪希龄,胡铁牛.多属性评价方法及发展评述[J].决策与
决策支持系统,1997,7(4:
1282138.
[8]尉梅,王志和.AHP在软件质量度量中的应用[J].甘肃教育学院
学报:
自然科学版,1999,13(1:
23225.
[9]郭飞,等.基于专家知识的ANFIS软件质量评价建模与仿真[J].
系统工程与电子技术,2006,28(2:
3172320.
[10]韩力群.人工神经网络理论、设计及应用[M].北京:
化学工业出版
社,2002.
[11]董长虹.Matlab神经网络与应用[M].北京:
国防工业出版
社,2005.