一种基于BP神经网络的软件功能点数估算方法技术

技术编号:24089668 阅读:37 留言:0更新日期:2020-05-09 07:30
本发明专利技术涉及一种基于BP神经网络的软件功能点数估算方法,包括:1)合并基于IFPUG功能点评估方法处理得到的每组数据中的相同数据存储、相同事务,得到包含七种属性的新数据;其中,七种属性分别为数据存储DET1、事务DET2、FTR、事务类型、数据存储类型、操作数、功能点数;2)利用BP神经网络进行训练,得到软件功能点数估算模型;3)基于训练好的软件功能点数估算模型估算软件功能点数。本发明专利技术改进了原有的功能点数估算方法,减少了计算事务复杂度因子时的误差,对于提高软件规模评估准确度具有重大意义。

A software function point estimation method based on BP neural network

【技术实现步骤摘要】
一种基于BP神经网络的软件功能点数估算方法
本专利技术涉及软件开发成本度量中的软件规模估算领域,尤其涉及一种基于BP神经网络的软件功能点数估算方法。
技术介绍
2019年7月1日正式生效的国家标准《软件工程软件开发成本度量规范》(GB/T36964-2018)为软件行业度量开发成本提供了依据。该标准中定义的软件开发成本估算过程包括软件规模估算、工作量估算、成本估算、确定软件开发成本四部分。其中,估算软件规模时采用IFPUG、MarkII、Nesma、Cosmic、Fisma等五种国际标准的功能点计数方法。IFPUG标准基于明确的规则约束,能保证软件规模评估结果的客观性和一致性;MarkII标准操作简单,只需进行简单的加权计算,但缺乏对基本元素的识别规则;Nesma标准对代码数据进行度量、对隐含查询不予考虑,所以完整性和一致性不强;Cosmic标准引入了“分层”概念,需要考虑软件的技术因素,从而减弱了软件功能点对业务人员透明的优势;Fisma标准强调采用“服务”替代“功能”,但服务的加权系数各不相同,操作困难。其中IFPUG标准评估方法在软件成本评估中应用最为广泛,该方法根据五种信息域特征估算并合计每个信息域的复杂度对应的功能点数,得出一个初步的总功能点数(UFC),最后根据项目的具体情况,选择相应的技术复杂度参数,估算出最终的软件开发成本。然而该方法在每个信息域估算功能点数时,没有考虑到突变点存在的情况,同时估算事务的功能点数时不可避免地要考虑数据存储,可能会引发在突变点附近取值不精确、过度计算的问题,因此设计一种基于BP神经网络的软件功能点数估算方法是十分有必要的。
技术实现思路
本专利技术为克服上述的不足之处,目的在于提供一种基于BP神经网络的软件功能点数估算方法,本专利技术从数据存储出发,把对相同数据存储的相同事务合并到一起,以新得到的数据为单位,对新的功能点数求和。本专利技术改进了原有的功能点数估算方法,减少了估算事务功能点数时的误差,对于提高功能点评估准确度具有重大意义。本专利技术是通过以下技术方案达到上述目的:一种基于BP神经网络的软件功能点数估算方法,包括如下步骤:(1)合并基于IFPUG功能点评估方法处理得到的每组数据中的相同数据存储、相同事务,得到包含七种属性的新数据;其中,七种属性分别为数据存储DET1、事务DET2、FTR、事务类型、数据存储类型、操作数、功能点数;(2)利用BP神经网络进行训练,得到软件功能点数估算模型;(3)基于训练好的软件功能点数估算模型估算软件功能点数。作为优选,所述步骤(1)具体为:提取基于IFPUG功能点评估方法处理得到的的每组数据,合并访问同一数据存储的相同事务操作,合计所有功能点数,得到包含七种属性的新数据,具体如下:IFPUG功能点评估方法分别估算在数据存储和事务方面的功能点数,数据存储中ILF和EIF的功能点数由数据元素类型DET和记录元素类型RET决定,其中DET表示数据表的属性数或外部接口的输出属性数,RET表示数据表或外部接口的关联数;事务中EI、EO、EQ的功能点数由数据元素类型DET和引用文件类型FTR决定,其中FTR表示被维护和读取的数据表或被读取的外部接口;在实际处理中,假设每次操作的FTR=RET,合并每组数据存储的功能点数和对该组数据存储进行相同操作的事务的功能点数,产生新的一组数据,即包含DET1(数据存储)、DET2(事务)、FTR、事务类型(EI、EO、EQ)、数据存储类型(ILF、EIF)、操作数、功能点数七种属性的新数据。作为优选,所述的功能点数的估算方法包括三种:(A)根据ILF/EIF功能点数矩阵提取出来的数据包括DET、RET、数据存储类型、功能点数四种属性,用如下公式表示:F1=f(det,ret,ie)其中F1表示数据存储对应的功能点数1,det、ret分别表示DET、RET的数值,ie表示该数据存储是ILF还是EIF;(B)根据EO/EQ功能点数矩阵提取出来的数据包括DET、FTR、事务类型、功能点数四种属性,用如下公式表示:F2=f(det,ftr,eoeq)其中F2表示数据存储对应的功能点数2,det、ftr分别表示DET、FTR的数值,eoeq表示该事务操作是EO还是EQ;(C)根据EI功能点数矩阵提取出来的数据包括DET、FTR、事务类型、功能点数四种属性,用如下公式表示:F3=f(det,ftr,ei)其中F3表示数据存储对应的功能点数3,det、ftr的分别表示DET、FTR的数值,ei表示该数据存储是EI。作为优选,所述合并时,以数据存储为单位,合并得到包括DET1(数据存储)、DET2(事务)、FTR、事务类型(EI、EO、EQ)、数据存储类型(ILF、EIF)、操作数、功能点数七种属性的一组数据,具体情况如下:(i)事务没有任意数据存储:根据事务类型合并相同事务,只需考虑事务的功能点数而不需要考虑数据存储的功能点数;(ii)该数据存储没有被事务直接访问:只需考虑数据存储的功能点数而不需要考虑事务的功能点数;(iii)该数据存储有被事务直接访问:根据事务类型合并相同事务,功能点数同时考虑数据存储和事务。作为优选,所述步骤(2)使用BP神经网络进行训练包括如下步骤:(2.1)根据步骤(1)得到的新数据,即将新数据作为样本,建立三层拓扑结构的BP神经网络,其中输入层为六个神经元,输出层为一个神经元,隐藏层取十个神经元;初始化隐藏层权值V,输出层权值W,隐藏层阈值γ,输出层阈值θ,预设计算精度ε,最大迭代次数M,学习率η;(2.2)随机选取一个输入样本以及对应的输出期望,计算隐藏层各神经元的输入和输出;网络输出的结果与输出期望的误差的函数被称作损失函数,计算损失函数对输出层的各神经元的偏导数;并利用输出层各神经元的偏导和隐藏层各神经元的输出来调整隐藏层到输出层的权值、隐藏层各神经元的偏导和输入层各神经元的输入调整输入层到隐藏层的权值,并计算全局误差;(2.3)当全局误差小于等于预设计算精度ε或迭代次数大于最大迭代次数M时,训练结束,执行步骤(2.4);否则返回步骤(2.2),进入下一轮迭代;(2.4)验证和测试训练模型,如果通过则保存模型,否则返回步骤(2.1)重新训练。作为优选,所述步骤(2.2)具体如下:随机选取第L个输入样本和对应的样本输出,计算出隐藏层和输出层各神经元的输入、输出:隐藏层输入:隐藏层输出:hoj(l)=σ(hij(l))输出层输入:输出层输出:yok(l)=σ(yik(l))其中ω为所在两个神经元之间的联结权重,θ为输出层阈值,i、j、k分别表示输入层、隐藏层、输出层的神经元,σ为激活函数,其中激活函数采用sigmoid函数求导结果为σ′=σ(1-σ);模型输出记为yok,给定样本期望tk,采用均方差作为输出层的损失函数,公式为:使用梯本文档来自技高网
...

【技术保护点】
1.一种基于BP神经网络的软件功能点数估算方法,其特征在于,包括如下步骤:/n(1)合并基于IFPUG功能点评估方法处理得到的每组数据中的相同数据存储、相同事务,得到包含七种属性的新数据;其中,七种属性分别为数据存储DET1、事务DET2、FTR、事务类型、数据存储类型、操作数、功能点数;/n(2)利用BP神经网络进行训练,得到软件功能点数估算模型;/n(3)基于训练好的软件功能点数估算模型估算软件功能点数。/n

【技术特征摘要】
1.一种基于BP神经网络的软件功能点数估算方法,其特征在于,包括如下步骤:
(1)合并基于IFPUG功能点评估方法处理得到的每组数据中的相同数据存储、相同事务,得到包含七种属性的新数据;其中,七种属性分别为数据存储DET1、事务DET2、FTR、事务类型、数据存储类型、操作数、功能点数;
(2)利用BP神经网络进行训练,得到软件功能点数估算模型;
(3)基于训练好的软件功能点数估算模型估算软件功能点数。


2.根据权利要求1所述的一种基于BP神经网络的软件功能点数估算方法,其特征在于:所述步骤(1)具体为:提取基于IFPUG功能点评估方法处理得到的的每组数据,合并访问同一数据存储的相同事务操作,合计所有功能点数,得到包含七种属性的新数据,具体如下:IFPUG功能点评估方法分别估算在数据存储和事务方面的功能点数,数据存储中ILF和EIF的功能点数由数据元素类型DET和记录元素类型RET决定,其中DET表示数据表的属性数或外部接口的输出属性数,RET表示数据表或外部接口的关联数;
事务中EI、EO、EQ的功能点数由数据元素类型DET和引用文件类型FTR决定,其中FTR表示被维护和读取的数据表或被读取的外部接口;在实际处理中,假设每次操作的FTR=RET,合并每组数据存储的功能点数和对该组数据存储进行相同操作的事务的功能点数,产生新的一组数据,即包含DET1(数据存储)、DET2(事务)、FTR、事务类型(EI、EO、EQ)、数据存储类型(ILF、EIF)、操作数、功能点数七种属性的新数据。


3.根据权利要求2所述的一种基于BP神经网络的软件功能点数估算方法,其特征在于:所述的功能点数的估算方法包括三种:
(A)根据ILF/EIF功能点数矩阵提取出来的数据包括DET、RET、数据存储类型、功能点数四种属性,用如下公式表示:
F1=f(det,ret,ie)
其中F1表示数据存储对应的功能点数1,det、ret分别表示DET、RET的数值,ie表示该数据存储是ILF还是EIF;
(B)根据EO/EQ功能点数矩阵提取出来的数据包括DET、FTR、事务类型、功能点数四种属性,用如下公式表示:
F2=f(det,ftr,eoeq)
其中F2表示数据存储对应的功能点数2,det、ftr分别表示DET、FTR的数值,eoeq表示该事务操作是EO还是EQ;
(C)根据EI功能点数矩阵提取出来的数据包括DET、FTR、事务类型、功能点数四种属性,用如下公式表示:
F3=f(det,ftr,ei)
其中F3表示数据存储对应的功能点数3,det、ftr的分别表示DET、FTR的数值,ei表示该数据存储是EI。


4.根据权利要求2所述的一种基于BP神经网络的软件功能点数估算方法,其特征在于:所述合并时,以数据存储为单位,合并得到包括DET1(数据存储)、DET2(事务)、FTR、事务类型(EI、EO、EQ)、数据存储类型(ILF、EIF)、操作数、功能点数七种属性的一组数据,具体情况如下:
(i)事务没有任意数据存储:根据事务类型合并相同事务,只需考虑事务的功能点数而不需要考虑数据存储的功能点数;
(ii)该数据存储没有被事务直接访问:只需考虑数据存储的功能点数而不需要考虑事务的功能点数;
(iii)该数据存储有被事务直接访问:根据事务类型合并相同事务,功能点数同时考虑数据存储和事务。


5.根据权利要求1所述的一种基于BP神经网络的软件功能点数估算方法,其特征在于:所述步骤(2)使用BP神经网络进行训练包括如下步骤:
(2.1)根据步骤(1)得到的新数据,即将新数据作为样本,建立三层拓扑结构的BP神经网络,其中输入层为六个神经元,输出层为一个神经元,隐藏层取十个神经元;初始化隐藏层权值V,输出层权值W,隐藏层阈值γ,输出层阈值θ,预设计算精度ε,最大迭代次数M,学习率η;
(2.2)随机选取一个输入样本以及对应的...

【专利技术属性】
技术研发人员:项文上张艳侠方丁赵小敏
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1