软件造价估算方法及装置与流程

文档序号:21368318发布日期:2020-07-04 04:44阅读:636来源:国知局
软件造价估算方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种软件造价估算方法及装置。



背景技术:

软件造价估算是从用户视角出发,通过量化系统功能、以及系统的逻辑设计来度量软件的规模,进而估算得到软件的造价。其中,功能点规模度量方法在国际上的应用已经比较广泛,并且已经取代代码行成为最主流的软件规模度量方法。该方法适用于软件造价估算等多种应用场景,为软件成本预算、招投标、软件项目策划、软件成本结算、软件过程数据采集等提供定量指导。

相关技术中,软件造价估算都是基于人工对需求说明书中的内容进行拆分和计算,然而,人工对需求说明书的内容进行拆分和计算的效率较低。



技术实现要素:

本发明实施例提供一种软件造价估算方法及装置,以解决相关技术中人工对需求说明书的内容进行拆分和计算的效率较低的问题。

为了解决上述技术问题,本发明是这样实现的:

第一方面,本发明实施例提供了一种软件造价估算方法,所述方法包括:

获取需求说明书;

确定所述需求说明书中的各个标题、以及每个标题的说明内容;

确定每个标题的说明内容中的至少一个功能关键词;

基于每个功能关键词和所述每个功能关键词所属的标题,确定每个功能关键词的类型;

基于所述需求说明书中每个功能关键词的类型和功能关键词的总数,计算与所述需求说明书对应的软件项目的造价估值。

进一步地,所述确定每个标题的说明内容中的至少一个功能关键词的步骤,包括:

对每个标题的说明内容进行分句操作,得到至少一个说明句,其中,每个说明句位于两个切分标记之间,所述切分标记包括标点符号和分隔符;

对每个说明句分别进行语义分析,得到每个标题的说明内容中的至少一个功能关键词。

进一步地,所述对每个说明句分别进行语义分析的步骤,包括:

识别每个说明句的句式类型;

确定说明句中的动词,并基于所示动词和所述句式类型确定每个说明句中的被支配对象;

根据所述动词和所述被支配对象确定每个说明句的功能关键词。

进一步地,所述基于每个功能关键词和所述每个功能关键词所属的标题,确定每个功能关键词的类型的步骤,包括:

对每个标题进行语义分析,得到每个标题的含义信息;

基于目标功能关键词和目标含义信息,确定目标功能关键词的类型,所述目标功能关键词为所述需求说明书中的任意一个功能关键词,所述目标含义信息为所述目标含义信息所属的标题的含义信息。

所述确定所述需求说明书中的各个标题、以及每个标题的说明内容的步骤,包括:

获取所述需求说明书中的每一行文字的特征信息;

基于每一行文字的特征信息,确定所述需求说明书中的各个标题,所述特征信息包括文字的字体、颜色、字号、粗细、下划线、倾斜、以及对文字的排布格式中的至少一项;

将相邻两个标题之间的说明内容作为目标标题的说明内容信息,所述目标标题为所述相邻两个标题中在所述需求说明书布局顺序在前的标题。

第二方面,本发明实施例还提供一种软件造价估算装置,包括:

获取模块,用于获取需求说明书;

第一确定模块,用于确定所述需求说明书中的各个标题、以及每个标题的说明内容;

第二确定模块,用于确定每个标题的说明内容中的至少一个功能关键词;

第三确定模块,用于基于每个功能关键词和所述每个功能关键词所属的标题,确定每个功能关键词的类型;

计算模块,用于基于所述需求说明书中每个功能关键词的类型和功能关键词的总数,计算与所述需求说明书对应的软件项目的造价估值。

进一步地,所述第二确定模块,包括:

分句子模块,用于对每个标题的说明内容进行分句操作,得到至少一个说明句,其中,每个说明句位于两个切分标记之间,所述切分标记包括标点符号和分隔符;

第一分析子模块,用于对每个说明句分别进行语义分析,得到每个标题的说明内容中的至少一个功能关键词。

进一步地,所述第一分析子模块,包括:

识别单元,用于识别每个说明句的句式类型;

第一确定单元,用于确定说明句中的动词,并基于所示动词和所述句式类型确定每个说明句中的被支配对象;

第二确定单元,用于根据所述动词和所述被支配对象确定每个说明句的功能关键词。

第三方面,本发明实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的软件造价估算方法的步骤。

第四方面,本发明实施例还提供一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的软件造价估算方法的步骤。

在本发明实施例中,通过获取需求说明书;确定所述需求说明书中的各个标题、以及每个标题的说明内容;确定每个标题的说明内容中的至少一个功能关键词;基于每个功能关键词和所述每个功能关键词所属的标题,确定每个功能关键词的类型;基于所述需求说明书中每个功能关键词的类型,计算与所述需求说明书对应的软件项目的造价估值。这样,能够由计算机针对需求说明书中的内容通过智能语义分析技术来对软件的规模进行度量,快速输出造价估值,从而提高对软件造价估值的计算效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种软件造价估算方法的流程图;

图2为本发明实施例提供的一种软件造价估算装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1为本发明实施例提供的一种软件造价估算方法,所述方法包括:

步骤101:获取需求说明书。

本发明实施例中,需求说明书为文字可识别的电子文件。获取需求说明书的方式可以是接收用户上传的文字可识别的需求说明书,也可以是接收用户上传的不可识别的电子文件(例如:图片)之后,利用扫描工具和文字识别工具后转换得到的文字可识别的需求说明书,此处不作限定。

步骤102:确定所述需求说明书中的各个标题、以及每个标题的说明内容。

本发明实施例中,标题和说明内容的文字特征可以不同,以此用于区分需求说明书中的标题和说明内容,其中,标题还可以分为不同等级的标题,不同等级的标题的文字特征还可以不同,以此进一步区分不同等级的标题。

可以通过利用不同的文字特征作为特征、结合分类算法对多个测试需求说明书进行训练,从而得到通过不同的文字特征将需求说明书中的文字分类为标题和说明内容的模型。后续获取到新的需求说明书时,即可直接利用该模型确定需求说明书中的各个标题和说明内容。

其中,若发现确定的两个标题分别处于需求说明书中相邻的2行,可以对这两个标题进行合并,变为一个标题。

在一可选的实施方式中,步骤102可以包括:

获取所述需求说明书中每一行文字的特征信息;

基于每一行文字的特征信息,确定所述需求说明书中的各个标题,所述特征信息包括文字的字体、颜色、字号、粗细、下划线、倾斜、以及对文字的排布格式中的至少一项;

将相邻两个标题之间的说明内容作为目标标题的说明内容信息,所述目标标题为所述相邻两个标题中在所述需求说明书布局顺序在前的标题。

通常标题与说明内容是分行显示的,因此本实施方式中以位于同一行的文字作为一个确定对象来确定文字类型,例如:同一行的文字均是标题,或者同一行的文字均是说明内容。

具体的,在获取每一行文字的特征信息之后,可以根据预设的文字类型与特征信息之间的映射关系确定每一行文字是标题还是说明内容。

上述对文字的排布格式可以是文字的左对齐、居中对齐、右对齐和两端对齐中的至少一项。通过上述文字的特征信息作为分辨不同类型文字的依据,从而能够对需求说明书中的标题和说明内容进行区分。

另外,每个说明内容是紧邻其所属的标题的,且通常的文字习惯是说明内容位于其所属标题之后,因此可以将相邻两个标题中的说明内容作为在前的标题的说明内容。

步骤103:确定每个标题的说明内容中的至少一个功能关键词。

所述功能关键词是指需求说明书中所提出的希望对应制成的软件具备相应功能的描述信息,功能关键词越多表明软件具有的功能越多,因此制成的软件所需的工作量也会越大,时间成本和人力成本也会越多,造成软件的造价估值越高。

在一可选的实施方式中,步骤103可以包括:

对每个标题的说明内容进行分句操作,得到至少一个说明句,其中,每个说明句位于两个切分标记之间,所述切分标记包括标点符号和分隔符;

对每个说明句分别进行语义分析,得到每个标题的说明内容中的至少一个功能关键词。

本实施方式中,通过将每个说明内容中位于两个切分标记之间的句子单独拆分为一个说明句。

通过对至少一个说明句逐一进行语义分析或者并行多个说明句同时进行语义分析的方式,能够确定每个说明句中是否存在功能关键词,若存在功能关键词是几个功能关键词和各功能关键词具体的内容。其中,每个标题的说明内容中至少包括一个功能关键词。

本发明实施例中提到的语义分析可以是智慧语义感知算法,其包括内容分类、聚类、主题分析、语义分析、实体识别、启发式搜索引擎、推荐引擎、摘要引擎等。

由于语言的表达方式多种多样,且一句完整的话较长时容易发生歧义而出现多种理解。因此本实施方式中,通过将说明内容均拆分为短句,能够避免语义分析一次性对较长的文字进行分析出现错误的概率,提高语义分析的准确性。

进一步地,上述对每个说明句分别进行语义分析的步骤,可以包括:

识别每个说明句的句式类型;

确定说明句中的动词,并基于所述动词和所述句式类型确定每个说明句中的被支配对象;

根据所述动词和所述被支配对象确定每个说明句的功能关键词。

由于功能关键词是一种对功能行为实现方式的描述,其中必然包括动词、以及被该动词作用的对象,另外可能包括或者不包括该动词的支配对象。

本实施方式中,在对说明句进行语义分析时,首先通过对每个说明句的句式类型进行分析;之后确定说明句中的动词,例如:调用、筛选等等,确定说明句中的动词后,结合句式类型确定说明句中的被支配对象,其中,被支配对象是名词;最后,通过动词和被支配对象确定说明句的功能关键词。

例如:说明句为“可以对公司的组织架构进行维护”,该句式类型为动词在后的句式类型,通过确定动词“维护”后,在动词之前确定被支配对象“组织架构”,通过对动词和被支配对象进行组合,确定说明句的功能关键词“维护组织架构”。

需要说明的是,在说明句包括动词的情况下,动词的数量可能超过一个,例如:说明句为“可以维护和图形化展示公司的组织架构”,该句式类型为动词在前的句式类型,通过确定动词“维护”和“展示”后,在动词之后确定被支配对象“组织架构”,通过对动词和被支配对象进行组合,确定说明句的功能关键词“维护组织架构”和“展示组织架构”。

另外,也可以存在动词的数量为一个且被支配对象的数量超过一个,以及动词的数量超过一个且被支配对象的数量与动词的数量相同等多种情况。其中原理和上述相同或相似,本实施方式不再赘述。

需要说明的是,在说明句较长发生说明句的句式类型既包括动词在前又包括动词在后的情况时,参照上述动词在后的方式确定功能关键词。

本实施方式中,通过句式类型和动词确定被支配对象,并通过动词和被支配对象的组合得到功能关键词的方式,是基于说明句本身的表达方式来确定功能关键词的,这样能够提高说明句中对功能关键词确定的精确性。

步骤104:基于每个功能关键词和所述每个功能关键词所属的标题,确定每个功能关键词的类型。

本发明实施例中,功能关键词的类型包括5中,分别是外部输入(ei)、外部输出(ei)、外部查询(eq)、内部逻辑文件(internallogicfile,简称ilf)和外部接口文件(externalinterfacefile,简称elf)。

相同的功能关键词可能在需求说明书中多个标题的说明内容中出现,而且相同的功能关键词在多个标题下的类型并不相同。以功能关键词“修改岗位”为例进行说明,只有在标题为功能关键词的父关联标题(例如:“人事岗位管理”)的说明内容中时,功能关键词“修改岗位”的类型才是内部逻辑文件(ilf),而出现在其他标题(例如:研发架构)的说明内容中时,功能关键词“修改岗位”实际只是对父关联标题中的功能进行接口的调用,此时为外部输入(ei),因为这两者的工作量是不同的,因此需要通过不同的类型来进行区分。

其他类型同样是基于上述工作方式和工作量的不同以确定不同类型来进行区分的,这样有利于对软件造价估值的准确性。

在一可选的实施方式中,步骤104可以包括:

对每个标题进行语义分析,得到每个标题的含义信息;

基于目标功能关键词和目标含义信息,确定目标功能关键词的类型,所述目标功能关键词为所述需求说明书中的任意一个功能关键词,所述目标含义信息为所述目标含义信息所属的标题的含义信息。

本实施方式中,还包括每个功能关键词与其父关联文字之间的映射关系,该映射关系还可以包括标题的同义词和近义词、以及功能关键词的同义词和近义词,例如:人事管理为新建岗位的父关联,增加功能关键词的同义词和近义词之后,人事管理同样可以为创建岗位、创建职位、新建职位等功能关键词的父关联。

因此,通过对每个标题进行语义分析,后续对每一个功能关键词进行分类时可以结合该功能关键词所属的标题的含义信息来进行确定,提高对每一个功能关键词分类的准确性,进而有利于对软件造价估值的准确性。

步骤105:基于所述需求说明书中每个功能关键词的类型和功能关键词的总数,计算与所述需求说明书对应的软件项目的造价估值。

上述已经说明,功能关键词的不同类型对应着不同的工作量,因此通过对工作量较大的类型配置较大的权重值,工作量较小的类型配置较小的权重值,即能够计算出与需求说明书对应的软件项目的功能点数。具体的,假设需求说明书中的功能关键词的总数为12,其中,3个ilf、1个elf、4个ei、1个eo和3个eq,其中,ilf的权重值是10、eif的权重值是7、ei的权重值是4、eo的权重值是5、eq的权重值是4,则需求说明书对应的软件项目的功能点数s=3×10+1×7+4×4+1×5+3×4=70。

通过与所述需求说明书对应的软件项目的功能点数即可计算得到软件项目的造价估值。

具体的,软件研发成本sdc=(s×pdr)×swf×rdf×f+dnc;其中,s为软件项目的功能点数;pdr为生产率;swf为软件因素调整因子;rdf为开发因素调整因子;f为人力成本费率;dnc为直接非人力成本。而上述除s之外的5个参数均与需求说明书无关,是根据不同区域、不同公司实际情况等因素确定的因子,确定这些参数后即可结合软件项目的功能点数计算的到软件研发成本。

以上述例子为例,假设pdr=1,swf=1,rdf=1,dnc=0,f=1000元/人天,则可以计算得到sdc=(s×pdr)×swf×rdf×f+dnc=(3×10+1×7+4×4+1×5+3×4)×1×1×1×1000+0=70000元。

需要说明的是,以上只是针对一种情况对软件项目的造价估值的举例说明,不应以此为限。可以理解为任何基于上述方式计算得到软件项目的功能点数,并结合功能点数计算软件项目的造价估值的方案均属于本发明实施例所要求的保护的范围。

请参阅图2,图2为本发明实施例提供的一种软件造价估算装置的结构图,如图2所示,软件造价估算装置200包括:

获取模块210,用于获取需求说明书;

第一确定模块220,用于确定所述需求说明书中的各个标题、以及每个标题的说明内容;

第二确定模块230,用于确定每个标题的说明内容中的至少一个功能关键词;

第三确定模块240,用于基于每个功能关键词和所述每个功能关键词所属的标题,确定每个功能关键词的类型;

计算模块250,用于基于所述需求说明书中每个功能关键词的类型和功能关键词的总数,计算与所述需求说明书对应的软件项目的造价估值。

可选的,所述第二确定模块230,包括:

分句子模块,用于对每个标题的说明内容进行分句操作,得到至少一个说明句,其中,每个说明句位于两个切分标记之间,所述切分标记包括标点符号和分隔符;

第一分析子模块,用于对每个说明句分别进行语义分析,得到每个标题的说明内容中的至少一个功能关键词。

可选的,所述第一分析子模块,包括:

识别单元,用于识别每个说明句的句式类型;

第一确定单元,用于确定说明句中的动词,并基于所示动词和所述句式类型确定每个说明句中的被支配对象;

第二确定单元,用于根据所述动词和所述被支配对象确定每个说明句的功能关键词。

发明实施例的软件造价估算装置200能够实现图1的方法实施例中实现的各个过程,为避免重复,这里不再赘述。

本发明实施例的软件造价估算装置200,能够提高对软件造价估值的计算效率。

本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现图1所示实施例中软件造价估算方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述软件造价估算方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1