CN115113921A - 代码重构价值的评估方法、装置、电子设备及存储介质 - Google Patents

代码重构价值的评估方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115113921A
CN115113921A CN202211037193.9A CN202211037193A CN115113921A CN 115113921 A CN115113921 A CN 115113921A CN 202211037193 A CN202211037193 A CN 202211037193A CN 115113921 A CN115113921 A CN 115113921A
Authority
CN
China
Prior art keywords
code
value
evaluated
change times
value quantity
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
CN202211037193.9A
Other languages
English (en)
Other versions
CN115113921B (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.)
Accumulus Technologies Tianjin Co Ltd
Original Assignee
Accumulus Technologies Tianjin 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 Accumulus Technologies Tianjin Co Ltd filed Critical Accumulus Technologies Tianjin Co Ltd
Priority to CN202211037193.9A priority Critical patent/CN115113921B/zh
Publication of CN115113921A publication Critical patent/CN115113921A/zh
Application granted granted Critical
Publication of CN115113921B publication Critical patent/CN115113921B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种代码重构价值的评估方法、装置、电子设备及存储介质,其中方法包括:接收用户发送的评估指令;从代码管理库系统中获取待评估代码的代码变更次数和修复报错变更次数,得到待评估代码的增强变更次数;从日志管理系统中获取待评估代码的被调用次数,得到待评估代码的时间价值量;根据待评估代码的代码行数与最大缩进量,得到待评估代码的复杂度价值量;从代码管理库系统中获取待评估代码的并行开发人数,得到待评估代码的团队价值量;根据时间价值量、复杂度价值量以及团队价值量,计算得到待评估代码的重构价值量。本发明实现了量化评估,在跨团队协作时能够通过统一的评价标准对代码重构价值进行评估,评估结果准确度高。

Description

代码重构价值的评估方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种代码重构价值的评估方法、装置、电子设备及存储介质。
背景技术
代码重构(Code refactoring),重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。
为了满足业务需求,加快软件的交付,研发人员在应该采用最佳实现方案时往往会进行妥协,采用短期内能快速完成功能的方案,在未来进行代码重构;另一方面,现代软件研发过程通常是多团队协作的过程,存在多人修改同一个代码组件或代码文件的情况,叠加项目组的成员更迭等项目管理因素,导致实践中的代码重构工作通常面临着高风险、高成本、收益低的困境。因而,确定代码的重构价值,是重构代码及提升代码质量的关键环节。
当前,现有的对代码重构价值的评估方法是非量化的,评估结果不准确;在跨团队协作时,各个团队标准不一致,难以通过统一的评价标准对代码重构价值进行评估,评估结果不准确。
发明内容
本发明实施例提供一种代码重构价值的评估方法、装置、电子设备及存储介质,以解决现有的对代码重构价值的评估方法是非量化的,以及在跨团队协作时,各个团队标准不一致,难以通过统一的评价标准对代码重构价值进行评估,评估结果不准确的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种代码重构价值的评估方法,包括:
接收用户发送的评估指令,所述评估指令中包括待评估代码的信息;
从代码管理库系统中获取所述待评估代码的代码变更次数和修复报错变更次数,根据所述代码变更次数以及所述修复报错变更次数得到所述待评估代码的增强变更次数;从日志管理系统中获取所述待评估代码的被调用次数;根据所述增强变更次数以及所述被调用次数,得到所述待评估代码的时间价值量;
根据所述待评估代码的代码行数与最大缩进量,得到所述待评估代码的复杂度价值量;
从代码管理库系统中获取所述待评估代码的并行开发人数,根据所述并行开发人数得到所述待评估代码的团队价值量;
根据所述时间价值量、所述复杂度价值量以及所述团队价值量,计算得到所述待评估代码的重构价值量。
可选地,
根据所述时间价值量、所述复杂度价值量以及所述团队价值量,计算得到所述待评估代码的重构价值量,包括:
对所述时间价值量、所述复杂度价值量以及所述团队价值量进行标准化处理,得到与所述时间价值量、所述复杂度价值量以及所述团队价值量一一对应的标准价值量;
将所述时间价值量、所述复杂度价值量以及所述团队价值量三者的标准价值量相加,得到所述待评估代码的重构价值量。
可选地,所述标准化处理的方式为Z-score方式。
可选地,根据所述增强变更次数以及所述被调用次数,得到所述待评估代码的时间价值量,包括:
将所述增强变更次数与所述被调用次数相乘,得到所述时间价值量。
可选地,根据所述代码变更次数以及所述修复报错变更次数得到所述待评估代码的增强变更次数,包括:
将所述代码变更次数与所述修复报错变更次数相乘,得到所述增强变更次数;
根据所述增强变更次数以及所述被调用次数,得到所述待评估代码的时间价值量,包括:
将所述增强变更次数与所述被调用次数相乘,得到所述时间价值量。
第二方面,本发明实施例提供了一种代码重构价值的评估装置,包括:
接收模块,用于接收用户发送的评估指令,所述评估指令中包括待评估代码的信息;
第一执行模块,用于从代码管理库系统中获取所述待评估代码的代码变更次数和修复报错变更次数,根据所述代码变更次数以及所述修复报错变更次数得到所述待评估代码的增强变更次数;从日志管理系统中获取所述待评估代码的被调用次数;根据所述增强变更次数以及所述被调用次数,得到所述待评估代码的时间价值量;
第二执行模块,用于根据所述待评估代码的代码行数与最大缩进量,得到所述待评估代码的复杂度价值量;
第三执行模块,用于从代码管理库系统中获取所述待评估代码的并行开发人数,根据所述并行开发人数得到所述待评估代码的团队价值量;
计算模块,用于根据所述时间价值量、所述复杂度价值量以及所述团队价值量,计算得到所述待评估代码的重构价值量。
可选地,所述计算模块,还用于对所述时间价值量、所述复杂度价值量以及所述团队价值量进行标准化处理,得到与所述时间价值量、所述复杂度价值量以及所述团队价值量一一对应的标准价值量;
所述计算模块,还用于将所述时间价值量、所述复杂度价值量以及所述团队价值量三者的标准价值量相加,得到所述待评估代码的重构价值量。
可选地,
所述第一执行模块,还用于将所述代码变更次数与所述修复报错变更次数相乘,得到所述增强变更次数;
所述第一执行模块,还用于将所述增强变更次数与所述被调用次数相乘,得到所述时间价值量。
第三方面,本发明实施例提供了一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中任一项所述的代码重构价值的评估方法中的步骤。
第四方面,本发明实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的代码重构价值的评估方法中的步骤。
在本发明实施例中,通过得到所述待评估代码的时间价值量、得到所述待评估代码的复杂度价值量,以及根据所述并行开发人数得到所述待评估代码的团队价值量;再根据所述时间价值量、所述复杂度价值量以及所述团队价值量,计算得到所述待评估代码的重构价值量。本发明实施例实现了对代码重构价值的评估方法量化评估,在跨团队协作时能够通过统一的评价标准对代码重构价值进行评估,评估结果准确度高。
此外,本发明实施例还将团队价值量纳入评估,适应软件协同开发的现实场景,评估结果准确度高。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例代码重构价值的评估方法的流程示意图之一;
图2为代码库规模幂率分布示意图;
图3为本发明实施例代码重构价值的评估方法的数据量化示意图之一;
图4为本发明实施例代码重构价值的评估方法的数据量化示意图之二;
图5为本发明实施例代码重构价值的评估方法的数据量化示意图之三;
图6为本发明实施例代码重构价值的评估方法的数据标准化示意图;
图7为本发明实施例代码重构价值的评估方法的流程示意图之二;
图8为本发明实施例代码重构价值的评估装置的原理框图;
图9为本发明实施例电子设备的原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种代码重构价值的评估方法,参见图1所示,图1为本发明实施例代码重构价值的评估方法的流程示意图之一,代码重构价值的评估方法包括:
步骤11:接收用户发送的评估指令,评估指令中包括待评估代码的信息;
步骤12:从代码管理库系统中获取待评估代码的代码变更次数和修复报错变更次数,根据代码变更次数以及修复报错变更次数得到待评估代码的增强变更次数;从日志管理系统中获取待评估代码的被调用次数;根据增强变更次数以及被调用次数,得到待评估代码的时间价值量;
步骤13:根据待评估代码的代码行数与最大缩进量,得到待评估代码的复杂度价值量;
步骤14:从代码管理库系统中获取待评估代码的并行开发人数,根据并行开发人数得到待评估代码的团队价值量;
步骤15:根据时间价值量、复杂度价值量以及团队价值量,计算得到待评估代码的重构价值量。
示例性的,(1)代码库规模符合幂律分布规律,参见图2所示,图2为代码库规模幂率分布示意图,其中:X轴代表软件的每个文件,Y轴代表文件的变更次数,并按变更次数从高到低排列。图2中被虚线框框取的区域示意了开发活动中占据高比重的代码文件。相较于其他代码,提升上述占据高比重的变更频繁的代码文件的质量就十分有意义,由此,代码变更次数(commits)是一个关键的属性。
越多的代码bug数量也代表了代码质量低下,因此修复报错(bug)变更数(fix_commits)也是一项关键属性。将代码变更次数commits与修复报错变更次数fix_commits之和作为一个属性,称为增强变更次数(aug_commits):aug_commits = commits + fix_commits。
代码变更次数commits和修复报错变更次数fix_commits通过对接代码库管理系统获得。
(2)对一款产品,用户一般只使用其部分的产品功能。那么提升与这部分权重更高的产品功能关联的代码质量是必要的。用户使用产品过程中会产生日志信息,通过对接日志管理系统获得代码中所有函数被调用的次数(code_calls,相当于本发明实施例中的待评估代码的被调用次数)。
参见图3所示,属性增强变更次数(aug_commits)和用户时间的属性的函数调用的次数(code_calls),建构起时间价值的二维坐标。定义代码时间维度的价值(time_value,相当于本发明实施例中待评估代码的时间价值量)为二维坐标系中的面积:time_value =aug_commits × code_calls。
(3)函数的行数与函数的复杂度相关联,可以理解的,函数的行数越多,该函数可能越复杂。将函数的行数(func_lines,相当于本发明实施例中的待评估代码的代码行数)作为衡量代码复杂度的属性。
从缩进考虑,为了使得代码具有一定的可读性,研发人员通过缩对代码进行分隔,函数的最深缩进与函数复杂逻辑相关联,将函数的最大缩进(func_ind,相当于本发明实施例中的最大缩进量)作为衡量代码复杂度的属性。
函数的行数func_lines和最大缩进func_ind通过调用代码静态分析服务获取。参见图4所示,建立关于行数和缩进的二维坐标。定义代码复杂度的价值(func_comp,相当于本发明实施例中待评估代码的复杂度价值量)为二维坐标系中的面积:func_comp = func_lines × func_ind。
(4)在项目开发过程中,为了满足业务需求,加快迭代,往往采用多人并行开发,造成同一个代码文件可能经过多人频繁修改。多人协同开发的代码文件也是代码问题频发之处。通过重新划分负责人、划分模块、降低代码的耦度,也是十分意义,将并行开发一个文件等人数作为团队维度的价值(org_value,相当于本发明实施例中的团队价值量)。
由于提交一次与提交多次代码是不同的并行,需要考虑其频率。设定一个阈值比例x,某代码文件的变更次数为y,若工程师A提交的变更次数n大于y×x,则认为工程师A属于频繁修改此代码文件的人,是并行的开发者之一。即:org_value = ∑(n >(y×x))。
(5)参见图5所示,得到time_value、func_comp及org_value的三维度坐标。采用Z-score标准化处理:设某维度数据的均值为X,标准差为SD,每一个值x减去均值X,再除以标准差SD,得到标准数据X_st,即:X_st = (x - X)/ SD。
标准化处理后,参见图6所示,三个维度的标准化数据位于同一纬度。具体为:团队价值量的标准价值量org_value_st、复杂度价值量的标准价值量func_comp_st、时间价值量的标准价值量time_value_st。重构价值量refactor_value = org_value_st + ph_value_st + time_value_st。
本发明的一些实施例中,可选地,参见图7所示,图7为本发明实施例代码重构价值的评估方法的流程示意图之二,根据所述时间价值量、所述复杂度价值量以及所述团队价值量,计算得到所述待评估代码的重构价值量,包括:
步骤21:对时间价值量、复杂度价值量以及团队价值量进行标准化处理,得到与时间价值量、复杂度价值量以及团队价值量一一对应的标准价值量;
步骤22:将时间价值量、复杂度价值量以及团队价值量三者的标准价值量相加,得到待评估代码的重构价值量。
本发明的一些实施例中,可选地,
所述标准化处理的方式为Z-score方式。
Z-Score标准化是数据处理的一种常用方法。通过它能够将不同量级的数据转化为统一量度的Z-Score分值进行比较。
Z-Score通过(x-μ)/σ将两组或多组数据转化为无单位的Z-Score分值,使得数据标准统一化,提高了数据可比性,削弱了数据解释性。
示例性的,参见图5所示,得到time_value、func_comp及org_value的三维度坐标。采用Z-score标准化处理:设某维度数据的均值为X,标准差为SD,每一个值x减去均值X,再除以标准差SD,得到标准数据X_st,即:X_st =(x - X)/SD。
标准化处理后,参见图6所示,三个维度的标准化数据位于同一纬度。具体为:团队价值量的标准价值量org_value_st、复杂度价值量的标准价值量func_comp_st、时间价值量的标准价值量time_value_st。重构价值量refactor_value = org_value_st + ph_value_st + time_value_st。
在本发明实施例中,通过得到所述待评估代码的时间价值量、得到所述待评估代码的复杂度价值量,以及根据所述并行开发人数得到所述待评估代码的团队价值量;再根据所述时间价值量、所述复杂度价值量以及所述团队价值量,计算得到所述待评估代码的重构价值量。本发明实施例实现了对代码重构价值的评估方法量化评估,在跨团队协作时能够通过统一的评价标准对代码重构价值进行评估,评估结果准确度高。
此外,本发明实施例还将团队价值量纳入评估,适应软件协同开发的现实场景,评估结果准确度高。
本发明的一些实施例中,可选地,
根据所述增强变更次数以及所述被调用次数,得到所述待评估代码的时间价值量,包括:
将所述增强变更次数与所述被调用次数相乘,得到所述时间价值量。
示例性的,参见图3所示,属性增强变更次数(aug_commits)和用户时间的属性的函数调用的次数(code_calls),建构起时间价值的二维坐标。定义代码时间维度的价值(time_value,相当于本发明实施例中待评估代码的时间价值量)为二维坐标系中的面积:time_value = aug_commits × code_calls。
本发明的一些实施例中,可选地,
根据所述代码变更次数以及所述修复报错变更次数得到所述待评估代码的增强变更次数,包括:
将所述代码变更次数与所述修复报错变更次数相乘,得到所述增强变更次数;
根据所述增强变更次数以及所述被调用次数,得到所述待评估代码的时间价值量,包括:
将所述增强变更次数与所述被调用次数相乘,得到所述时间价值量。
代码库规模符合幂律分布规律,参见图2所示,图2为代码库规模幂率分布示意图,X轴代表软件的每个文件,Y轴代表文件的变更次数,并按变更次数从高到低排列。图2中被虚线框框取的区域为开发活动中占据高比重的代码文件。相较于其他代码,提升上述占据高比重的变更频繁的代码文件的质量就十分有意义,由此,代码变更次数(commits)是一个关键的属性。
越多的代码bug数量也代表了代码质量低下,因此修复报错(bug)变更数(fix_commits)也是一项关键属性。将代码变更次数commits与修复报错变更次数fix_commits之和作为一个属性,称为增强变更次数(aug_commits):aug_commits = commits + fix_commits。
代码变更次数commits和修复报错变更次数fix_commits通过对接代码库管理系统获得。
对一款产品,用户一般只使用其部分的产品功能。那么提升与这部分权重更高的产品功能关联的代码质量是必要的。用户使用产品过程中会产生日志信息,通过对接日志管理系统获得代码中所有函数被调用的次数(code_calls,相当于本发明实施例中的待评估代码的被调用次数)。
参见图3所示,属性增强变更次数(aug_commits)和用户时间的属性的函数调用的次数(code_calls)建构起时间价值的二维坐标。定义代码时间维度的价值(time_value,相当于本发明实施例中待评估代码的时间价值量)为二维坐标系中的面积:time_value =aug_commits × code_calls。
本发明实施例提供了一种代码重构价值的评估装置,参见图8所示,图8为本发明实施例代码重构价值的评估装置的原理框图,代码重构价值的评估装置80包括:
接收模块81,用于接收用户发送的评估指令,所述评估指令中包括待评估代码的信息;
第一执行模块82,用于从代码管理库系统中获取所述待评估代码的代码变更次数和修复报错变更次数,根据所述代码变更次数以及所述修复报错变更次数得到所述待评估代码的增强变更次数;从日志管理系统中获取所述待评估代码的被调用次数;根据所述增强变更次数以及所述被调用次数,得到所述待评估代码的时间价值量;
第二执行模块83,用于根据所述待评估代码的代码行数与最大缩进量,得到所述待评估代码的复杂度价值量;
第三执行模块84,用于从代码管理库系统中获取所述待评估代码的并行开发人数,根据所述并行开发人数得到所述待评估代码的团队价值量;
计算模块85,用于根据所述时间价值量、所述复杂度价值量以及所述团队价值量,计算得到所述待评估代码的重构价值量。
本发明的一些实施例中,可选地,
所述计算模块85,还用于对所述时间价值量、所述复杂度价值量以及所述团队价值量进行标准化处理,得到与所述时间价值量、所述复杂度价值量以及所述团队价值量一一对应的标准价值量;
所述计算模块85,还用于将所述时间价值量、所述复杂度价值量以及所述团队价值量三者的标准价值量相加,得到所述待评估代码的重构价值量。
本发明的一些实施例中,可选地,
所述第一执行模块82,还用于将所述代码变更次数与所述修复报错变更次数相乘,得到所述增强变更次数;
所述第一执行模块82,还用于将所述增强变更次数与所述被调用次数相乘,得到所述时间价值量。
本申请实施例提供的代码重构价值的评估装置能够实现图1至图7的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例提供了一种电子设备90,参见图9所示,图9为本发明实施例电子设备90的原理框图,包括处理器91,存储器92及存储在存储器92上并可在处理器91上运行的程序或指令,程序或指令被处理器执行时实现本发明的任一项代码重构价值的评估方法中的步骤。
本发明实施例提供了一种可读存储介质,可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如上述任一项的代码重构价值的评估方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述的可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

Claims (10)

1.一种代码重构价值的评估方法,其特征在于,包括:
接收用户发送的评估指令,所述评估指令中包括待评估代码的信息;
从代码管理库系统中获取所述待评估代码的代码变更次数和修复报错变更次数,根据所述代码变更次数以及所述修复报错变更次数得到所述待评估代码的增强变更次数;从日志管理系统中获取所述待评估代码的被调用次数;根据所述增强变更次数以及所述被调用次数,得到所述待评估代码的时间价值量;
根据所述待评估代码的代码行数与最大缩进量,得到所述待评估代码的复杂度价值量;
从代码管理库系统中获取所述待评估代码的并行开发人数,根据所述并行开发人数得到所述待评估代码的团队价值量;
根据所述时间价值量、所述复杂度价值量以及所述团队价值量,计算得到所述待评估代码的重构价值量。
2.根据权利要求1所述的代码重构价值的评估方法,其特征在于:
根据所述时间价值量、所述复杂度价值量以及所述团队价值量,计算得到所述待评估代码的重构价值量,包括:
对所述时间价值量、所述复杂度价值量以及所述团队价值量进行标准化处理,得到与所述时间价值量、所述复杂度价值量以及所述团队价值量一一对应的标准价值量;
将所述时间价值量、所述复杂度价值量以及所述团队价值量三者的标准价值量相加,得到所述待评估代码的重构价值量。
3.根据权利要求2所述的代码重构价值的评估方法,其特征在于:
所述标准化处理的方式为Z-score方式。
4.根据权利要求1所述的代码重构价值的评估方法,其特征在于:
根据所述增强变更次数以及所述被调用次数,得到所述待评估代码的时间价值量,包括:
将所述增强变更次数与所述被调用次数相乘,得到所述时间价值量。
5.根据权利要求1所述的代码重构价值的评估方法,其特征在于:
根据所述代码变更次数以及所述修复报错变更次数得到所述待评估代码的增强变更次数,包括:
将所述代码变更次数与所述修复报错变更次数相乘,得到所述增强变更次数;
根据所述增强变更次数以及所述被调用次数,得到所述待评估代码的时间价值量,包括:
将所述增强变更次数与所述被调用次数相乘,得到所述时间价值量。
6.一种代码重构价值的评估装置,其特征在于,包括:
接收模块,用于接收用户发送的评估指令,所述评估指令中包括待评估代码的信息;
第一执行模块,用于从代码管理库系统中获取所述待评估代码的代码变更次数和修复报错变更次数,根据所述代码变更次数以及所述修复报错变更次数得到所述待评估代码的增强变更次数;从日志管理系统中获取所述待评估代码的被调用次数;根据所述增强变更次数以及所述被调用次数,得到所述待评估代码的时间价值量;
第二执行模块,用于根据所述待评估代码的代码行数与最大缩进量,得到所述待评估代码的复杂度价值量;
第三执行模块,用于从代码管理库系统中获取所述待评估代码的并行开发人数,根据所述并行开发人数得到所述待评估代码的团队价值量;
计算模块,用于根据所述时间价值量、所述复杂度价值量以及所述团队价值量,计算得到所述待评估代码的重构价值量。
7.根据权利要求6所述的代码重构价值的评估装置,其特征在于:
所述计算模块,还用于对所述时间价值量、所述复杂度价值量以及所述团队价值量进行标准化处理,得到与所述时间价值量、所述复杂度价值量以及所述团队价值量一一对应的标准价值量;
所述计算模块,还用于将所述时间价值量、所述复杂度价值量以及所述团队价值量三者的标准价值量相加,得到所述待评估代码的重构价值量。
8.根据权利要求6所述的代码重构价值的评估装置,其特征在于:
所述第一执行模块,还用于将所述代码变更次数与所述修复报错变更次数相乘,得到所述增强变更次数;
所述第一执行模块,还用于将所述增强变更次数与所述被调用次数相乘,得到所述时间价值量。
9.一种电子设备,其特征在于:包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至5中任一项所述的代码重构价值的评估方法中的步骤。
10.一种可读存储介质,其特征在于:所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至5中任一项所述的代码重构价值的评估方法中的步骤。
CN202211037193.9A 2022-08-29 2022-08-29 代码重构价值的评估方法、装置、电子设备及存储介质 Active CN115113921B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211037193.9A CN115113921B (zh) 2022-08-29 2022-08-29 代码重构价值的评估方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211037193.9A CN115113921B (zh) 2022-08-29 2022-08-29 代码重构价值的评估方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115113921A true CN115113921A (zh) 2022-09-27
CN115113921B CN115113921B (zh) 2022-11-08

Family

ID=83336272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211037193.9A Active CN115113921B (zh) 2022-08-29 2022-08-29 代码重构价值的评估方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115113921B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106575225A (zh) * 2014-12-11 2017-04-19 株式会社日立制作所 模块划分辅助装置、方法和程序
CN107704264A (zh) * 2017-10-09 2018-02-16 郑州云海信息技术有限公司 实现代码重构的方法、装置、设备及计算机可读存储介质
CN108509338A (zh) * 2018-03-17 2018-09-07 东南大学 一种基于多层次变更分析的软件演化评估系统及方法
CN109684190A (zh) * 2017-10-19 2019-04-26 株式会社日立制作所 软件测试装置和方法
CN110618926A (zh) * 2018-06-19 2019-12-27 歌乐株式会社 源代码分析方法和源代码分析装置
CN113504935A (zh) * 2021-07-26 2021-10-15 平安信托有限责任公司 软件开发质量评估方法、装置、电子设备及可读存储介质
CN114138328A (zh) * 2021-12-03 2022-03-04 杭州电子科技大学 基于代码异味的软件重构预测方法
CN114489760A (zh) * 2022-02-17 2022-05-13 中国工商银行股份有限公司 代码质量评价方法和代码质量评价装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106575225A (zh) * 2014-12-11 2017-04-19 株式会社日立制作所 模块划分辅助装置、方法和程序
CN107704264A (zh) * 2017-10-09 2018-02-16 郑州云海信息技术有限公司 实现代码重构的方法、装置、设备及计算机可读存储介质
CN109684190A (zh) * 2017-10-19 2019-04-26 株式会社日立制作所 软件测试装置和方法
CN108509338A (zh) * 2018-03-17 2018-09-07 东南大学 一种基于多层次变更分析的软件演化评估系统及方法
CN110618926A (zh) * 2018-06-19 2019-12-27 歌乐株式会社 源代码分析方法和源代码分析装置
CN113504935A (zh) * 2021-07-26 2021-10-15 平安信托有限责任公司 软件开发质量评估方法、装置、电子设备及可读存储介质
CN114138328A (zh) * 2021-12-03 2022-03-04 杭州电子科技大学 基于代码异味的软件重构预测方法
CN114489760A (zh) * 2022-02-17 2022-05-13 中国工商银行股份有限公司 代码质量评价方法和代码质量评价装置

Also Published As

Publication number Publication date
CN115113921B (zh) 2022-11-08

Similar Documents

Publication Publication Date Title
US8479052B2 (en) Exposing application performance counters for .NET applications through code instrumentation
Zage et al. Evaluating design metrics on large-scale software
US8997065B2 (en) Automatic modularization of source code
CN111522734B (zh) 软件功能测试方法、装置、电子设备及存储介质
US9098621B2 (en) Modeling software behavior using learned predicates
CN109800152A (zh) 一种自动化测试方法及终端设备
CN111382055A (zh) 一种基于统一描述语言的自动化单元测试方法及装置
CN111679984A (zh) 一种性能分析方法和装置
US9158506B2 (en) Loop abstraction for model checking
CN115113921B (zh) 代码重构价值的评估方法、装置、电子设备及存储介质
Kurita et al. The Application of VDM to the Industrial Development of Firmware for a Smart Card IC Chip.
CN112346977A (zh) 量子云计算平台软件功能测评方法和装置
CN109344083B (zh) 一种程序调试方法、装置、设备及可读存储介质
Muttillo et al. Criticality-aware Design Space Exploration for Mixed-Criticality Embedded Systems
CN113220586A (zh) 一种自动化的接口压力测试执行方法、装置和系统
CN114356745A (zh) 软件测试方法及装置、电子设备和计算机可读存储介质
Fryer et al. Assessing covariate-dependent contaminant time-series in the marine environment
CN113254328B (zh) 白盒测试方法、系统、移动终端及存储介质
Dahlgren Performance-driven interface contract enforcement for scientific components
Becker et al. A Testing Pipeline for Quantum Computing Applications
CN113282625B (zh) 一种基于sql的api数据查询和处理系统及方法
CN114265776B (zh) 单元测试代码生成方法、装置、设备、介质
Rao et al. Searums: Studying epidemiology of avian influenza rapidly using modeling and simulation
Banitaan et al. Test Focus Selection for Integration Testing
CN114185796A (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
GR01 Patent grant
GR01 Patent grant