IP Library › Granted Patent US 12,248,775
Granted Patent B2
US 12,248,775 · App. 17/724,230 · Granted Mar 11, 2025

System to identify and characterize code changes

Inventor: Sebastien Lavoignat (Droue-sur-Drouette, FR)
Assignee: SAP SE
G06F8/65G06F8/71
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,248,775
App. No.
17/724,230
Granted
Mar 11, 2025
Kind
B2
Abstract

Systems and methods include determination of a first code artifact and a second code artifact, generation of a first plurality of key, value pairs based on the first code artifact and a second plurality of key, value pairs based on the second code artifact, identification of a plurality of changes between the first plurality of key, value pairs and the second plurality of key, value pairs, the plurality of changes represented by a third plurality of key, value pairs; determination, for each of a plurality of rules, of whether the third plurality of key, value pairs includes at least one key, value pair associated with the rule and, if so, application of the rule to each of the at least one key, value pairs to determine an analysis output associated with each of the at least one key, value pairs, and generation of a visualization based on the analysis outputs.

Claims (112)

1. A system comprising:

a memory storing processor-executable program code; and

a processing unit to execute the processor-executable program code to cause the system to:

determine a first code artifact of a first application and a second code artifact of the first application;

generate a first plurality of key, value pairs by, for each of a plurality of lines of code of the first code artifact:

determination of an entity corresponding to a line of code of the first code artifact;

determination of any parent entities of the entity, each parent entity corresponding to a respective line of code of the first code artifact;

determination of a key identifying the entity and all determined parent entities; and

determination of a value corresponding to the key, where the line of code of the first code artifact associates the entity with the value;

generate a second plurality of key, value pairs by, for each of a plurality of lines of code of the second code artifact:

determination of a second entity corresponding to a line of code of the second code artifact;

determination of any parent entities of the second entity, each parent entity of the second entity corresponding to a respective line of code of the second code artifact;

determination of a second key identifying the second entity and all determined parent entities of the second entity; and

determination of a second value corresponding to the second key, where the line of code of the second code artifact associates the second entity with the second value;

identify a plurality of changes between the first plurality of key, value pairs and the second plurality of key, value pairs, the plurality of changes including a third plurality of key, value pairs;

determine a plurality of rules associated with the first application;

for each of the plurality of rules:

determine whether the third plurality of key, value pairs includes at least one key, value pair associated with the rule; and

if the third plurality of key, value pairs includes at least one key, value pair associated with the rule, apply the rule to each of the at least one key, value pairs to determine an analysis output associated with each of the at least one key, value pairs;

generate a visualization based on the analysis outputs; and

deploy compatible ones of the plurality of changes to update a version of the first application associated with the first artifact.

2. The system according to claim 1 , wherein the third plurality of key, value pairs comprises a fourth plurality of key, value pairs associated with added keys, a fifth plurality of key, value pairs associated with removed keys, and a sixth plurality of key, value pairs associated with updated keys.

3. The system according to claim 2 , wherein generation of the visualization comprises:

determination of a first number of added keys, a second number of removed keys, and a third number of updated keys; and

generation of the visualization including the first number, the second number and the third number.

4. The system according to claim 3 , wherein generation of the visualization comprises:

determination of a score associated with each of the added keys, removed keys, and updated keys;

determination of a functional score based on the determined scores; and

generation of the visualization including the functional score.

5. The system according to claim 1 , wherein a first analysis output associated with a first key, value pair comprises a text message that an object associated with the key of the first key, value pair in the first artifact is not present in the second artifact,

wherein a second analysis output associated with a second key, value pair comprises a second text message that a value of a property associated with the key of the second key, value pair in the first artifact is changed in the second artifact, and

wherein the visualization includes the text message and the second text message.

6. The system according to claim 1 , wherein generation of the first plurality of key, value pairs comprises:

generation of a fourth plurality of key, value pairs by, for each of a second plurality of lines of code of the first code artifact:

determination of a third entity corresponding to a line of code of the second plurality of lines of code of the first code artifact;

determination of any parent entities of the third entity, each parent entity of the third entity corresponding to a respective line of code of the first code artifact;

determination of a third key identifying the third entity and all determined parent entities of the third entity; and

determination of a third value corresponding to the third key, the third value indicating that the line of code of the second plurality of lines of code of the first code artifact does not associate the entity with a value.

7. The system according to claim 6 , wherein the determined third value is equal to the key.

8. A computer-implemented method, comprising:

determining a first code artifact and a second code artifact;

generating a first plurality of key, value pairs by, for each of a plurality of lines of code of the first code artifact:

determining an entity corresponding to a line of code of the first code artifact;

determining any parent entities of the entity, each parent entity corresponding to a respective line of code of the first code artifact;

determining a key identifying the entity and all determined parent entities; and

determining a value corresponding to the key, where the line of code of the first code artifact associates the entity with the value;

generating a second plurality of key, value pairs by, for each of a plurality of lines of code of the second code artifact:

determining a second entity corresponding to a line of code of the second code artifact;

determining any parent entities of the second entity, each parent entity of the second entity corresponding to a respective line of code of the second code artifact;

determining a second key identifying the second entity and all determined parent entities of the second entity; and

determining a second value corresponding to the second key, where the line of code of the second code artifact associates the second entity with the second value;

identifying a plurality of changes between the first plurality of key, value pairs and the second plurality of key, value pairs, the plurality of changes represented by a third plurality of key, value pairs;

for each of a plurality of rules:

determining whether the third plurality of key, value pairs includes at least one key, value pair associated with the rule; and

if the third plurality of key, value pairs includes at least one key, value pair associated with the rule, applying the rule to each of the at least one key, value pairs to determine an analysis output associated with each of the at least one key, value pairs;

generating a visualization based on the analysis outputs; and

deploying compatible ones of the plurality of changes to update a version of the first application associated with the first artifact.

9. The method according to claim 8 , wherein the third plurality of key, value pairs comprises a fourth plurality of key, value pairs associated with added keys, a fifth plurality of key, value pairs associated with removed keys, and a sixth plurality of key, value pairs associated with updated keys.

10. The method according to claim 9 , wherein generating the visualization comprises:

determining a first number of added keys, a second number of removed keys, and a third number of updated keys; and

generating the visualization including the first number, the second number and the third number.

11. The method according to claim 10 , wherein generating the visualization comprises:

determining a score associated with each of the added keys, removed keys, and updated keys;

determining a functional score based on the determined scores; and

generating the visualization including the functional score.

12. The method according to claim 8 , wherein a first analysis output associated with a first key, value pair comprises a text message that an object associated with the key of the first key, value pair in the first artifact is not present in the second artifact,

wherein a second analysis output associated with a second key, value pair comprises a second text message that a value of a property associated with the key of the second key, value pair in the first artifact is changed in the second artifact, and

wherein the visualization includes the text message and the second text message.

13. The method according to claim 8 , wherein generating the first plurality of key, value pairs comprises:

generating a fourth plurality of key, value pairs by, for each of a second plurality of lines of code of the first code artifact:

determining a third entity corresponding to a line of code of the second plurality of lines of code of the first code artifact;

determining any parent entities of the third entity, each parent entity of the third entity corresponding to a respective line of code of the first code artifact;

determining a third key identifying the third entity and all determined parent entities of the third entity; and

determining a third value corresponding to the third key, the third value indicating that the line of code of the second plurality of lines of code of the first code artifact does not associate the entity with a value.

14. The method according to claim 13 , wherein the determined third value is equal to the key.

15. A non-transitory computer-readable medium storing program code executable by a processing unit of a computing system causes the computing system to:

determine a first code artifact of a first application and a second code artifact of the first application;

generate a first plurality of key, value pairs by, for each of a plurality of lines of code of the first code artifact:

determination of an entity corresponding to a line of code of the first code artifact;

determination of any parent entities of the entity, each parent entity corresponding to a respective line of code of the first code artifact;

determination of a key identifying the entity and all determined parent entities; and

determination of a value corresponding to the key, where the line of code of the first code artifact associates the entity with the value;

generate a second plurality of key, value pairs by, for each of a plurality of lines of code of the second code artifact:

determination of a second entity corresponding to a line of code of the second code artifact;

determination of any parent entities of the second entity, each parent entity of the second entity corresponding to a respective line of code of the second code artifact;

determination of a second key identifying the second entity and all determined parent entities of the second entity; and

determination of a second value corresponding to the second key, where the line of code of the second code artifact associates the second entity with the second value;

identify a plurality of changes between the first plurality of key, value pairs and the second plurality of key, value pairs, the plurality of changes including a third plurality of key, value pairs;

determine a plurality of rules associated with the first application;

for each of the plurality of rules:

determine whether the third plurality of key, value pairs includes at least one key, value pair associated with the rule; and

if the third plurality of key, value pairs includes at least one key, value pair associated with the rule, apply the rule to each of the at least one key, value pairs to determine an analysis output associated with each of the at least one key, value pairs; and

generate a visualization based on the analysis outputs; and

deploy compatible ones of the plurality of changes to update a version of the first application associated with the first artifact.

16. The non-transitory computer-readable medium according to claim 15 , wherein a first analysis output associated with a first key, value pair comprises a text message that an object associated with the key of the first key, value pair in the first artifact is not present in the second artifact,

wherein a second analysis output associated with a second key, value pair comprises a second text message that a value of a property associated with the key of the second key, value pair in the first artifact is changed in the second artifact, and

wherein the visualization includes the text message and the second text message.

17. The non-transitory computer-readable medium according to claim 15 , wherein generation of the first plurality of key, value pairs comprises:

generation of a fourth plurality of key, value pairs by, for each of a second plurality of lines of code of the first code artifact:

determination of a third entity corresponding to a line of code of the second plurality of lines of code of the first code artifact;

determination of any parent entities of the third entity, each parent entity of the third entity corresponding to a respective line of code of the first code artifact;

determination of a third key identifying the third entity and all determined parent entities of the third entity; and

determination of a third value corresponding to the third key, the third value indicating that the line of code of the second plurality of lines of code of the first code artifact does not associate the entity with a value.

18. The non-transitory computer-readable medium according to claim 17 , wherein the determined third value is equal to the key.

19. The non-transitory computer-readable medium according to claim 15 , wherein the third plurality of key, value pairs comprises a fourth plurality of key, value pairs associated with added keys, a fifth plurality of key, value pairs associated with removed keys, and a sixth plurality of key, value pairs associated with updated keys, and

wherein generation of the visualization comprises:

determination of a first number of added keys, a second number of removed keys, and a third number of updated keys; and

generation of the visualization including the first number, the second number and the third number.

20. The non-transitory computer-readable medium according to claim 19 , wherein generation of the visualization comprises:

determining a score associated with each of the added keys, removed keys, and updated keys;

determination of a functional score based on the determined scores; and

generation of the visualization including the functional score.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2022
From: LAVOIGNAT, SEBASTIEN
To: SAP SE
Reel/Frame 059641/0209 →
Continuity (1)
Related Publication 20230333836A1 · Oct 19, 2023
References Cited (20)
US 10387171B2 · Hazarika · 2019 [cited by examiner]
US 10903988B1 · Belmar et al. · 2021 [cited by applicant]
US 20120304148A1 · Braun et al. · 2012 [cited by applicant]
US 20140180961A1 · Hankins · 2014 [cited by examiner]
US 20150169320A1 · Ahmed · 2015 [cited by examiner]
US 20160092211A1 · Atanasiu · 2016 [cited by examiner]
US 20160274870A1 · Seidman · 2016 [cited by examiner]
US 20160274907A1 · Narayanan · 2016 [cited by examiner]
US 20160283350A1 · Akbulut · 2016 [cited by examiner]
US 20170052766A1 · Garipov · 2017 [cited by examiner]
US 20200257700A1 · Xu · 2020 [cited by examiner]
US 20200264860A1 · Srinivasan · 2020 [cited by examiner]
US 20210064723A1 · Drake · 2021 [cited by examiner]
JP H0962498A · 1997 [cited by applicant]
JP 2003280903A · 2003 [cited by applicant]
JP 2013257639A · 2013 [cited by applicant]
JP 2015075872A · 2015 [cited by applicant]
JP 2016164727A · 2016 [cited by applicant]
Communication: “Extended European Search Report”, Sep. 19, 2023 (Sep. 19, 2023), European Patent Office, for European Application No. 22208757.9-1203, 9 pages. [cited by applicant]
“First Japanese Non-Final Office Action”, dated Dec. 16, 2024 (Dec. 16, 2024), for Japanese Application No. 2022-199441, 6pgs. [cited by applicant]