一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

对软件功能点进行自动审计的方法及装置与流程

2022-11-30 06:41:45 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种对软件功能点进行自动审计的方法及装置。


背景技术:

2.对于软件规模的评估主要有功能点分析法(fpa:function points analysis)、代码行(loc:lines of code)、德尔菲法(delphi technique)、cocomo模型、特征点(feature point)、对象点(object point)等、专家法等方法,由于功能点分析法有成熟的理论基础,可以将软件规模进行有效量化,因而得到了较广泛应用。
3.fpa法由ibm的工程师艾伦
·
艾尔布策(allan albrech)于20世纪70年代提出,随后被国际功能点用户协会(ifpug:the international function point users'group)提出的ifpug方法继承,从系统的复杂性和系统的特性这两个角度来度量系统的规模,其特征是:“在外部式样确定的情况下可以度量系统的规模”,“可以对从用户角度把握的系统规模进行度量”。功能点分析法(fpa)的主要实现方法:一个软件的各功能模块可以被分解为一系列功能项,每个功能项可以被映射为外部输入处理、外部输出处理、外部查询处理、内部逻辑文件和外部接口文件5类功能类型组成,如图1所示,该5类功能类型可分为数据功能和事务功能两大类功能,每类操作的复杂性可由底层的文件/表格数量和文件/表格的字段数量决定。数据功能:指提供给用户的以满足应用内部和外部数据需求的功能性,可分为内部逻辑文件(ilf)和外部接口文件(eif),其复杂性由数据元素类型(det)和记录元素类型(ret)决定(data element type);事务功能:指提供给用户的以满足应用数据处理需求的功能性,可分为外部输入(ei)、外部输出(eo)、外部查询(eq),其复杂性由数据元素类型(det)和文件引用类型(ftr)决定(file type referenced);基于其数据元素类型(det)、记录元素类型(ret)和文件引用类型(ftr)确定该类功能的复杂度,参见图2。基于功能类型和复杂度就可以计算出每个操作的功能点数,所有功能项的功能点数之和就是该软件的功能点数,可以评估软件规模,比如将功能点数映射,参见图3。以新闻中心门户网站软件为例,该软件可以被分解为一系列功能模块,包括子系统、一级功能和二级功能三个层次,每个二级功能都可以映射为5类功能类型中的其中一类,基于其det、ret和ftr个数可以算出该功能项复杂度,进而确认该功能项的功能点数,参见图4所示的fpa表。在软件项目立项初期,待需求和功能明确后就可以通过fpa法对该软件的规模进行评估,进而量化软件投资规模,所以软件fpa的功能点准确性至关重要,目前软件的fpa主要由设计院或软件厂商来评估,虽然fpa已经做了规范,但受限于设计院和软件厂商对fpa的理解和人为增想加软件投资预算的预期,软件的fpa预估与实际结果会有较大差异,目前没有很好地对软件fpa结果有效的评估和审计的方法和手段,目前主要靠人工方式,在出现分歧的时候由评估方或审计方与设计方协商处理,目前没有很好的工具或手段能够对软件的fpa结果的有效性和合理性进行有效的、自动化的审计。


技术实现要素:

4.针对现有技术中存在的问题,本发明实施例提供一种对软件功能点进行自动审计的方法及装置。
5.第一方面,本发明实施例提供一种对软件功能点进行自动审计的方法,包括:
6.获取软件项目功能点fpa表;
7.根据预设的审计规则对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能点数合理性进行自动审计。
8.进一步地,所述根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计,包括:
9.将所述软件项目功能点fpa表输入至预设的分类模型,得到与所述软件项目功能点fpa表对应的功能项的功能类型预测结果;其中,所述预设的分类模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的功能类型预测结果作为输出数据,基于机器学习算法训练得到的;
10.基于与所述软件项目功能点fpa表对应的功能项的功能类型预测结果,和实际的功能类型进行一致性对比;若不一致,则进行复核。
11.进一步地,所述根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能点数合理性进行自动审计,具体包括:
12.将所述软件项目功能点fpa表输入至预设的平均功能点数预测模型,得到与所述软件项目功能点fpa表对应的功能项的平均功能点数预测结果;其中,所述预设的平均功能点数预测模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的平均功能点数预测结果作为输出数据,基于机器学习算法训练得到的;
13.基于与所述软件项目功能点fpa表对应的功能项的平均功能点数预测结果,和所述软件项目功能点fpa表中的功能项的功能点数进行对比;若偏差大于预设值,则进行复核。
14.进一步地,所述预设的分类模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的功能类型预测结果作为输出数据,基于机器学习算法训练得到的,具体包括:
15.s1、获取满足预设准确率条件的历史软件项目功能点fpa表,并基于满足预设准确率条件的历史软件项目功能点fpa表抽取功能项描述列和功能类型列;
16.s2、基于所述功能项描述列和所述功能类型列确定功能项与功能类型对应关系;
17.s3、基于所述功能项描述列进行分词和功能项描述特征提取;
18.s4、基于所述功能项描述特征提取的结果构造词向量;
19.s5、基于所述词向量生成预设的分类模型;
20.s6、基于预设的分类模型对满足预设准确率条件的历史软件项目功能点fpa表中功能项的功能类型进行预测。
21.进一步地,所述预设的平均功能点数预测模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的平均功能点数预测结果作为输出数据,基于机器学习算法训练得到的,包括:
22.s1、获取满足预设准确率条件的历史软件项目功能点fpa表;
23.s2、基于满足预设准确率条件的历史软件项目功能点fpa表获取功能项描述列;
24.s3、基于msr语料库和所述功能项描述列构建复合语料库;
25.s4、基于word2vec的连续字包模型cbow对所述复合语料库进行训练构造预设的平均功能点数预测模型;
26.s5、基于所述预设的平均功能点数预测模型和word2vec模型的语义相似度能力获取与功能项描述满足预设相近规则的n个功能项列表,n为正整数;
27.s6、基于与功能项描述满足预设相近规则的n个功能项列表确定平均功能点数。
28.进一步地,所述根据预设的审计规则对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计,包括:
29.基于fpa法和所述软件项目功能点fpa表填写的内容通过脚本或excel公式对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计。
30.进一步地,所述根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计,包括:
31.基于fpa法和所述软件项目功能点fpa表填写的内容通过脚本或excel公式对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计。
32.第二方面,本发明实施例提供了一种对软件功能点进行自动审计的装置,包括:
33.获取模块,用于获取软件项目功能点fpa表;
34.自动审计模块,用于根据预设的审计规则对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能点数合理性进行自动审计。
35.第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面所述的对软件功能点进行自动审计的方法的步骤。
36.第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上第一方面所述的对软件功能点进行自动审计的方法的步骤。
37.由上述技术方案可知,本发明实施例提供的对软件功能点进行自动审计的方法及装置,通过获取软件项目功能点fpa表;根据预设的审计规则对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能点数合理性进行自动审计。本实施例通过对软件fpa评估表(即软件项目功能点fpa表)制定明确的审计规则,从而实现对软件fpa表即软件项目功能点fpa表)进行自动化审计,降低了功能点fpa审计的主观因素影响,同时提高了审计效率。
附图说明
38.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为现有技术提供的五类功能类型组成的示意图;
40.图2为现有技术提供的ei复杂度、eo或eq复杂度、eif或ilf复杂度的示意图;
41.图3为现有技术提供的ei功能点数、eo功能点数、eq功能点数、eif或ilf功能点数的示意图;
42.图4为现有技术提供的fpa表的示意图;
43.图5为本发明一实施例提供的对软件功能点进行自动审计的方法的流程示意图;
44.图6为本发明一实施例提供的功能模块分解为功能项示意图;
45.图7为本发明一实施例提供的针对功能项的功能类型的准确性进行自动审计的处理流程示意图;
46.图8为本发明一实施例提供的目录结构示意图;
47.图9为本发明一实施例提供的针对功能项的功能点数合理性进行自动审计的处理流程示意图;
48.图10为本发明一实施例提供的对软件功能点进行自动审计的装置的结构示意图;
49.图11为本发明一实施例中电子设备的实体结构示意图。
具体实施方式
50.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面将通过具体的实施例对本发明提供的对软件功能点进行自动审计的方法进行详细解释和说明。
51.图5为本发明一实施例提供的对软件功能点进行自动审计的方法的流程示意图;
如图5所示,该方法包括:
52.步骤101:获取软件项目功能点fpa表。
53.步骤102:根据预设的审计规则对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能点数合理性进行自动审计。
54.在本步骤中,需要说明的是,目前没有很好地对软件fpa结果有效的评估和审计的方法和手段,主要靠人工方式;若靠人工方式进行,则存在以下问题:1、没有明确的对fpa进行审计的审计规则,审计结果主观性较强;2、对功能项的功能点数评估出现分歧的时候没有已经被证实可靠的经验值供参考,只能靠协商解决;3、规模较大的软件的fpa功能项可能有数千条甚至是数万条,人工逐条审计效率低、成本高;4、没有有效的、规范化的自动化的评审工具或方法;基于上述内容,本发明实施例提出软件功能项功能点fpa表审计规则,即根据预设的审计规则对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能点数合理性进行自动审计。经实际生产实践验证,本发明实施例提供的对软件功能点进行自动审计的方法,能够使得软件fpa表的评估工作通过工具自动化方式实现,从而有效地降低了人力成本;采用本发明实施例提供的对软件功能点进行自动审计的方法,识别的无效的fpa功能点可以占全部功能点数的15%-20%,较大幅度降低了软件投资规模,减少了支出,节省了软件投资成本。
55.在本发明实施例中,需要说明的是,基于软件项目fpa表制定审计规则(即预设的审计规则),审计规则主要有以下5个:1、每个功能项的det个数、ret个数和ftr个数准确(即软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性);2、每个功能项的复杂度准确(即软件项目功能点fpa表中功能项复杂度的准确性);3、每个功能项复杂度对应的功能点数准确(即软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性);4、每个功能项的功能类型准确(即软件项目功能点fpa表中功能项的功能类型的准确性);5、每个功能项的功能点数合理(即软件项目功能点fpa表中功能项的功能点数合理性);如果上述5个规则满足,那么该软件fpa完全可以满足立项阶段对软件规模的评估。
56.在本发明实施例中,针对审计规则中的1、软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性,或,2、软件项目功能点fpa表中功能项复杂度的准确性,或,3、软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性,均可以基于fpa的法基于软件项目fpa表填写的内容通过脚本或
excel公式逐一核实就可以快速自动化实现;也即,基于fpa法和所述软件项目功能点fpa表填写的内容通过脚本或excel公式对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计;基于fpa法和所述软件项目功能点fpa表填写的内容通过脚本或excel公式对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计;基于fpa法和所述软件项目功能点fpa表填写的内容通过脚本或excel公式对所述软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性进行自动审计。
57.在本发明实施例中,针对审计规则中的4、软件项目功能点fpa表中功能项的功能类型的准确性,可以通过对历史已经完成人工审核的准确率较高的历史软件项目fpa进行建模构建分类模型,再应用在待审计的软件项目fpa表的功能项,如果预测的功能类型和实际的功能类型不一致再进行人工或机器复核;也即,将所述软件项目功能点fpa表输入至预设的分类模型,得到与所述软件项目功能点fpa表对应的功能项的功能类型预测结果;其中,所述预设的分类模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的功能类型预测结果作为输出数据,基于机器学习算法训练得到的;基于与所述软件项目功能点fpa表对应的功能项的功能类型预测结果,和实际的功能类型进行一致性对比;若不一致,则进行复核。
58.在本发明实施例中,针对审计规则中的5、软件项目功能点fpa表中功能项的功能点数合理性,可以通过使用对历史已经完成人工审核的准确率较高的历史软件项目fpa的功能项基于word2vec算法进行连续字包模型cbow(continuous bag of words model)建模构建词向量,基于语义相似度查询与待审计功能项描述最接近的历史功能项,基于匹配的历史功能项的功能点的平均值与待审计的功能项的功能点进行对比,如果偏差大于20%则进行人工或机器复核;也即,将所述软件项目功能点fpa表输入至预设的平均功能点数预测模型,得到与所述软件项目功能点fpa表对应的功能项的平均功能点数预测结果;其中,所述预设的平均功能点数预测模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的平均功能点数预测结果作为输出数据,基于机器学习算法训练得到的;基于与所述软件项目功能点fpa表对应的功能项的平均功能点数预测结果,和所述软件项目功能点fpa表中的功能项的功能点数进行对比;若偏差大于预设值,则进行复核。
59.由此可见,通过对软件功能点进行自动审计的方法可以对软件的功能点数的科学性、合理性和有效性进行自动化审计,可快速有效评估软件规模的合理性,对于软件项目投资规模的有效性评估有重要意义。
60.由上面技术方案可知,本发明实施例提供的对软件功能点进行自动审计的方法,通过获取软件项目功能点fpa表;根据预设的审计规则对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能点数合理性进行自动审计。本实施例通过对软
件fpa评估表(即软件项目功能点fpa表)制定明确的审计规则,从而实现对软件fpa表即软件项目功能点fpa表)进行自动化审计,降低了功能点fpa审计的主观因素影响,同时提高了审计效率。
61.在上述实施例的基础上,在本实施例中,所述根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计,包括:
62.将所述软件项目功能点fpa表输入至预设的分类模型,得到与所述软件项目功能点fpa表对应的功能项的功能类型预测结果;其中,所述预设的分类模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的功能类型预测结果作为输出数据,基于机器学习算法训练得到的;
63.基于与所述软件项目功能点fpa表对应的功能项的功能类型预测结果,和实际的功能类型(即所述软件项目功能点fpa表中相应的内容所填写的功能类型)进行一致性对比;若不一致,则进行复核。
64.在本实施例中,评估每个功能项的功能类型的准确性,需要说明的是,任何一个软件的任意功能模块都可以被分解为一些列功能项,参见图6所示的功能模块分解为功能项示意图。
65.本实施例中,所述预设的分类模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的功能类型预测结果作为输出数据,基于机器学习算法训练得到的;举例来说,基于人工已经验证过的完成后评估的软件项目fpa表作为训练集,再将训练好的模型应用于待稽核的功能项对功能类型进行预测,对于预测的功能类型和实际填写的功能类型不一致再进行人工或机器复核,本发明实施例提供的对软件功能点进行自动审计的方法,通过预设的分类模型对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计。
66.由上面技术方案可知,本发明实施例提供的对软件功能点进行自动审计的方法,通过对软件fpa评估表制定明确的审计规则(即预设的审计规则),通过机器学习算法实现审计规则(即通过预设的分类模型对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计),从而实现基于机器学习算法对软件fpa表进行自动化审计,降低了fpa审计的主观因素影响,同时也大幅提高了审计效率。
67.在上述实施例的基础上,在本实施例中,所述根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能点数合理性进行自动审计,具体包括:
68.将所述软件项目功能点fpa表输入至预设的平均功能点数预测模型,得到与所述软件项目功能点fpa表对应的功能项的平均功能点数预测结果;其中,所述预设的平均功能点数预测模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的平均功能点数预测结果作为输出数据,基于机器学习算法训练得到的;
69.基于与所述软件项目功能点fpa表对应的功能项的平均功能点数预测结果,和所述软件项目功能点fpa表中的功能项的功能点数进行对比;若偏差大于预设值,则进行复核。
70.在本实施例中,评估每个功能项的功能点数合理性,需要说明的是,所述预设的平
均功能点数预测模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的平均功能点数预测结果作为输出数据,基于机器学习算法训练得到的;举例来说,基于已经验证过的完成后评估的软件项目fpa表作为训练集,对于功能项基于基于word2vec算法进行cbow(continuous bag of words model)建模构建和丰富词向量模型,对于待稽核的功能项描述基于词向量模型进行相似度匹配,获取相似度高的5个功能项,取该5个功能项的平均功能点数作为待审计的功能项的预测功能点数,当预测功能点数和填写的功能点数有20%以上偏差则进行人工复核;本发明实施例提供的对软件功能点进行自动审计的方法,通过预设的平均功能点数预测模型对软件项目功能点fpa表中功能项的功能点数合理性进行自动审计。
71.由上面技术方案可知,本发明实施例提供的对软件功能点进行自动审计的方法,通过对软件fpa评估表制定明确的审计规则(即预设的审计规则),通过机器学习算法实现审计规则(即通过预设的平均功能点数预测模型对软件项目功能点fpa表中功能项的功能点数合理性进行自动审计),从而实现基于机器学习算法对软件fpa表进行自动化审计,降低了fpa审计的主观因素影响,同时也大幅提高了审计效率。
72.在上述实施例的基础上,在本实施例中,所述预设的分类模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的功能类型预测结果作为输出数据,基于机器学习算法训练得到的,具体包括:
73.s1、获取满足预设准确率条件的历史软件项目功能点fpa表,并基于满足预设准确率条件的历史软件项目功能点fpa表抽取功能项描述列和功能类型列;
74.s2、基于所述功能项描述列和所述功能类型列确定功能项与功能类型对应关系;
75.s3、基于所述功能项描述列进行分词和功能项描述特征提取;
76.s4、基于所述功能项描述特征提取的结果构造词向量;
77.s5、基于所述词向量生成预设的分类模型;
78.s6、基于预设的分类模型对满足预设准确率条件的历史软件项目功能点fpa表中功能项的功能类型进行预测。
79.为了更好的理解本发明实施例,下面结合实施例进一步阐述本发明的内容,但本发明不仅仅局限于下面的实施例。
80.举例来说,参见图7所示的针对功能项的功能类型的准确性进行自动审计的处理流程示意图:
81.1、收集人工验证过历史fpa表:如收集18年至19年的软件已经交付并通过验收项目,该类项目的fpa表经过人工逐个审核,其功能项描述与功能类型准确性已经得到人工验证,从该类软件fpa表中抽取功能项描述列(二级功能)和功能类型列。
82.2、梳理功能项描述与功能类型对应关系,将功能类型作为目录,每个功能项描述作为文本文件存放在该功能类型目录下,整个目录结构如图8所示。
83.3、分词,功能特征提取:如采用相邻两个字符构成的所有二元语法作为“词”对功能描述部分进行中文分词。
84.4、构造词向量:如基于获取的分词构造词袋向量,把功能项描述转为词向量后就可以使用分类算法构建分类模型。
85.5、生成分类模型:如将词向量(80%作为训练集)作为输入,采用支持向量分类器svm对词向量进行训练输出分类模型,用剩余的词向量作为测试集对模型进行验证,其中准确率p、召回率r和调和平均f1值三个指标都可以在95%以上。
86.6、功能类型预测:如将模型应用于待评估的功能项描述对功能类型进行预测,如果预测的功能类型与填写的功能类型不一致则进行人工复审。
87.由上面技术方案可知,本发明实施例提供的对软件功能点进行自动审计的方法,实现对软件功能项的功能类型进行自动分类。
88.在上述实施例的基础上,在本实施例中,所述预设的平均功能点数预测模型为采用满足预设准确率条件的历史软件项目功能点fpa样本表作为输入数据,以及,与所述历史软件项目功能点fpa样本表对应的功能项的平均功能点数预测结果作为输出数据,基于机器学习算法训练得到的,包括:
89.s1、获取满足预设准确率条件的历史软件项目功能点fpa表;
90.s2、基于满足预设准确率条件的历史软件项目功能点fpa表获取功能项描述列;
91.s3、基于msr语料库和所述功能项描述列构建复合语料库;
92.s4、基于word2vec的连续字包模型cbow对所述复合语料库进行训练构造预设的平均功能点数预测模型;
93.s5、基于所述预设的平均功能点数预测模型和word2vec模型的语义相似度能力获取与功能项描述满足预设相近规则的n个功能项列表,n为正整数;
94.s6、基于与功能项描述满足预设相近规则的n个功能项列表确定平均功能点数。
95.为了更好的理解本发明实施例,下面结合实施例进一步阐述本发明的内容,但本发明不仅仅局限于下面的实施例。
96.举例来说,参见图9所示的针对功能项的功能点数合理性进行自动审计的处理流程示意图:
97.1、收集人工验证过历史fpa表:收集18年至19年的软件已经交付并通过验收项目,该类项目的fpa表经过人工逐个审核,其功能项描述与功能类型准确性已经得到人工验证;
98.2、获取功能描述项列表:从该类软件fpa表中抽取功能项描述列(二级功能),构成功能项描述列表;
99.3、基于msr语料库(微软亚洲研究院语料库)结合功能描述项列表构建新的复合语料库;
100.4、模型训练:基于word2vec的cbow(continuous bag of words model)模型对复合语料库进行训练生成模型,cbow是窗口语言模型构造词向量,一个窗口指的是句子中的一个固定长度的片段,窗口中间的词语为中心词,窗口中其他词语称为中心词的上下文。cbow模型通过三层神经网络接受上下文的特征向量,预测中心词。
101.5、模型应用:将模型应用于待预测功能项,基于word2vec模型的语义相似度能力获取与待评估功能项描述最相近的5个功能项列表;
102.6、预测功能点:从已经验证过的fpa表中获取相似功能项的功能点数的总和除以相似功能项数作为预测功能点数,如果预测功能点数大于填写的功能点数的20%(经多次验证,超过20%基本存在多填功能点数问题)则进行人工复审。
103.由上面技术方案可知,本发明实施例提供的对软件功能点进行自动审计的方法,
实现对软件功能项的功能点数合理性进行自动审计。
104.在上述实施例的基础上,在本实施例中,所述根据预设的审计规则对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计,包括:
105.基于fpa法和所述软件项目功能点fpa表填写的内容通过脚本或excel公式对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计。
106.在上述实施例的基础上,在本实施例中,所述根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计,包括:
107.基于fpa法和所述软件项目功能点fpa表填写的内容通过脚本或excel公式对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计。
108.图10为本发明一实施例提供的对软件功能点进行自动审计的装置的结构示意图,如图10所示,该装置包括:获取模块201和自动审计模块202,其中:
109.其中,获取模块201,用于获取软件项目功能点fpa表;
110.自动审计模块202,用于根据预设的审计规则对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能点数合理性进行自动审计。
111.本发明实施例提供的对软件功能点进行自动审计的装置具体可以用于执行上述实施例的对软件功能点进行自动审计的方法,其技术原理和有益效果类似,具体可参见上述实施例,此处不再赘述。
112.基于相同的发明构思,本发明实施例提供一种电子设备,参见图11,电子设备具体包括如下内容:处理器301、通信接口303、存储器302和通信总线304;
113.其中,处理器301、通信接口303、存储器302通过通信总线304完成相互间的通信;通信接口303用于实现各建模软件及智能制造装备模块库等相关设备之间的信息传输;处理器301用于调用存储器302中的计算机程序,处理器执行计算机程序时实现上述各方法实施例所提供的方法,例如,处理器执行计算机程序时实现下述步骤:获取软件项目功能点fpa表;根据预设的审计规则对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能点数合理性进行自动审计。
114.基于相同的发明构思,本发明又一实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法实施例
提供的方法,例如,获取软件项目功能点fpa表;根据预设的审计规则对所述软件项目功能点fpa表中功能项的数据元素类型det个数、记录元素类型ret个数和文件引用类型ftr个数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项复杂度对应的功能点数的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能类型的准确性进行自动审计;和/或,根据预设的审计规则对所述软件项目功能点fpa表中功能项的功能点数合理性进行自动审计。
115.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
116.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,
117.服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
118.此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
119.此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
120.此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
121.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献