IP Library Granted Patent US 12,430,616
Granted Patent B2
US 12,430,616 · App. 18/329,694 · Granted Sep 30, 2025

Automated evaluation of code delivery

Inventors: Bo Tong Liu (Beijing, CN); Qi Li (Beijing, CN); Cheng Fang Wang (Beijing, CN); Yan Wei Zhao (Beijing, CN); Cai Hua Zhao (Beijing, CN)
Assignee: International Business Machines Corporation
G06Q10/101G06F8/70G06F18/22G06Q10/103G06F8/33G06F8/36G06F8/427G06F8/71G06F8/75
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,430,616
App. No.
18/329,694
Granted
Sep 30, 2025
Kind
B2
Abstract

Systems, methods and/or computer program products for automating evaluations of code deliveries for software projects. Automated evaluations are generated by selecting software projects and dividing a project into a plurality of code blocks by analyzing the code, build file and build log. Attributes of code blocks are extracted and correlations between code blocks are calculated. Dynamic distance between code blocks is calculated by the correlation and code delivery history, to create a Dynamic General Distance Map and Dynamic User Distance Map for the code blocks. Code delivery distance indicating the code delivery behavior is generated by the Dynamic User Distance Map while the delivery assessment criteria is generated to evaluate code delivery and assess levels of risk associated with delivery of the code. High-level risk indicates that a code delivery may not follow best practices and users are alerted to pay more attention to the code delivery during review.

Claims (222)

1. A computer-implemented method for automating evaluations of code delivery, the computer-implemented method comprising:

calculating, by a processor, a correlation between pairs of code blocks based on Euclidean Distance between each of the pairs of the code blocks;

generating, by the processor, a mapping of the code blocks describing an original distance between the code blocks (an Original Distance Map) based on the calculating of the correlation between the pairs of the code blocks;

generating, by the processor, a Dynamic General Distance Map by dynamically scaling the distance between nodes of the Original Distance Map based on a counting of commits over a period of time that have been applied to one or more of the pairs of the code blocks;

adjusting the distances between the nodes based on historical code deliveries for users, wherein the Dynamic General Distance Map adjusts the distance between code blocks based on a number of commits for each of the code blocks by one of the users;

adding a commit count for each of the code blocks to the Dynamic General Distance Map; and

creating, by the processor, a Dynamic User Distance Map based on the Dynamic General Distance Map.

2. The computer-implemented method of claim 1 , further comprising:

quantifying, by the processor, a code delivery distance representing a total distance of all of the code blocks within the code delivery;

evaluating, by the processor, the code delivery distance for the code delivery using delivery assessment criteria, wherein the code delivery distance is greater than the delivery assessment criteria; and

outputting, by the processor, an indication of a high level of risk is to a user.

3. The computer-implemented method of claim 1 , further comprising:

dividing, by the processor, a software project into a plurality of code blocks based on a physical code structure of the software project.

4. The computer-implemented method of claim 1 , wherein the Original Distance Map comprises nodes representing each of the code blocks and an edge between the nodes having a distance corresponding to the Euclidean Distance calculated between the pairs of the code blocks and wherein scaling the distance between the nodes of the Original Distance Map is based on counting of commits over a time period that have been applied to one or more of the pairs of the code blocks using a formula:

GenDis( m,n )=α*OriDis( m,n )+(1−α)*OriDis( m,n )* e −λ*CommitCount (m,n,t) ,

wherein α is a number between 0 and 1, λ is a positive number, OriDis(m,n) is the distance corresponding to the Euclidean Distance calculated between a first node and a second node representing the pairs of the code blocks in the Original Distance Map, and CommitCount (m,n,t) is a counting of a number of commits over the period of time that are applied to both the first node and the second node.

5. The computer-implemented method of claim 4 , wherein the GenDis(m,n) indicates a decrease in distance between the first node and the second node within the Dynamic General Distance Map each time the commits include a first code block of the first node and a second code block of the second node, and the distance between the first node and the second node increases upon a time interval between the commits that include both the first block of code of the first node and the second code block of the second node, exceeds a threshold amount of time.

6. The computer-implemented method of claim 1 , wherein distance between nodes of the Dynamic User Distance Map are based on inserting a commit count for each of the nodes wherein a higher commit count for a node indicates an increased level of a user's familiarity with a code block corresponding to the node, and decreases as commit counts for each of the nodes increase, and the distance between nodes of the Dynamic User Distance Map increases between nodes having a decreasing number of code commits indicating a code block has not received a commit for a period time that is greater than a threshold period of time.

7. The computer-implemented method of claim 2 , wherein:

delivery assessment criteria=initial step length+dynamic step length, wherein the initial step length is a predefined value or calculated as

(

a

length

defined

by

the

code

delivery

distance

measured

by

the

Dynamic

General

Distance

Map

)

(

a

number

of

code

blocks

in

the

code

delivery

-

1

)

 and the dynamic step length is a distance between nodes of code blocks of the code blocks with the code delivery as measured by dynamic User Distance Map.

8. A computer system for automating evaluations of code delivery comprising:

a processor; and

a computer-readable storage media coupled to the processor, wherein the computer-readable storage media contains program instructions executing, via the processor, a computer-implemented method comprising:

calculating, by the processor, a correlation between pairs of the code blocks based on Euclidean Distance between each of the pairs of the code blocks;

generating, by the processor, a mapping of the code blocks describing an original distance between the code blocks (an Original Distance Map);

generating, by the processor, a Dynamic General Distance Map by dynamically scaling the distance between the nodes of the Original Distance Map based on a counting of commits over a period of time that have been applied to one or more of the pairs of the code blocks;

adjusting the distances between the nodes based on historical code deliveries for users, wherein the Dynamic General Distance Map adjusts the distance between code blocks based on a number of commits for each of the code blocks by one of the users;

adding a commit count for each of the code blocks to the Dynamic General Distance Map; and

creating, by the processor, a Dynamic User Distance Map based on the Dynamic General Distance Map.

9. The computer system of claim 8 , further comprising:

quantifying, by the processor, a code delivery distance representing a total distance of all of the code blocks within the code delivery;

evaluating, by the processor, the code delivery distance for the code delivery using delivery assessment criteria, wherein the code delivery distance is greater than the delivery assessment criteria; and

outputting, by the processor, an indication of a high level of risk is to a user.

10. The computer system of claim 8 , further comprising:

dividing, by the processor, a software project into a plurality of code blocks based on a physical code structure of the software project.

11. The computer system of claim 8 , wherein the Original Distance Map comprises nodes representing each of the code blocks and an edge between the nodes having a distance corresponding to the Euclidean Distance calculated between the pairs of the code blocks and wherein scaling the distance between the nodes of the Original Distance Map based on a counting of commits over a period of time is performed using a formula:

GenDis( m,n )=α*OriDis( m,n )+(1−α)*OriDis( m,n )* e −λ*CommitCount (m,n,t) ,  (2)

wherein α is a number between 0 and 1, λ is a positive number, OriDis(m,n) is the distance corresponding to the Euclidean Distance calculated between a first node and a second node representing the pairs of the code blocks in the Original Distance Map, and CommitCount (m,n,t) is a counting of a number of commits over the period of time that are applied to both the first node and the second node.

12. The computer system of claim 11 , wherein the GenDis(m,n) indicates a decrease in distance between the first node and the second node within the Dynamic General Distance Map each time the commits include a first code block of the first node and a second code block of the second node, and the distance between the first node and the second node increases upon a time interval between the commits that include both the first block of code of the first node and the second code block of the second node, exceeds a threshold amount of time.

13. The computer system of claim 8 , wherein distance between nodes of the Dynamic User Distance Map are based on inserting a commit count for each of the nodes wherein a higher commit count for a node indicates an increased level of a user's familiarity with a code block corresponding to the node, and decreases as commit counts for each of the nodes increase, and the distance between nodes of the Dynamic User Distance Map increases between nodes having a decreasing number of code commits indicating a code block has not received a commit for a period time that is greater than a threshold period of time.

14. The computer system of claim 9 , wherein:

delivery assessment criteria=initial step length+dynamic step length, wherein the initial step length is a predefined value or calculated as

(

a

length

defined

by

the

code

delivery

distance

measured

by

the

Dynamic

General

Distance

Map

)

(

a

number

of

code

blocks

in

the

code

delivery

-

1

)

 and the dynamic step length is a distance between nodes of code blocks of the code blocks with the code delivery as measured by dynamic User Distance Map.

15. A computer program product for automating evaluations of code delivery comprising:

one or more computer readable storage media having computer-readable program instructions stored on the one or more computer readable storage media, said program instructions executes a computer-implemented method comprising:

calculating, by the processor, a correlation between pairs of the code blocks based on Euclidean Distance between each of the pairs of the code blocks;

generating, by the processor, a mapping of the code blocks describing an original distance between the code blocks (an Original Distance Map);

generating, by the processor, a Dynamic General Distance Map by dynamically scaling the distance between the nodes of the Original Distance Map based on a counting of commits over a period of time that have been applied to one or more of the pairs of the code blocks;

adjusting the distances between the nodes based on historical code deliveries for users, wherein the Dynamic General Distance Map adjusts the distance between code blocks based on a number of commits for each of the code blocks by one of the users;

adding a commit count for each of the code blocks to the Dynamic General Distance Map; and

creating, by the processor, a Dynamic User Distance Map based on the Dynamic General Distance Map.

16. The computer program product of claim 15 , further comprising:

quantifying, by the processor, a code delivery distance representing a total distance of all of the code blocks within the code delivery;

evaluating, by the processor, the code delivery distance for the code delivery using delivery assessment criteria, wherein the code delivery distance is greater than the delivery assessment criteria; and

outputting, by the processor, an indication of a high level of risk is to a user.

17. The computer program product of claim 15 , further comprising:

dividing, by the processor, a software project into a plurality of code blocks based on a physical code structure of the software project.

18. The computer program product of claim 15 , wherein the Original Distance Map comprises nodes representing each of the code blocks and an edge between the nodes having a distance corresponding to the Euclidean Distance calculated between the pairs of the code blocks

and wherein scaling the distance between the nodes of the Original Distance Map based on a counting of commits over a period of time is performed using a formula:

GenDis( m,n )=α*OriDis( m,n )+(1−α)*OriDis( m,n )* e −λ*CommitCount (m,n,t) ,

wherein α is a number between 0 and 1, λ is a positive number, OriDis(m,n) is the distance corresponding to the Euclidean Distance calculated between a first node and a second node representing the pairs of the code blocks in the Original Distance Map, and CommitCount (m,n,t) is a counting of a number of commits over the period of time that are applied to both the first node and the second node.

19. The computer program product of claim 15 , wherein distance between nodes of the Dynamic User Distance Map are based on inserting a commit count for each of the nodes wherein a higher commit count for a node indicates an increased level of a user's familiarity with a code block corresponding to the node, and decreases as commit counts for each of the nodes increase, and the distance between nodes of the Dynamic User Distance Map increases between nodes having a decreasing number of code commits indicating a code block has not received a commit for a period time that is greater than a threshold period of time.

20. The computer program product of claim 16 , wherein:

delivery assessment criteria=initial step length+dynamic step length, wherein the initial step length is a predefined value or calculated as

(

a

length

defined

by

the

code

delivery

distance

measured

by

the

Dynamic

General

Distance

Map

)

(

a

number

of

code

blocks

in

the

code

delivery

-

1

)

 and the dynamic step length is a distance between nodes of code blocks of the code blocks with the code delivery as measured by dynamic User Distance Map.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2023
From: LIU, BO TONG; LI, QI; WANG, CHENG FANG; ZHAO, YAN WEI; ZHAO, CAI HUA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 063864/0001 →
Continuity (2)
Continuation 17831609 · Jun 3, 2022
Related Publication 20230394438A1 · Dec 7, 2023
References Cited (21)
US 9176850B2 · Singh · 2015 [cited by applicant]
US 9921952B2 · Dean · 2018 [cited by applicant]
US 10740469B2 · Zheng · 2020 [cited by applicant]
US 10901727B2 · Biddle · 2021 [cited by applicant]
US 10936308B2 · Borra · 2021 [cited by examiner]
US 20110320899A1 · Toyama · 2011 [cited by applicant]
US 20170242671A1 · Edler Von Koch · 2017 [cited by examiner]
US 20170371629A1 · Chacko · 2017 [cited by examiner]
US 20190325348A1 · Carranza · 2019 [cited by examiner]
US 20190332376A1 · Borra · 2019 [cited by applicant]
US 20210357206A1 · Karve · 2021 [cited by applicant]
US 20210370510A1 · Mao · 2021 [cited by applicant]
US 20230325631A1 · Kelly · 2023 [cited by examiner]
CN 105183658A · 2015 [cited by applicant]
TW 695284B · 2020 [cited by applicant]
Daniel Sokolowski et al., Automating Serverless Deployments for DevOps Organizations, Aug. 23-28, 2021, [Retrieved on Mar. 17, 2025]. Retrieved from the internet: <URL: https://dl.acm.org/doi/pdf/10.1145/3468264.3468575… [cited by examiner]
Jianxin Wu et al., Beyond the Euclidean distance: Creating effective visual codebooks using the histogram intersection kernel, 2009 IEEE, [Retrieved on Jul. 1, 2025]. Retrieved from the internet: <URL: https://ieeexplor… [cited by examiner]
“Method and System for Assessing the Business Risk of a Software Application and Using That to Automate Workflow Based Deployment”, An IP.com Prior Art Database Technical Disclosure, Authors et al.: Disclosed Anonymousl… [cited by applicant]
PT Tokopedia, “Pre-Merge Risk Analysis in Version Control”, An IP.com Prior Art Database Technical Disclosure, IP.com No. IPCOM000267043D, IP.com Electronic Publication Date: Sep. 20, 2021, 6 pages. [cited by applicant]
List of IBM Patents or Patent Applications Treated as Related. Filed Jun. 6, 2023, 2 pages. [cited by applicant]
Liu et al., “Automated Evaluation of Code Delivery”, U.S. Appl. No. 17/831,609, filed Jun. 3, 2022. [cited by applicant]