CN116774986A - 软件开发工作量自动评估方法、装置、存储介质及处理器 - Google Patents
软件开发工作量自动评估方法、装置、存储介质及处理器 Download PDFInfo
- Publication number
- CN116774986A CN116774986A CN202310789950.6A CN202310789950A CN116774986A CN 116774986 A CN116774986 A CN 116774986A CN 202310789950 A CN202310789950 A CN 202310789950A CN 116774986 A CN116774986 A CN 116774986A
- Authority
- CN
- China
- Prior art keywords
- software development
- workload
- evaluation
- complexity
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011156 evaluation Methods 0.000 title claims abstract description 94
- 238000013461 design Methods 0.000 claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000013210 evaluation model Methods 0.000 claims abstract description 23
- 230000018109 developmental process Effects 0.000 claims description 140
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012417 linear regression Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000007781 pre-processing Methods 0.000 claims description 10
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000012937 correction Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 230000002829 reductive effect Effects 0.000 abstract description 11
- 238000011161 development Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 238000012821 model calculation Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013278 delphi method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002050 diffraction method Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000004836 empirical method Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012015 optical character recognition Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/77—Software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06313—Resource planning in a project environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Life Sciences & Earth Sciences (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Biodiversity & Conservation Biology (AREA)
- Game Theory and Decision Science (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种软件开发工作量自动评估方法、装置、存储介质及处理器,属于计算机技术领域。方法包括:获取软件开发设计稿;根据所述设计稿识别出工作量评估关键因子;将所述工作量评估关键因子输入训练好的软件开发工作量评估模型,计算得到软件开发的评估用时。该方法依据软件开发的设计稿来提取工作量评估关键因子,工作量评估关键因子依托设计稿确定,与设计稿关联度高,然后根据提取的工作量评估关键因子估算软件开发评估用时,评估得到的评估用时准确度高,且能够实现自动化获取工作量评估关键因子,自动估算软件开发的评估用时,节省人力资源,降低主观因素对评估结果的影响。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种软件开发工作量自动评估方法、一种软件开发工作量自动评估装置、一种存储介质及一种处理器。
背景技术
软件开发流程中,开发工作量评估是一个非常重要的环节,工作量评估是计划系统版本迭代时间安排的重要依据,而工作量评估的准确性与否直接影响系统上线风险。目前常用的方法是依赖个人经验来评估开发工作量,缺少客观统一的开发工作量评估方法,因为个体存在主观差异性,且不同项目也存在差异,因此会造成评估不准确问题;同时,工作量评估会贯穿敏捷开发实施过程中的每一次迭代,重复性的人力劳动会耗费大量人力资源,且没有客观的量化数据依据,在项目立项和结算阶段难以得到项目管理部门的认可。
现有的常用工作量评估法包括经验法(DELPHI方法)和功能点分析法(FPA),都是基于整个项目维度估算,如基于历史相似项目经验估算或者根据功能点来估算。DELPHI方法依赖少数专家且会消耗非常多的时间,同时可能存在共同的偏见。FPA法从用户的角度出发,将系统分为数据功能和事物功能两大类,分别根据具体的规则来计算功能点,最后结合系统的特征因子来调整功能点数,从而得到最终的系统规模。FPA方法只考虑可见部分的复杂度,对系统内部复杂性考虑太少,而且FPA只是简单假设全部是部分的和,没有考虑系统集成带来的额外开销。此类估算工作量方法都比较粗粒度,且一般都用在项目立项阶段。但是在项目实施阶段,具体工作量估算同样重要。在项目实施阶段,每一次版本迭代的工作量评估非常重要,评估的准确性直接影响到是否能够顺利完成版本上线。评估工作量过低会导致版本上线风险,评估过高又会造成资源浪费。项目实施版本迭代一般包括以下几个过程:需求沟通分析、代码开发与联调,测试以及上线。每个阶段的工作量可以分开评估,最后求和能够得到相对准确的工作量评估。
专利《一种项目工作量评估方法和装置,CN112966971B》中提出一种基于机器学习算法的工作量评估方法,该方法主要解决优化项目工作量评估,将业务功能进行分类,确定已有业务功能与新增业务功能,已有业务功能利用历史相似功能通过线性回归方法估算工作量,新增业务功能依然需要依照评估模版进行评估,最后求和两部分的工作量作为最终工作量。该方法能够一定程度解决以上两种常用方法的缺陷,但是仍然存在评估依据不够精细评估不准确的问题。因为它虽然引入了机器学习方法,但是仅仅使用的简单的线性回归方法,且线性回归方法仅用于估计历史相似功能,对于差异比较大的新增功能难以应用,文中新增功能采用的依照评估模版进行评估,会存在评估不够准确的问题。
且以上三种方法均在项目整体维度考虑,工作量估算粒度比较粗,无法考虑更多实际影响开发实施的因素。
发明内容
本申请实施例的目的是提供一种软件开发工作量自动评估方法、装置、存储介质及处理器,该方法依据软件开发的设计稿来提取工作量评估关键因子,工作量评估关键因子依托设计稿确定,与设计稿关联度高,然后根据提取的工作量评估关键因子估算软件开发评估用时,评估得到的评估用时准确度高,且能够实现自动化获取工作量评估关键因子,自动估算软件开发的评估用时,节省人力资源,降低主观因素对评估结果的影响。
为了实现上述目的,本申请第一方面提供一种软件开发工作量自动评估方法,所述软件开发工作量自动评估方法包括:
获取软件开发设计稿;
根据所述设计稿识别出工作量评估关键因子;
将所述工作量评估关键因子输入训练好的软件开发工作量评估模型,计算得到软件开发的评估用时。
通过上述技术方案,自动获取软件开发设计稿,并从中识别出工作量评估关键因子,从而计算得到软件开发的评估用时,能够减少人力成本和主观判断对评估用时的影响。
在本申请实施例中,所述软件开发工作量自动评估方法还包括:
在软件开发完成后,获取实际用时;
根据实际用时修正软件开发工作量评估模型的参数。
通过获取的实际用时来修正软件开发评估模型的参数,实现模型的自学习,提升模型计算的评估用时的准确度,使得通过软件开发评估模型计算得到的评估用时准确度越来越高。
在本申请实施例中,所述工作量评估关键因子包括:软件相关因子及经验因子;所述软件相关因子包括:页面数量、接口数量、总体页面复杂度、总体接口复杂度、页面字段数量、关联组件方数量;所述经验因子包括:关联主件方类别以及开发人员级别。
根据上述技术手段,采用的工作量评估关键因子均是开发实施过程中实际影响开发时间的因素,通过上述工作量评估关键因子可以更客观和准确的评估开发用时。
在本申请实施例中,根据所述设计稿识别出工作量评估关键因子,包括:
对所述设计稿进行预处理;
分割预处理后的设计稿,确定页面数量;
定位和分割各页面中的元素;
对所有页面中的元素进行识别和分类;
根据元素分类结果统计接口数量、页面字段数量和关联组件方数量;
提取各元素的属性信息;
根据各元素的属性信息计算总体接口复杂度和总体页面复杂度。
通过上述技术手段,通过对设计稿的处理,从中自动识别得到软件相关因子,避免了人为辨别带来的主观影响,同时减少工作量评估需要的人力资源。
在本申请实施例中,根据各元素的属性信息计算总体接口复杂度和总体页面复杂度,包括:
根据标表示接口的元素的属性信息以及标准接口属性信息,计算对应接口的接口复杂度;
根据各接口的接口复杂度计算总体接口复杂度;
根据所有元素的属性信息以及各元素的参考属性信息,计算对应元素的元素复杂度;
根据各页面的所有元素的元素复杂度计算各页面对应的页面复杂度;
根据各页面的页面复杂度计算总体页面复杂度。
通过上述技术手段,根据各元素的属性信息确定对应元素的复杂度,然后根据各元素的复杂度计算得到该类元素的总体复杂度,由元素个体到由多个元素组成的总体,计算得到的复杂度能够很好的体现软件开发工作量。
在本申请实施例中,所述软件开发工作量评估模型基于多元线性回归模型训练得到。
通过上述技术手段,多元线性回归模型能够确定多种变量之间的相互依赖关系,基于其训练得到的软件开发工作量评估模型可以实现更加细粒度的软件工作量评估,提升工作量评估准确度。
本申请第二方面提供一种软件开发工作量自动评估装置,所述软件开发工作量自动评估装置包括:
数据获取单元,用于获取软件开发设计稿;
工作量评估关键因子识别单元,用于根据所述设计稿识别出工作量评估关键因子;
评估用时计算单元,用于将所述工作量评估关键因子输入训练好的软件开发工作量评估模型,计算得到软件开发的评估用时。
通过上述技术手段,该装置通过数据获取单元自动获取软件开发设计稿,通过工作量评估关键因子识别单元自动从设计稿中识别出工作量评估关键因子,从而计算得到软件开发的评估用时,能够减少人力成本和主观判断对评估用时的影响。
在本申请实施例中,所述数据获取单元还用于在软件开发完成后,获取实际用时;
所述软件开发工作量自动评估装置还包括:
模型修正单元,用于根据实际用时修正软件开发工作量评估模型的参数。
通过上述技术手段,模型修正单元根据获取的实际用时来修正软件开发评估模型的参数,实现模型的自学习,提升模型计算的评估用时的准确度,使得通过软件开发评估模型计算得到的评估用时准确度越来越高。
在本申请实施例中,所述工作量评估关键因子识别单元包括:
预处理模块,用于对所述设计稿进行预处理;
页面分割模块,用于分割预处理后的设计稿,确定页面数量;
元素分割模块,用于定位和分割各页面中的元素;
元素识别模块,用于对所有页面中的元素进行识别和分类;
统计模块,用于根据元素分类结果统计接口数量、页面字段数量和关联组件方数量;
属性提取模块,用于提取各元素的属性信息;
复杂度计算模块,用于根据各元素的属性信息计算总体接口复杂度和总体页面复杂度。
通过上述技术手段,实现对设计稿的处理,从中自动识别得到软件相关因子,避免了人为辨别带来的主观影响,同时减少工作量评估需要的人力资源。
本申请第三方面提供一种处理器,被配置成执行所述的软件开发工作量自动评估方法。
本申请第四方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行所述的软件开发工作量自动评估方法。
本申请第五方面提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现所述的软件开发工作量自动评估方法。
通过上述技术方案,从开发实施过程中实际影响开发时间的因素入手,通过机器学习方法来自学习影响开发时间的多个关键因素的权重,形成软件开发工作量评估模型,用于计算软件开发的评估用时,自动从设计稿中识别出工作量评估关键因子,实现开发工作量评估自动化,可以减少人力资源同时能够避免现有方法评估不全面不客观问题,提升项目开发时间评估准确性。
本申请实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本申请实施例,但并不构成对本申请实施例的限制。在附图中:
图1示意性示出了根据本申请实施例的软件开发工作量自动评估方法的应用环境示意图;
图2示意性示出了根据本申请实施例的软件开发工作量自动评估方法的流程示意图;
图3示意性示出了根据本申请实施例的软件开发工作量自动评估方法中根据设计稿识别出工作量评估关键因子流程图;
图4示意性示出了根据本申请实施例的软件开发工作量自动评估装置的结构框图;
图5示意性示出了根据本申请实施例的计算机设备的内部结构图。
附图标记说明
A01-处理器,A02-网络接口,A03-内存储器,A04-显示屏,A05-输入装置,A06-非易失性存储介质,B01-操作系统,B02-计算机程序。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解的是,此处所描述的具体实施方式仅用于说明和解释本申请实施例,并不用于限制本申请实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明,若本申请实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本申请实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本申请提供的软件开发工作量自动评估方法,可以应用于如图1所示的应用环境中。在软件开发项目成立后,产品设计人员根据需求拆解原子功能点,设计生成软件开发设计稿,并上传敏捷开发管理工具,敏捷开发管理工具将开发设计稿存储在存储器中,本申请的软件开发工作量自动评估方法重敏捷开发管理工具中获取软件开发设计稿并识别出工作量评估关键因子,根据工作量评估关键因子进行计算得到软件开发的评估用时。其中敏捷开发管理工具可以运行在终端或者服务器上,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
图2示意性示出了根据本申请实施例的软件开发工作量自动评估方法的流程示意图。如图2所示,在本申请一实施例中,提供了一种软件开发工作量自动评估方法,包括以下步骤:
S1:获取软件开发设计稿,在本申请实施例中,产品设计人员根据需求拆解原子功能点,设计生成软件开发设计稿,并上传敏捷开发管理工具,敏捷开发管理工具将开发设计稿存储在存储器中,本方法直接从存储器中读取对应的软件开发设计稿。
S2:根据所述设计稿识别出工作量评估关键因子。在本申请实施例中,工作量评估关键因子包括:软件相关因子及经验因子;其中,软件相关因子主要是指能够直接根据设计稿确定的,会根据需求、设计稿不同而变化的因子,经验因子主要指无法根据设计稿确定,需要根据经验确定的因子,在本申请实施例中,所述软件相关因子包括:页面数量、接口数量、总体页面复杂度、总体接口复杂度、页面字段数量、关联组件方数量;所述经验因子包括:关联主件方类别以及开发人员级别。关联组件方是指在开发实施中,特别是渠道端开发,经常需要与各数据提供方系统交互,而这些系统不在一个地方,因此会带来更多的沟通以及联调时间,而且不同的组件方合作配合度不一样,因此关联组件方数量、关联主件方类别都会直接影响开发工作量。同时,开发人员能力素质也会直接影响到开发耗时。在本申请实施例中,关联组件方类别和开发人员级别均采用固定经验值。
根据上述技术手段,采用的工作量评估关键因子均是开发实施过程中实际影响开发时间的因素,通过上述工作量评估关键因子可以更客观和准确的评估开发用时。
在本申请实施例中,如图3所示,通过如下方式从设计稿识别出工作量评估关键因子:
S201:对所述设计稿进行预处理,在本申请实施例中,预处理包括调整大小、去除噪声、增强对比度等等。
S202:分割预处理后的设计稿,确定页面数量,在本申请实施例中,根据设计稿中不同的页面来进行分页。
S203:定位和分割各页面中的元素,在本申请实施例中,使用图像处理技术,如边缘检测、轮廓检测等技术来实现元素定位和分割,分割的元素例如:按钮、文本框、图标、表格等等。
S204:对所有页面中的元素进行识别和分类,在本申请实施例中,采用图像分类算法、模式匹配算法等实现元素的识别和分类,类别可以设置为:文本框、图片、形状、视频等等。
S205:根据元素分类结果统计接口数量、页面字段数量和关联组件方数量,接口、页面字段以及关联组件方在设计稿中由不同的元素表示,统计这些元素的数量即可得到接口数量、页面字段数量和关联组件方数量,在本申请实施例中,统计数量可以采用统计函数实现。
S206:提取各元素的属性信息,在本申请实施例中,采用光学字符识别技术、衍射分析算法、尺寸测量等方法实现属性信息提取,属性信息可以包括:文字内容、自提样式、颜色、尺寸等信息。
S207:根据各元素的属性信息计算总体接口复杂度和总体页面复杂度。
在本申请实施例中,根据各元素的属性信息计算总体接口复杂度和总体页面复杂度,包括:
根据表示接口的元素的属性信息以及标准接口属性信息,计算对应接口的接口复杂度,在本申请实施例中,标准接口属性信息作为一种参考,根据开发过程中实质的处理方式的难易程度设置了不同属性信息变化方向所代表的含义,根据属性信息以及含义来计算对应接口的复杂度。
根据各接口的接口复杂度计算总体接口复杂度。在一些实施例中,可以根据不同接口的重要程度进行加权平均计算得到总体接口复杂度,也可以直接求平均作为总体接口复杂度。
根据所有元素的属性信息以及各元素的参考属性信息,计算对应元素的元素复杂度,元素复杂度计算与对应接口的复杂度计算方式一致。
根据各页面的所有元素的元素复杂度计算各页面对应的页面复杂度;
根据各页面的页面复杂度计算总体页面复杂度。页面复杂度和总体页面复杂度计算方式可以参考总体接口复杂度计算方式。
在其他一些实施例中,可以通过为每一类元素设置属性信息阈值来划分复杂度,例如,设置两个阈值,属性信息小于或等于第一阈值复杂度为第一复杂度值,大于第一阈值且小于或等于第二阈值,则复杂度为第二复杂度,大于第二阈值,则复杂度为第三复杂度。
通过上述技术手段,根据各元素的属性信息确定对应元素的复杂度,然后根据各元素的复杂度计算得到该类元素的总体复杂度,由元素个体到由多个元素组成的总体,计算得到的复杂度能够很好的体现软件开发工作量。
通过上述技术手段,通过对设计稿的处理,从中自动识别得到软件相关因子,避免了人为辨别带来的主观影响,同时减少工作量评估需要的人力资源。
S3:将所述工作量评估关键因子输入训练好的软件开发工作量评估模型,计算得到软件开发的评估用时。
在本申请实施例中,所述软件开发工作量评估模型基于多元线性回归模型训练得到。
通过上述技术手段,多元线性回归模型能够确定多种变量之间的相互依赖关系,基于其训练得到的软件开发工作量评估模型可以实现更加细粒度的软件工作量评估,提升工作量评估准确度。
多元线性回归模型表示为:
y=f(x1,x2,x3,…,xk)=w1x1+w2x2+w3x3+…+wkxk+b
其中,xj表示第j个影响因子,如页面数量,关联组件方数量等,wj表示第j个影响因子的权重,k表示共有k个影响因子,y为工作量,b为常数。
线性回归的目的就是找到一条线,能够使每个点到该直线的距离最短,一般可用最小二乘法进行拟合。最小二乘法的主要思想是通过确定未知参数(通常是一个参数矩阵),来使得真实值和预测值的误差(也称残差)平方和最小,其计算公式为:
其中,yi是真实值,是对应的预测值,E为预测误差。
在线性回归中,通常使用均方误差来作为损失函数,均方误差可以看作是最小二乘法中的E除以n(n为样本个数),所以最小二乘法求出来的最优解就是将均方误差作为损失函数求出来的最优解。因此可以表示为:
通过求解最小的均方误差MSE得到最佳拟合参数(w1,w2,w3,…,wk,b)。
在开发工作量评估中,将训练好的(w1,w2,w3,…,wk,b)参数应用于最优模型中,即可得到最佳工作量估计值
在基于多元线性回归模型训练软件开发工作量评估模型时,首先获取训练数据。具体的,依据历史开发迭代中,得到的影响开发耗时的主要关键因子值,如:页面数量、接口数量、页面复杂度、接口复杂度、页面字段数量、关联组件方数量、关联主件方类别、开发人员级别,作为多元线性回归模型中的输入x。同时获取历史实际用时作为多元线性回归模型中的输出y。
将获取到的关键因子值代入多元线性回归模型中,求解最小的均方误差MSE得到最佳拟合参数(w1,w2,w3,…,wk,b)。
将最佳拟合参数代入到多元线性回归模型中,作为训练好的软件开发工作量评估模型。
在实际进行工作量评估过程中,将根据设计稿识别得到的工作量评估关键因子输入训练好的软件开发工作量评估模型中,计算得到软件开发的评估用时。
通过上述技术方案,自动获取软件开发设计稿,并从中识别出工作量评估关键因子,从而计算得到软件开发的评估用时,能够减少人力成本和主观判断对评估用时的影响。
在本申请其他实施例中,所述软件开发工作量自动评估方法还包括:
在软件开发完成后,获取实际用时;
根据实际用时修正软件开发工作量评估模型的参数。
通过获取的实际用时来修正软件开发评估模型的参数,不断去反馈修正各影响因子参数,自学习得到本轮评估最佳值,通过多轮迭代不断训练模型从而降低评估误差值。提升模型计算的评估用时的准确度,使得通过软件开发评估模型计算得到的评估用时准确度越来越高。
上述方法还可以根据训练模型中不同人员的权重数据评估开发能力,以及不同外部关联组件方权重可以评估合作满意度。
图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本申请第二方面提供一种软件开发工作量自动评估装置,如图4所示,所述软件开发工作量自动评估装置包括:
数据获取单元,用于获取软件开发设计稿;数据获取单元直接从敏捷开发管理工具的存储器中获取设计稿。
工作量评估关键因子识别单元,用于根据所述设计稿识别出工作量评估关键因子;
评估用时计算单元,用于将所述工作量评估关键因子输入训练好的软件开发工作量评估模型,计算得到软件开发的评估用时。
通过上述技术手段,该装置通过数据获取单元自动获取软件开发设计稿,通过工作量评估关键因子识别单元自动从设计稿中识别出工作量评估关键因子,从而计算得到软件开发的评估用时,能够减少人力成本和主观判断对评估用时的影响。
在本申请实施例中,所述数据获取单元还用于在软件开发完成后,获取实际用时;
所述软件开发工作量自动评估装置还包括:
模型修正单元,用于根据实际用时修正软件开发工作量评估模型的参数。
通过上述技术手段,模型修正单元根据获取的实际用时来修正软件开发评估模型的参数,不断去反馈修正各影响因子参数,自学习得到本轮评估最佳值,通过多轮迭代不断训练模型从而降低评估误差值。提升模型计算的评估用时的准确度,使得通过软件开发评估模型计算得到的评估用时准确度越来越高。
在本申请实施例中,所述工作量评估关键因子识别单元包括:
预处理模块,用于对所述设计稿进行预处理;
页面分割模块,用于分割预处理后的设计稿,确定页面数量;
元素分割模块,用于定位和分割各页面中的元素;
元素识别模块,用于对所有页面中的元素进行识别和分类;
统计模块,用于根据元素分类结果统计接口数量、页面字段数量和关联组件方数量;
属性提取模块,用于提取各元素的属性信息;
复杂度计算模块,用于根据各元素的属性信息计算总体接口复杂度和总体页面复杂度。
通过上述技术手段,实现对设计稿的处理,从中自动识别得到软件相关因子,避免了人为辨别带来的主观影响,同时减少工作量评估需要的人力资源。
所述软件开发工作量自动评估装置包括处理器和存储器,上述数据获取单元、工作量评估关键因子识别单元、评估用时计算单元、模型修正单元、预处理模块、页面分割模块、元素分割模块、元素识别模块、统计模块、属性提取模块和复杂度计算模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序模块中实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现软件开发工作量自动评估方法。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请第三方面提供一种处理器,被配置成执行所述的软件开发工作量自动评估方法。
本申请第四方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行所述的软件开发工作量自动评估方法。
本申请第五方面提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现所述的软件开发工作量自动评估方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器A01、网络接口A02、显示屏A04、输入装置A05和存储器(图中未示出)。其中,该计算机设备的处理器A01用于提供计算和控制能力。该计算机设备的存储器包括内存储器A03和非易失性存储介质A06。该非易失性存储介质A06存储有操作系统B01和计算机程序B02。该内存储器A03为非易失性存储介质A06中的操作系统B01和计算机程序B02的运行提供环境。该计算机设备的网络接口A02用于与外部的终端通过网络连接通信。该计算机程序被处理器A01执行时以实现一种软件开发工作量自动评估方法。该计算机设备的显示屏A04可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置A05可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种软件开发工作量自动评估方法,其特征在于,所述软件开发工作量自动评估方法包括:
获取软件开发设计稿;
根据所述设计稿识别出工作量评估关键因子;
将所述工作量评估关键因子输入训练好的软件开发工作量评估模型,计算得到软件开发的评估用时。
2.根据权利要求1所述的软件开发工作量自动评估方法,其特征在于,所述软件开发工作量自动评估方法还包括:
在软件开发完成后,获取实际用时;
根据实际用时修正软件开发工作量评估模型的参数。
3.根据权利要求1所述的软件开发工作量自动评估方法,其特征在于,所述工作量评估关键因子包括:软件相关因子及经验因子;
所述软件相关因子包括:页面数量、接口数量、总体页面复杂度、总体接口复杂度、页面字段数量、关联组件方数量;
所述经验因子包括:关联主件方类别以及开发人员级别。
4.根据权利要求3所述的软件开发工作量自动评估方法,其特征在于,根据所述设计稿识别出工作量评估关键因子,包括:
对所述设计稿进行预处理;
分割预处理后的设计稿,确定页面数量;
定位和分割各页面中的元素;
对所有页面中的元素进行识别和分类;
根据元素分类结果统计接口数量、页面字段数量和关联组件方数量;
提取各元素的属性信息;
根据各元素的属性信息计算总体接口复杂度和总体页面复杂度。
5.根据权利要求4所述的软件开发工作量自动评估方法,其特征在于,根据各元素的属性信息计算总体接口复杂度和总体页面复杂度,包括:
根据表示接口的元素的属性信息以及标准接口属性信息,计算对应接口的接口复杂度;
根据各接口的接口复杂度计算总体接口复杂度;
根据所有元素的属性信息以及各元素的参考属性信息,计算对应元素的元素复杂度;
根据各页面的所有元素的元素复杂度计算各页面对应的页面复杂度;
根据各页面的页面复杂度计算总体页面复杂度。
6.根据权利要求1所述的软件开发工作量自动评估方法,其特征在于,所述软件开发工作量评估模型基于多元线性回归模型训练得到。
7.一种软件开发工作量自动评估装置,其特征在于,所述软件开发工作量自动评估装置包括:
数据获取单元,用于获取软件开发设计稿;
工作量评估关键因子识别单元,用于根据所述设计稿识别出工作量评估关键因子;
评估用时计算单元,用于将所述工作量评估关键因子输入训练好的软件开发工作量评估模型,计算得到软件开发的评估用时。
8.根据权利要求7所述的软件开发工作量自动评估装置,其特征在于,所述数据获取单元还用于在软件开发完成后,获取实际用时;
所述软件开发工作量自动评估装置还包括:
模型修正单元,用于根据实际用时修正软件开发工作量评估模型的参数。
9.根据权利要求7所述的软件开发工作量自动评估装置,其特征在于,所述工作量评估关键因子识别单元包括:
预处理模块,用于对所述设计稿进行预处理;
页面分割模块,用于分割预处理后的设计稿,确定页面数量;
元素分割模块,用于定位和分割各页面中的元素;
元素识别模块,用于对所有页面中的元素进行识别和分类;
统计模块,用于根据元素分类结果统计接口数量、页面字段数量和关联组件方数量;
属性提取模块,用于提取各元素的属性信息;
复杂度计算模块,用于根据各元素的属性信息计算总体接口复杂度和总体页面复杂度。
10.一种处理器,其特征在于,被配置成执行根据权利要求1至6中任意一项所述的软件开发工作量自动评估方法。
11.一种机器可读存储介质,该机器可读存储介质上存储有指令,其特征在于,该指令在被处理器执行时使得所述处理器被配置成执行根据权利要求1至6中任一项所述的软件开发工作量自动评估方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现根据权利要求1至6中任一项所述的软件开发工作量自动评估方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310789950.6A CN116774986A (zh) | 2023-06-29 | 2023-06-29 | 软件开发工作量自动评估方法、装置、存储介质及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310789950.6A CN116774986A (zh) | 2023-06-29 | 2023-06-29 | 软件开发工作量自动评估方法、装置、存储介质及处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116774986A true CN116774986A (zh) | 2023-09-19 |
Family
ID=88007876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310789950.6A Pending CN116774986A (zh) | 2023-06-29 | 2023-06-29 | 软件开发工作量自动评估方法、装置、存储介质及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116774986A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117311805A (zh) * | 2023-09-27 | 2023-12-29 | 江苏天好富兴数据技术有限公司 | 一种基于大数据的工作量评估系统及方法 |
-
2023
- 2023-06-29 CN CN202310789950.6A patent/CN116774986A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117311805A (zh) * | 2023-09-27 | 2023-12-29 | 江苏天好富兴数据技术有限公司 | 一种基于大数据的工作量评估系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107633265B (zh) | 用于优化信用评估模型的数据处理方法及装置 | |
CN110472675B (zh) | 图像分类方法、图像分类装置、存储介质与电子设备 | |
US11443015B2 (en) | Generating prediction models in accordance with any specific data sets | |
CN108228684B (zh) | 聚类模型的训练方法、装置、电子设备和计算机存储介质 | |
CN110826494A (zh) | 标注数据质量评价方法、装置、计算机设备及存储介质 | |
CN116774986A (zh) | 软件开发工作量自动评估方法、装置、存储介质及处理器 | |
CN112508638A (zh) | 数据处理的方法、装置及计算机设备 | |
CN111738319A (zh) | 一种基于大规模样本的聚类结果评价方法及装置 | |
CN117422182A (zh) | 数据预测方法、装置及存储介质 | |
CN117593115A (zh) | 信贷风险评估模型的特征值确定方法、装置、设备和介质 | |
CN111814759A (zh) | 人脸质量标签值的获取方法、装置、服务器及存储介质 | |
CN111311393A (zh) | 信用风险的评估方法、装置、服务器和存储介质 | |
CN113537407B (zh) | 基于机器学习的图像数据评价处理方法及装置 | |
CN115293735A (zh) | 一种无人工厂工业互联网平台监测管理方法及系统 | |
CN111815204B (zh) | 风险评估方法、装置以及系统 | |
CN108629506A (zh) | 风控模型的建模方法、装置、计算机设备和存储介质 | |
CN113887609A (zh) | 设备屏幕老化检测模型训练方法及设备屏幕老化检测方法 | |
CN113781469A (zh) | 基于yolo改进模型的安全头盔佩戴检测的方法及系统 | |
CN113537363B (zh) | 一种异常对象检测方法及装置、电子设备及存储介质 | |
CN111835830B (zh) | 一种数据感知系统、方法及装置 | |
Conti et al. | Assessing performance and fairness metrics in face recognition-bootstrap methods | |
CN117473268A (zh) | 一种阈值预测方法、系统、设备及存储介质 | |
CN116630677A (zh) | 一种图像分类模型的训练方法、装置、计算机设备及介质 | |
CN116071613A (zh) | 一种图像分类模型的训练方法、装置、计算机设备及介质 | |
CN114722061A (zh) | 数据处理方法及装置、设备、计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |