IP Library Granted Patent US 12,032,941
Granted Patent B2
US 12,032,941 · App. 17/303,715 · Granted Jul 9, 2024

Method and system for updating legacy software

Inventor: Thomas J. Weigert (Lake Barrington, IL)
Assignee: Updraft, LLC
G06F8/65G06F8/51G06F8/71G06F8/72G06F8/75G06F8/76G06F11/3608G06F11/3684H04L63/30H04L67/34
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,032,941
App. No.
17/303,715
Granted
Jul 9, 2024
Kind
B2
Abstract

A method includes analyzing operational code to determine identifiers used within the operational code. The method further includes grouping like identifiers based a relational aspect of the identifiers. The method further includes, for one or more identifier groups, determining potential feature(s) of the identifier group(s). The method further includes testing the potential feature(s) based on a corresponding feature test suite to produce feedback regarding meaningfulness of the potential feature(s). The method further comprises, when the meaningfulness is above a threshold, adding the potential feature(s) to a feature set. The method further includes, when the meaningfulness is at or below the threshold, adjusting analysis parameter(s), grouping parameter(s), feature parameter(s), and/or testing parameter(s).

Claims (39)

1. A method comprises:

obtaining, by a computing device, legacy operational code for analysis, wherein the operational code includes a plurality of versions;

determining, by the computing device, that the plurality of versions of the legacy operational code includes more than one legacy programming language;

dividing, by the computing device, the legacy operational code into a plurality of sections based on different legacy programming languages;

data mining, by the computing device, the plurality of sections of the legacy operational code to determine a plurality of identifiers;

determining, by the computing device, a plurality of features of the plurality of sections of the legacy operational code based on grouping lines of code of the plurality of versions based on the plurality of identifiers;

generating, by the computing device, a set of requirements from the plurality of features; and

creating, by the computing device, new operational code using a new programming language from the set of requirements.

2. The method of claim 1 , wherein the determining the plurality of features comprises:

generating, by the computing device, test cases from legacy operational code;

testing, by the computing device, a feature of the plurality of features based on a corresponding one or more of the test cases;

when the feature tests favorably with respect to the corresponding one or more of the test cases, indicating, by the computing device, that the feature is valid.

3. The method of claim 2 further comprises:

when the feature tests unfavorably with respect to the corresponding one or more of the test cases, adjusting, by the computing device, factors for determining the plurality of features, wherein the factors include adding a line of code to the one or more lines of code of the lines of code, deleting a line of code from the one or more lines of code, expanding corresponding documentation of the plurality of versions, and/or restricting the corresponding documentation.

4. The method of claim 1 , wherein the creating new operational code comprises:

creating, by the computing device, software generation rules, wherein a generation rule of the generation rules is a naming convention rule, an identifier distinguishing rule, a feature relationship rule, an identifier anchor point rule, or an identifier idiom rule.

5. The method of claim 1 , wherein a line of code of the lines of code of the plurality of versions comprises:

a comment, a statement, an expression, or a declaration.

6. A computing device comprises:

one or more interfaces;

one or more memories; and

one or more processing circuits that are operably coupled to the one or more interfaces and to the one or more memories, wherein the one or more processing circuits are operable to:

obtain legacy operational code for analysis, wherein the operational code includes a plurality of versions;

determine that the plurality of versions of the legacy operational code includes more than one legacy programming language;

dividing the legacy operational code into a plurality of sections based on different legacy programming languages;

data mining the plurality of sections of the legacy operational code to determine a plurality of identifiers;

determine a plurality of features of the plurality of sections of the legacy operational code based on grouping lines of code of the plurality of versions based on the plurality of identifiers;

generate a set of requirements from the plurality of features; and

create new operational code using a new programming language from the first set of requirements.

7. The computing device of claim 6 , wherein the one or more processing circuits is further operable to determine the plurality of features by:

generating test cases from legacy operational code;

testing a feature of the plurality of features based on a corresponding one or more of the test cases;

when the feature tests favorably with respect to the corresponding one or more of the test cases, indicating that the feature is valid.

8. The computing device of claim 7 , wherein the one or more processing circuits is further operable to:

when the feature tests unfavorably with respect to the corresponding one or more of the test cases, adjust factors for determining the plurality of features, wherein the factors include adding a line of code to the one or more lines of code of the lines of code, deleting a line of code from the one or more lines of code of the version, expanding corresponding documentation of the plurality of versions, and/or restricting the corresponding documentation.

9. The computing device of claim 6 , wherein the one or more processing circuits is further operable to create the new operational code by:

creating software generation rules, wherein a generation rule of the generation rules is a naming convention rule, an identifier distinguishing rule, a feature relationship rule, an identifier anchor point rule, or an identifier idiom rule.

10. The computing device of claim 6 , wherein a line of code of the lines of code of the plurality of versions comprises:

a comment, a statement, an expression, or a declaration.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2021
From: WEIGERT, THOMAS J.
To: UNIQUESOFT, LLC
Reel/Frame 056450/0517 →
CHANGE OF NAME Recorded Jun 7, 2021
From: UNIQUESOFT, LLC
To: UPDRAFT, LLC
Reel/Frame 056494/0178 →
Continuity (3)
Continuation 16215085 · Dec 10, 2018
Provisional Application 62599081 · Dec 15, 2017
Related Publication 20210365258A1 · Nov 25, 2021