CN117236762A - 一种基于服务的软件研发工作量评估方法及装置 - Google Patents

一种基于服务的软件研发工作量评估方法及装置 Download PDF

Info

Publication number
CN117236762A
CN117236762A CN202311199895.1A CN202311199895A CN117236762A CN 117236762 A CN117236762 A CN 117236762A CN 202311199895 A CN202311199895 A CN 202311199895A CN 117236762 A CN117236762 A CN 117236762A
Authority
CN
China
Prior art keywords
workload
service
development
atomic
services
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.)
Granted
Application number
CN202311199895.1A
Other languages
English (en)
Other versions
CN117236762B (zh
Inventor
魏天华
邬胜
贺毅
蔡锋
肖峰
宾斌
李颖庭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank Of Changsha Co ltd
Original Assignee
Bank Of Changsha Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bank Of Changsha Co ltd filed Critical Bank Of Changsha Co ltd
Priority to CN202311199895.1A priority Critical patent/CN117236762B/zh
Publication of CN117236762A publication Critical patent/CN117236762A/zh
Application granted granted Critical
Publication of CN117236762B publication Critical patent/CN117236762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于服务的软件研发工作量评估方法及装置,方法步骤包括:步骤S1:将软件以服务为依据,逐层分解为用户场景、对外服务、组合服务和原子服务;步骤S2:基于原子服务类型计算原子服务工作量;步骤S3:根据服务调用复杂度、组件复用度以及原子服务工作量依次计算组合服务、对外服务和用户场景的工作量,计算开发工作量;步骤S4:基于开发工作量计算需求分析工作量、设计工作量、测试工作量和上线工作量,并计算软件研发工作量。优点是,本发明将软件工作量评估与软件服务分解关联,提高了工作量评估的准确性,以开发工作量为基准,分阶段按比例计算汇总分析设计测试上线等阶段工作量,提高了工作量评估的可操作性。

Description

一种基于服务的软件研发工作量评估方法及装置
技术领域
本发明涉及软件工程技术领域,具体涉及一种基于服务的软件研发工作量评估方法及装置。
背景技术
目前公认的工作量评估方法有:IFPUG、MARKⅡ、COSMIC、NESMA和FiSMA方法。目前这5种方法均是基于功能来对工作量进行评估,其中NESMA方法是最常用的,其功能是满足某种需求的属性,功能作为满足需求的属性主观性强、实际操作指导性弱。
随着软件工程逐步发展,软件研发方法逐步从面向过程转向面向对象,近年来已经转向面向服务。其中面向过程是以机器的方式思考问题,将问题拆解成步骤,按照步骤实现功能;面向对象是以人的方式思考问题,以对象创建为中心,将问题抽象成一些对象(属性和方法),然后通过属性操作和方法调用等实现功能;面向服务是以业务驱动技术,基于服务来设计,将软件或系统划分为多层次的服务,通过服务整合为用户提供场景服务。服务可直接映射到业务,以服务为核心元素来封装企业的业务流程和提供用户场景支持,服务的粒度可大到对应业务,也可细化到对应流程或步骤。服务不仅是具有指导意义的编程思想,也可作为架构、概要、甚至详细设计的产物,更可作为敏捷开发的任务卡片和运行时的微服务管理。结合研发过程的服务化拆分、面向服务开发,以服务为粒度进行工作量评估不仅技术可行,也有利于提升工作量评估的可操作性和准确度。
综上所述,急需一种基于服务的软件研发工作量评估方法及装置以解决现有技术中存在的问题。
发明内容
本发明目的在于提供一种基于服务的软件研发工作量评估方法及装置,具体技术方案如下:
一种基于服务的软件研发工作量评估方法,方法步骤包括:
步骤S1:面向服务拆分,具体是,将软件以服务为依据,逐层分解为用户场景、对外服务、组合服务和原子服务;
步骤S2:原子服务计算,具体是,基于原子服务类型计算原子服务工作量;
步骤S3:开发工作量计算,具体是,根据服务调用复杂度、组件复用度以及原子服务工作量计算组合服务工作量、对外服务工作量和用户场景工作量,所有的用户场景工作量之和即开发工作量;
步骤S4:软件研发工作量计算,具体是,以开发工作量为基准,按照比例计算需求分析工作量、设计工作量、测试工作量和上线工作量,开发工作量、需求分析工作量、设计工作量、测试工作量和上线工作量之和即为软件研发工作量。
优选的,在步骤S1中,所述原子服务基于其实现方式划分,原子服务的类型包括页面和函数,所述页面由控件和HTTP请求响应组成,所述函数由消息-逻辑-数据表组成。
优选的,在步骤S2中,根据原子服务的类型采用合适的公式计算,原子服务工作量包括页面工作量和函数工作量,具体是,
单个页面的页面工作量评估估算公式如下:
F1=α*k+β*m;
F1表示页面工作量;k表示修改或新增的页面控件个数;m表示修改或新增http通讯的次数;α表示修改或新增的页面控件个数的权重;β表示修改或新增的http通讯次数的权重。
单个函数的函数工作量评估估算公式如下:
F2=θ*g+γ*h;
F2表示函数工作量;g表示修改或新增的消息接口/数据库表的字段的个数;h表示修改或新增的有效代码行数;θ表示修改或新增的消息接口/数据库表的字段个数的权重;γ表示修改或新增的有效代码行数的权重。
优选的,在步骤S3中,组合服务、对外服务和用户场景均是由本级服务对下一级服务的调用和下级服务之间调用组成,组合服务、对外服务和用户场景在服务处理中视作服务节点,调用视作服务节点之间的边,各级服务工作量计算表达式如下:
其中,F3表示父服务工作量;e表示服务之间调用方向的个数;w表示服务节点个数;r表示复用调整因子;表示子服务工作量之和。
优选的,在步骤S4中,对现有软件开发工作量数据采用K-Means聚类算法获取聚类结果,得到需求分析工作量、设计工作量、测试工作量和上线工作量占开发工作量的比例。
优选的,在步骤S4中,需求分析工作量为开发工作量的15%-30%,设计工作量为开发工作量的10%-20%,测试工作量为开发工作量的45%-60%,上线工作量为开发工作量的1%-10%。
另外,本发明还包括一种基于服务的软件研发工作量评估装置,用于实现如上述的软件研发工作量评估方法,所述装置包括面向服务拆分模块、原子服务计算模块、开发工作量计算模块和软件研发工作量计算模块:
面向服务拆分模块:用于将软件按照面向服务的方法拆分用户场景、对外服务、组合服务和原子服务;
原子服务计算模块:用于判断原子服务的类型,根据原子服务的类型计算原子服务工作量;
开发工作量计算模块:用于计算组合服务工作量、对外服务工作量和用户场景工作量,并计算得到软件的开发工作量;
软件研发工作量计算模块:用于计算需求分析工作量、设计工作量、测试工作量和上线工作量,将开发工作量、需求分析工作量、设计工作量、测试工作量和上线工作量求和之后得到软件研发工作量。
应用本发明的技术方案,具有以下有益效果:
本发明通过将软件基于服务逐层细化到原子服务,判断原子服务的类型,并计算单个原子服务的工作量评估结果,基于原子服务工作量,计算软件的开发工作量,再根据开发工作量依次计算需求分析工作量、设计工作量、测试工作量和上线工作量,从而得到软件研发工作量。本发明将软件工作量评估与软件服务分解关联,提高了工作量评估的准确性,以开发工作量为基准,分阶段按比例计算汇总分析设计测试上线等阶段工作量,提高了工作量评估的可操作性。
除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明优选实施例中软件研发工作量评估方法的步骤流程图。
具体实施方式
以下结合附图对本发明的实施例进行详细说明,但是本发明可以根据权利要求限定和覆盖的多种不同方式实施。
实施例:
参见图1,本实施例公开了一种基于服务的软件研发工作量评估方法,方法步骤包括:
步骤S1:面向服务拆分,具体是,将软件以服务为依据,逐层分解为用户场景、对外服务、组合服务和原子服务;所述原子服务基于其实现方式划分,原子服务的类型包括页面和函数,所述页面由控件和HTTP请求响应组成,所述函数由消息-逻辑-数据表组成。
步骤S2:原子服务计算,具体是,基于原子服务类型计算原子服务工作量;
在本实施例中,原子服务工作量包括页面工作量和函数工作量,具体是:
单个页面的页面工作量评估估算公式如下:
F1=α*k+β*m;
F1表示页面工作量;k表示修改或新增的页面控件个数;m表示修改或新增http通讯的次数;α表示修改或新增的页面控件个数的权重,本实施例取0.04;β表示修改或新增的http通讯次数的权重,本实施例取0.3。
单个函数的函数工作量评估估算公式如下:
F2=θ*g+γ*h;
F2表示函数工作量;g表示修改或新增的消息接口/数据库表的字段的个数;h表示修改或新增的有效代码行数;θ表示修改或新增的消息接口/数据库表的字段个数的权重,本实施例取0.06;γ表示修改或新增的有效代码行数的权重,本实施例取0.052。
本实施例中各个特征的权重通过数据标准差与数据均值的商的综合离散程度来确定权重,具体是:先计算特征的平均数和标准差,将标准差除以平数据计算得到变异系数,将变异系数的取值范围标准化缩放到[0,1]区间,即为对应特征的权重。
步骤S3:开发工作量计算,具体是,开发工作量计算,具体是,根据服务调用复杂度、组件复用度以及原子服务工作量计算组合服务工作量、对外服务工作量和用户场景工作量,所有的用户场景工作量之和即开发工作量;组合服务、对外服务和用户场景均是由本级服务对下一级服务的调用和下级服务之间调用组成,组合服务、对外服务和用户场景在服务处理中视作服务节点,调用视作服务节点之间的边,各级服务工作量计算表达式如下:
其中,F3表示父服务工作量;e表示服务之间调用方向的个数;w表示服务节点个数;r表示复用调整因子,本实施例取1;表示子服务工作量之和。
需要说明的是,所述父服务为子服务的上级服务,在本实施例中,组合服务为原子服务的父服务,对外服务为组合服务的父服务,用户场景为对外服务的父服务。
本实施例中,从需求的用户场景开始逐步细化;用户场景细化为对外服务,对外服务细化为组合服务,组合服务细化为原子服务。工作量评估从原子服务为起点,原子服务如为前端页面服务则选择单个页面的工作量评估估算公式,如为后端函数服务则选择单个函数的工作量评估估算公式,将权重、原子服务的变量数值代入公式计算得到原子服务工作量。
组合服务工作量的计算选择各级服务工作量计算表达式,当计算组合服务工作量的时候,调用的原子服务工作量之和,再加上组合服务的服务调用边数和调用的原子服务节点数之差,计算出组合服务工作量。
当计算对外服务工作量的时候,对外服务工作量续选择各级服务工作量计算表达式,对外服务调用的组合服务工作量之和,再加上对外服务的服务调用边数和调用的组合服务节点数之差,计算出对外服务工作量。
当计算用户场景工作量的时候,继续选择各级服务工作量计算表达式,调用的对外服务工作量之和,再加上用户场景的服务调用边数和调用的对外服务节点数之差,计算出用户场景工作量,将所有用户场景工作量求和即为软件的开发工作量。
步骤S4:软件研发工作量计算,具体是,以开发工作量为基准,按照比例计算需求分析工作量、设计工作量、测试工作量和上线工作量,开发工作量、需求分析工作量、设计工作量、测试工作量和上线工作量之和即为软件研发工作量。
在本实施例中,需求分析工作量为开发工作量的15%-30%,设计工作量为开发工作量的10%-20%,测试工作量为开发工作量的45%-60%,上线工作量为开发工作量的1%-10%。需要说明的是,上述占比具体值可对现有软件开发工作量数据(本实施例中,现有软件开发工作量数据为某企业近三年的软件研发工作量评估历史数据)采用K-Means聚类算法获取聚类结果,本实施例中,通过K-Means聚类算法获取4个聚类结果,分别是业务类、管理类、渠道类和数据类,其中,需求分析工作量、设计工作量、测试工作量和上线工作量在上述聚类结果中的占比具体是:业务类占比分别是0.15、0.15、0.5和0.09,管理类占比分别是0.2、0.13、0.45和0.1,渠道类占比分别是0.16、0.11、0.60和0.09,数据类占比分别是0.32、0.09、0.35和0.01。
本实施例还包括一种基于服务的软件研发工作量评估装置,用于实现如上述的软件研发工作量评估方法,所述装置包括面向服务拆分模块、原子服务计算模块、开发工作量计算模块和软件研发工作量计算模块:
面向服务拆分模块:用于将软件按照面向服务的方法拆分用户场景、对外服务、组合服务和原子服务;
原子服务计算模块:用于判断原子服务的类型,根据原子服务的类型计算原子服务工作量;
开发工作量计算模块:用于计算组合服务工作量、对外服务工作量和用户场景工作量,并计算得到软件的开发工作量;
软件研发工作量计算模块:用于计算需求分析工作量、设计工作量、测试工作量和上线工作量,将开发工作量、需求分析工作量、设计工作量、测试工作量和上线工作量求和之后得到软件研发工作量。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于服务的软件研发工作量评估方法,其特征在于,方法步骤包括:
步骤S1:面向服务拆分,具体是,将软件以服务为依据,逐层分解为用户场景、对外服务、组合服务和原子服务;
步骤S2:原子服务计算,具体是,基于原子服务类型计算原子服务工作量;
步骤S3:开发工作量计算,具体是,根据服务调用复杂度、组件复用度以及原子服务工作量计算组合服务工作量、对外服务工作量和用户场景工作量,所有的用户场景工作量之和即开发工作量;
步骤S4:软件研发工作量计算,具体是,以开发工作量为基准,按照比例计算需求分析工作量、设计工作量、测试工作量和上线工作量,开发工作量、需求分析工作量、设计工作量、测试工作量和上线工作量之和即为软件研发工作量。
2.根据权利要求1所述的软件研发工作量评估方法,其特征在于,在步骤S1中,所述原子服务基于其实现方式划分,原子服务的类型包括页面和函数,所述页面由控件和HTTP请求响应组成,所述函数由消息、逻辑和数据表组成。
3.根据权利要求2所述的软件研发工作量评估方法,其特征在于,在步骤S2中,根据原子服务的类型采用合适的公式计算,原子服务工作量包括页面工作量和函数工作量,具体是,
单个页面的页面工作量评估估算公式如下:
F1=α*k+β*m;
F1表示页面工作量;k表示修改或新增的页面控件个数;m表示修改或新增http通讯的次数;α表示修改或新增的页面控件个数的权重;β表示修改或新增的http通讯次数的权重;
单个函数的函数工作量评估估算公式如下:
F2=θ*g+γ*h;
F2表示函数工作量;g表示修改或新增的消息接口/数据库表的字段的个数;h表示修改或新增的有效代码行数;θ表示修改或新增的消息接口/数据库表的字段个数的权重;γ表示修改或新增的有效代码行数的权重。
4.根据权利要求3所述的软件研发工作量评估方法,其特征在于,在步骤S3中,组合服务、对外服务和用户场景均是由本级服务对下一级服务的调用和下级服务之间调用组成,组合服务、对外服务和用户场景在服务处理中视作服务节点,调用视作服务节点之间的边,各级服务工作量计算表达式如下:
其中,F3表示父服务工作量;e表示服务之间调用方向的个数;w表示服务节点个数;r表示复用调整因子;表示子服务工作量之和。
5.根据权利要求4所述的软件研发工作量评估方法,其特征在于,在步骤S4中,对现有软件开发工作量数据采用K-Means聚类算法获取聚类结果,得到需求分析工作量、设计工作量、测试工作量和上线工作量占开发工作量的比例。
6.根据权利要求5所述的软件研发工作量评估方法,其特征在于,在步骤S4中,需求分析工作量为开发工作量的15%-30%,设计工作量为开发工作量的10%-20%,测试工作量为开发工作量的45%-60%,上线工作量为开发工作量的1%-10%。
7.一种基于服务的软件研发工作量评估装置,其特征在于,用于实现如权利要求1-6任意一项所述的软件研发工作量评估方法,所述装置包括面向服务拆分模块、原子服务计算模块、开发工作量计算模块和软件研发工作量计算模块:
面向服务拆分模块:用于将软件按照面向服务的方法拆分用户场景、对外服务、组合服务和原子服务;
原子服务计算模块:用于判断原子服务的类型,根据原子服务的类型计算原子服务工作量;
开发工作量计算模块:用于计算组合服务工作量、对外服务工作量和用户场景工作量,并计算得到软件的开发工作量;
软件研发工作量计算模块:用于计算需求分析工作量、设计工作量、测试工作量和上线工作量,将开发工作量、需求分析工作量、设计工作量、测试工作量和上线工作量求和之后得到软件研发工作量。
CN202311199895.1A 2023-09-18 2023-09-18 一种基于服务的软件研发工作量评估方法及装置 Active CN117236762B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311199895.1A CN117236762B (zh) 2023-09-18 2023-09-18 一种基于服务的软件研发工作量评估方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311199895.1A CN117236762B (zh) 2023-09-18 2023-09-18 一种基于服务的软件研发工作量评估方法及装置

Publications (2)

Publication Number Publication Date
CN117236762A true CN117236762A (zh) 2023-12-15
CN117236762B CN117236762B (zh) 2024-05-28

Family

ID=89082139

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311199895.1A Active CN117236762B (zh) 2023-09-18 2023-09-18 一种基于服务的软件研发工作量评估方法及装置

Country Status (1)

Country Link
CN (1) CN117236762B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258602A1 (en) * 2010-04-20 2011-10-20 Guy Collins Ndem Method for estimating testing efforts for software unit testing
US20140089887A1 (en) * 2012-09-27 2014-03-27 Tata Consultancy Services Limited Method and system for estimating size and effort of software assurance projects
CN108304211A (zh) * 2017-01-11 2018-07-20 中国移动通信集团公司 一种服务地图构建方法及装置
CN111309637A (zh) * 2020-05-14 2020-06-19 四川新网银行股份有限公司 基于银行微服务的软件测试分析方法
CN113467436A (zh) * 2021-06-28 2021-10-01 重庆长安汽车股份有限公司 一种基于soa服务分层的整车功能实现方法及系统
WO2022199076A1 (zh) * 2021-03-26 2022-09-29 苏宁易购集团股份有限公司 多类型业务的业务处理方法、计算机设备和存储介质
CN115860562A (zh) * 2022-12-21 2023-03-28 建信金融科技有限责任公司 一种软件工作量合理性评判方法、装置及设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258602A1 (en) * 2010-04-20 2011-10-20 Guy Collins Ndem Method for estimating testing efforts for software unit testing
US20140089887A1 (en) * 2012-09-27 2014-03-27 Tata Consultancy Services Limited Method and system for estimating size and effort of software assurance projects
CN108304211A (zh) * 2017-01-11 2018-07-20 中国移动通信集团公司 一种服务地图构建方法及装置
CN111309637A (zh) * 2020-05-14 2020-06-19 四川新网银行股份有限公司 基于银行微服务的软件测试分析方法
WO2022199076A1 (zh) * 2021-03-26 2022-09-29 苏宁易购集团股份有限公司 多类型业务的业务处理方法、计算机设备和存储介质
CN113467436A (zh) * 2021-06-28 2021-10-01 重庆长安汽车股份有限公司 一种基于soa服务分层的整车功能实现方法及系统
CN115860562A (zh) * 2022-12-21 2023-03-28 建信金融科技有限责任公司 一种软件工作量合理性评判方法、装置及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨起: "以体系架构为核心的功能点估算", 《质量与可靠性》, no. 4, 30 August 2004 (2004-08-30), pages 32 - 38 *

Also Published As

Publication number Publication date
CN117236762B (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
US8799785B2 (en) Ability to scope awareness to your current task
CN103544623B (zh) 一种基于用户偏好特征建模的Web 服务推荐方法
Gerkey et al. Murdoch: Publish/subscribe task allocation for heterogeneous agents
US8583799B2 (en) Dynamic cost model based resource scheduling in distributed compute farms
Gebauer et al. User requirements of mobile technology: results from a content analysis of user reviews
US20210073917A1 (en) Actuary-Manipulable Rating Model System
Nielsen The allocation of computer resources—is pricing the answer?
CA2539465A1 (en) System and method for management of mutating applications
Wu et al. Service mining for trusted service composition in cross-cloud environment
Wang et al. Efficient and reliable service selection for heterogeneous distributed software systems
CN112669948B (zh) 一种基于物联网的医疗资源配置系统
CN108493946A (zh) 基于用户用电分析的电能控制方法、装置及设备
CN112017042A (zh) 基于tweedie分布的资源配额确定方法、装置和电子设备
CN111831571A (zh) 页面测试方法、装置、设备及计算机可读存储介质
CN111179055B (zh) 授信额度调整方法、装置和电子设备
CN117236762B (zh) 一种基于服务的软件研发工作量评估方法及装置
Streeter Cost-benefit evaluation of scientific computing services
CN115544250B (zh) 一种数据处理方法及系统
US20120096064A1 (en) Systems and methods for grid agent management
Sanders A private good/public good decomposition for optimal flow control of an M/M/1 queue
CN112749076B (zh) 测试方法、装置及电子设备
CN106250205B (zh) 一种虚拟机定制方法及系统
CN100373340C (zh) 分布计算机系统管理方法
Masuishi et al. Autonomous decentralized resource allocation for tracking dynamic load change
CN110266539B (zh) 一种基于协同过滤的物联网服务QoS预测方法

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
GR01 Patent grant