软件成本度量方法、装置、电子设备及存储介质与流程
- 国知局
- 2024-10-09 15:28:39
本技术涉及软件工程领域,具体涉及一种软件成本度量方法、装置、电子设备及存储介质。
背景技术:
1、在软件度量体系中,软件的规模度量是决定软件成本的主要因素,也是项目管理者在整个项目生命周期进行跟踪和评估的基础。软件规模估算是估算软件产品大小的过程,是为了能在软件开发早期对整个软件规模有一个总体的把握和了解。
2、目前,软件规模估算方法通常有以下三种:
3、第一种是专家评审法,由专家基于其经验和对项目的理解,估算该项目的成本预算值。该方法要求估算专家对应用领域、开发环境等特点非常了解,对各类项目的开发有非常丰富的经验,因此人工成本较高;此外,由于过分依赖专家个人意见,缺乏理论性和系统性,并且专家的个人偏见或主观性也会影响评审结果,导致评价结果的客观性和准确性受损。
4、第二种是类比法,通过将待评估项目的某些属性与历史上类似项目的基准数据进行对比,来预测当前项目的成本、工作量或工期。但该方法只适用于评估与历史项目在应用领域、开发环境和复杂度方面相似的项目,且准确性高度依赖于历史数据的质量和可比性,以及调整估算时的判断力。
5、第三种是代码行法,其将源代码行数作为度量单位,假设软件的规模与其开发成本、所需工作量及复杂度存在一定的正相关关系。代码行法简单易行,但忽略了代码质量、复用性、设计复杂度等因素的影响,且不同编程语言、开发环境下的代码行“密度”(每行代码实现的功能量)差异较大,因此无法准确衡量软件规模。
6、因此,如何降低软件度量成本,并提高软件成本度量准确性成为亟待解决的技术问题。
技术实现思路
1、本发明提供一种软件成本度量方法、装置、电子设备及存储介质,用以解决现有技术中软件度量成本较高且准确性较低的技术问题。
2、本发明提供一种软件成本度量方法,包括:
3、基于目标软件的需求文件,确定所述目标软件的需求文本数据,所述需求文本数据包括所述需求文件中表征所述目标软件的开发成本的词语;
4、使用bert模型对所述需求文本数据进行识别,得到所述需求文本数据对应的需求文本类别数据,所述需求文本类别数据包括各所述词语所属的功能点类型,所述bert模型是基于遮蔽语言模型训练任务和下一句预测训练任务训练得到的;
5、基于所述需求文本类别,确定所述目标软件的功能点总数;
6、基于所述功能点总数,确定所述目标软件的软件成本。
7、根据本发明提供的一种软件成本度量方法,所述使用bert模型对所述需求文本数据进行识别,得到所述需求文本数据对应的需求文本类别数据,包括:
8、对于所述需求文本数据中的任一词语,将所述词语输入至bert模型,得到所述bert模型输出的类型概率,所述类型概率包括所述词语属于各功能点类型的概率;
9、基于所述类型概率,确定所述词语所属的功能点类型,得到所述需求文本数据对应的需求文本类别数据。
10、根据本发明提供的一种软件成本度量方法,所述将所述词语输入至bert模型,得到所述bert模型输出的类型概率,包括:
11、将所述词语输入至所述bert模型的嵌入层,得到所述嵌入层输出的词向量;
12、将所述词向量输入至所述bert模型的transformer模块,得到所述transformer模块输出的中间向量;
13、将所述中间向量输入至所述bert模型的输出层,得到所述输出层输出的类型概率;
14、其中,所述transformer模块包括多个transformer编码层,所述多个transformer编码层中的任一transformer编码层包括一个多头自注意力子层和一个前馈神经网络子层,所述多头自注意力子层用于基于上下文信息确定所述词语的向量表示,所述前馈神经网络子层用于对所述向量表示进行非线性转换。
15、根据本发明提供的一种软件成本度量方法,所述bert模型是基于如下步骤训练得到的:
16、对样本需求文件进行数据清洗处理,得到第一处理数据;
17、对所述第一处理数据进行停用词过滤处理,得到第二处理数据;
18、对所述第二处理数据进行分词处理,得到第三处理数据,所述第三处理数据包括多个样本词语;
19、对各所述样本词语进行词向量训练,得到各所述样本词语的词向量;
20、将所述样本词语的词向量和所述样本词语对应的功能点类型标签作为一组样本数据,获取多组样本数据;
21、基于所述多组样本数据,对预训练bert模型进行训练,得到所述bert模型。
22、根据本发明提供的一种软件成本度量方法,所述预训练bert模型是基于如下步骤训练得到的:
23、对输入文本序列进行掩码处理,得到带掩码标记的文本序列;
24、将所述带掩码标记的文本序列输入至待训练的bert模型,得到所述待训练的bert模型输出的预测文本;
25、基于所述带掩码标记的文本序列和所述预测文本,确定第一损失值;
26、对输入文本序列进行预处理,得到多组训练样本,所述多组训练样本中的任一组训练样本包括两个句子和所述两个句子的关联性;
27、将所述多组训练样本输入至所述待训练的bert模型,得到所述待训练的bert模型输出的预测关联性;
28、基于所述关联性和所述预测关联性,确定第二损失值;
29、基于所述第一损失值和所述第二损失值,确定联合损失值;
30、基于所述联合损失值,对所述待训练的bert模型的模型参数进行调整,直至所述联合损失值小于预设阈值;
31、将所述联合损失值小于所述预设阈值时所得到的模型参数作为预训练bert模型的模型参数,得到所述预训练bert模型。
32、根据本发明提供的一种软件成本度量方法,所述对各所述样本词语进行词向量训练,得到各所述样本词语的词向量,包括:
33、基于预置词汇库,使用cbow模型进行词向量训练,得到词向量模型,所述词向量模型包括所述预置词汇库中各词汇对应的词向量;
34、对各所述样本词语进行编号,得到包含各所述样本词语与数字的索引关系的字典;
35、基于所述词向量模型和所述字典,确定各所述样本词语的词向量。
36、根据本发明提供的一种软件成本度量方法,所述将所述样本词语的词向量和所述样本词语对应的功能点类型标签作为一组样本数据,包括:
37、对各功能点类型标签进行独热编码,得到各所述功能点类型标签的编码向量;
38、将所述样本词语的词向量和所述样本词语对应的功能点类型标签的编码向量作为一组样本数据。
39、根据本发明提供的一种软件成本度量方法,所述功能点类型包括内部逻辑文件、外部接口文件、外部输入、外部输出和外部查询,所述基于所述需求文本类别,确定所述目标软件的功能点总数,包括:
40、基于所述需求文本类别,确定各所述功能点类型的功能点数量;
41、基于各所述功能点数量,利用如下公式,计算得到所述目标软件的功能点总数:
42、ufp = 7*ilf + 5*eif + 4*ei + 5*eo + 4*eq;
43、其中,ufp是功能点总数,ilf是内部逻辑文件的功能点数量,eif是外部接口文件的功能点数量,ei是外部输入的功能点数量,eo是外部输出的功能点数量,eq是外部查询的功能点数量。
44、根据本发明提供的一种软件成本度量方法,所述目标软件的软件成本包括所述软件成本的合理取值范围和软件成本目标值,所述基于所述功能点总数,确定所述目标软件的软件成本,包括:
45、基于行业基准数据库,确定生产率调整因子,所述生产率调整因子表征单个功能点的耗时率,所述生产率调整因子包括第一生产率调整因子、第二生产率调整因子和第三生产率调整因子,所述第一生产率调整因子小于所述第二生产率调整因子,所述第二生产率调整因子小于所述第三生产率调整因子;
46、基于所述第一生产率调整因子和所述第三生产率调整因子,确定所述目标软件的软件成本的合理取值范围;
47、基于所述第二生产率调整因子,确定所述目标软件的软件成本目标值。
48、根据本发明提供的一种软件成本度量方法,基于如下公式计算软件成本:
49、ue = c *;
50、ae = ue * a * il * l * t;
51、其中,ue是未调整工作量,单位为人时(p.h);c是生产率调整因子,单位为人时每功能点(p.h/fp);ufp是功能点总数,单位为功能点(fp);是基于基准数据计算出的软件规模调整系数;ae是调整后工作量,单位为人时(p.h);a是应用领域调整因子;il是软件完整性级别;l是开发语言调整因子;t是最大团队规模调整因子。
52、本发明还提供一种软件成本度量装置,包括:
53、文本处理模块,用于:基于目标软件的需求文件,确定所述目标软件的需求文本数据,所述需求文本数据包括所述需求文件中表征所述目标软件的开发成本的词语;
54、功能点识别模块,用于:使用bert模型对所述需求文本数据进行识别,得到所述需求文本数据对应的需求文本类别数据,所述需求文本类别数据包括各所述词语所属的功能点类型,所述bert模型是基于遮蔽语言模型训练任务和下一句预测训练任务训练得到的;
55、功能点计数模块,用于:基于所述需求文本类别,确定所述目标软件的功能点总数;
56、规模度量模块,用于:基于所述功能点总数,确定所述目标软件的软件成本。
57、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述软件成本度量方法。
58、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述软件成本度量方法。
59、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述软件成本度量方法。
60、本技术实施例提供的软件成本度量方法、装置、电子设备及存储介质,基于目标软件的需求文件,确定所述目标软件的需求文本数据,所述需求文本数据包括所述需求文件中表征所述目标软件的开发成本的词语;使用bert模型对所述需求文本数据进行识别,得到所述需求文本数据对应的需求文本类别数据,所述需求文本类别数据包括各所述词语所属的功能点类型,所述bert模型是基于遮蔽语言模型训练任务和下一句预测训练任务训练得到的;基于所述需求文本类别,确定所述目标软件的功能点总数;基于所述功能点总数,确定所述目标软件的软件成本。本方案基于功能点度量软件规模,功能点估算法是根据功能的复杂度来估算软件的规模,为软件成本度量提供了一种量化方法,其不依赖开发和技术,不受估算人员主观影响,降低人力成本,并提供更合理的估算结果;bert模型具有强大的特征提取能力,使用遮蔽语言模型(masked language model,mld)和下一句预测(nextsentence prediction,nsp)两个训练目标进行模型的训练,使其能够捕捉上下文信息,准确地理解和表示词汇的意义,使用bert模型进行功能点识别,能够准确识别词语的功能点类型,从而在基于词语的功能点类型度量软件规模时,获得更准确的度量结果。
本文地址:https://www.jishuxx.com/zhuanli/20241009/308863.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表