IP Library › Granted Patent US 12,632,305
Granted Patent B2
US 12,632,305 · App. 17/648,231 · Granted May 19, 2026

Incremental analysis of legacy applications

Inventors: Shivali Agarwal (Ghaziabad, IN); Saravanan Krishnan (Bangalore, IN); Amith Singhee (Bangalore, IN)
Assignee: International Business Machines Corporation
G06F9/5033G06F9/5044G06F9/5055
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,632,305
App. No.
17/648,231
Granted
May 19, 2026
Kind
B2
Abstract

A method, system, and computer program product for automated increment analysis of legacy applications are provided. The method receives a set of service properties for a service to be generated from a set of applications. The set of applications are associated with a set of resources. A subset of resources are determined based on the set of service properties. The subset of resources are to be included in the service. A resource graph of the subset of resources is generated based on the subset of resources and the set of service properties. The method generates a service increment including at least a portion of the subset of resources based on the resource graph and the set of service properties.

Claims (56)

1 . A computer-implemented method, comprising:

receiving a set of service properties for a service to be generated from a set of applications, the set of applications associated with a set of resources, wherein the set of service properties include a set of objectives and constraints for a modernization of the set of applications, and the set of service properties are specified as a set of objectives and a set of requirements and constraints of a service increment;

determining a subset of resources based on the set of service properties, the subset of resources to be included in the service, wherein the determining includes performing a code analysis of the set of service properties and identifying a relationship between the set of service properties;

generating a resource graph of the subset of resources based on the subset of resources and the set of service properties that indicates the relationship;

converting the set of objectives and the set of constraints to a set of predicates and generate a formal notation for the predicates; and

generating, based on the resource graph and the formal notation, a service increment including a portion of the subset of resources based on the resource graph and the set of service properties, wherein the service increment is a portion of the modernization, and the service increment is based on an optimization of the formal notation and predicates in meeting specified requirements defined by the service properties.

2 . The method of claim 1 , wherein determining the subset of resources further comprises:

determining a set of seed resources based on the set of service properties; and

identifying a set of dependent resources based on the set of seed resources.

3 . The method of claim 2 , wherein the resource graph includes one or more seed resources for the service increment and a subset of dependent resources associated with each seed resource of the one or more seed resources.

4 . The method of claim 1 , wherein the set of service properties are a first set of service properties, the method further comprising:

receiving a second set of service properties for the service; and

modifying the service increment based on the second set of service properties to generate a modified service increment.

5 . The method of claim 4 , wherein the subset of resources is a first subset of resources and modifying the service increment to generate the modified service increment further comprises:

pruning the subset of resources to generate a second subset of resources based on the second set of service properties.

6 . The method of claim 1 , wherein generating the service increment further comprises:

determining a boundary for the service increment, the boundary including a set of internal resources representing at least a portion of the subset of resources; and

determining a set of external resources associated with the set of internal resources, the set of external resources being external to the boundary of the service increment.

7 . The method of claim 1 , wherein the set of constraints are based on a service type and an entity type.

8 . A system, comprising:

one or more processors; and

a computer-readable storage medium, coupled to the one or more processors, storing program instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving a set of service properties for a service to be generated from a set of applications, the set of applications associated with a set of resources, wherein the set of service properties include a set of objectives and constraints for a modernization of the set of applications, and the set of service properties are specified as a set of objectives and a set of requirements and constraints of a service increment;

determining a subset of resources based on the set of service properties, the subset of resources to be included in the service, wherein the determining includes performing a code analysis of the set of service properties and identifying a relationship between the set of service properties;

generating a resource graph of the subset of resources based on the subset of resources and the set of service properties that indicates the relationship;

converting the set of objectives and the set of constraints to a set of predicates and generate a formal notation for the predicates; and

generating, based on the resource graph and the formal notation, a service increment including a portion of the subset of resources based on the resource graph and the set of service properties, wherein the service increment is a portion of the modernization, and the service increment is based on an optimization of the formal notation and predicates in meeting specified requirements defined by the service properties.

9 . The system of claim 8 , wherein determining the subset of resources further comprises:

determining a set of seed resources based on the set of service properties; and

identifying a set of dependent resources based on the set of seed resources.

10 . The system of claim 9 , wherein the resource graph includes one or more seed resources for the service increment and a subset of dependent resources associated with each seed resource of the one or more seed resources.

11 . The system of claim 8 , wherein the set of service properties are a first set of service properties, the operations further comprising:

receiving a second set of service properties for the service; and

modifying the service increment based on the second set of service properties to generate a modified service increment.

12 . The system of claim 11 , wherein the subset of resources is a first subset of resources and modifying the service increment to generate the modified service increment further comprises:

pruning the subset of resources to generate a second subset of resources based on the second set of service properties.

13 . The system of claim 8 , wherein generating the service increment further comprises:

determining a boundary for the service increment, the boundary including a set of internal resources representing at least a portion of the subset of resources; and

determining a set of external resources associated with the set of internal resources, the set of external resources being external to the boundary of the service increment.

14 . A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions being executable by one or more processors to cause the one or more processors to perform operations comprising:

receiving a set of service properties for a service to be generated from a set of applications, the set of applications associated with a set of resources, wherein the set of service properties include a set of objectives and constraints for a modernization of the set of applications, and the set of service properties are specified as a set of objectives and a set of requirements and constraints of a service increment;

determining a subset of resources based on the set of service properties, the subset of resources to be included in the service, wherein the determining includes performing a code analysis of the set of service properties and identifying a relationship between the set of service properties;

generating a resource graph of the subset of resources based on the subset of resources and the set of service properties that indicates the relationship;

converting the set of objectives and the set of constraints to a set of predicates and generate a formal notation for the predicates; and

generating, based on the resource graph and the formal notation, a service increment including a portion of the subset of resources based on the resource graph and the set of service properties, wherein the service increment is a portion of the modernization, and the service increment is based on an optimization of the formal notation and predicates in meeting specified requirements defined by the service properties.

15 . The computer program product of claim 14 , wherein determining the subset of resources further comprises:

determining a set of seed resources based on the set of service properties; and

identifying a set of dependent resources based on the set of seed resources, and wherein the resource graph includes one or more seed resources for the service increment and a subset of dependent resources associated with each seed resource of the one or more seed resources.

16 . The computer program product of claim 14 , wherein the set of service properties are a first set of service properties, the operations further comprising:

receiving a second set of service properties for the service; and

modifying the service increment based on the second set of service properties to generate a modified service increment.

17 . The computer program product of claim 16 , wherein the subset of resources is a first subset of resources and modifying the service increment to generate the modified service increment further comprises:

pruning the subset of resources to generate a second subset of resources based on the second set of service properties.

18 . The computer program product of claim 14 , wherein generating the service increment further comprises:

determining a boundary for the service increment, the boundary including a set of internal resources representing at least a portion of the subset of resources; and

determining a set of external resources associated with the set of internal resources, the set of external resources being external to the boundary of the service increment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2022
From: AGARWAL, SHIVALI; KRISHNAN, SARAVANAN; SINGHEE, AMITH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058681/0526 →
Continuity (1)
Related Publication 20230229508A1 · Jul 20, 2023
References Cited (19)
US 8671397B2 · Kalman · 2014 [cited by examiner]
US 8762949B2 · Conway · 2014 [cited by examiner]
US 9495211B1 · Helstroom · 2016 [cited by examiner]
US 10162610B2 · Apte · 2018 [cited by applicant]
US 10163066B1 · Wertheimer · 2018 [cited by examiner]
US 11042369B1 · Kimball · 2021 [cited by applicant]
US 20090193063A1 · Leroux · 2009 [cited by applicant]
US 20140047119A1 · Wong · 2014 [cited by examiner]
US 20190250912A1 · Gavisiddappa Kodigenahalli · 2019 [cited by applicant]
US 20200019381A1 · Patel · 2020 [cited by examiner]
US 20220075660A1 · Beare · 2022 [cited by examiner]
Thomas J. Marlowe, Barbara G. Ryder, An efficient hybrid algorithm for incremental data flow analysis (Year: 1990). [cited by examiner]
Chris Janes, ImperfectDev, The roles and industries that utilize static code analysis. (Year: 2023). [cited by examiner]
Amra et al., “Modernizing IBM i Applications from the Database up to the User Interface and Everything in Between,” Redbooks, Jun. 2014, 702 pages, First Edition, IBM. [cited by applicant]
Dorda et al., “A Survey of Legacy System Modernization Approaches” Apr. 2000, 30 pages, Carnegie Mellon Software Engineering Institute, US. [cited by applicant]
Dorda et al., “Incremental Modernization of Legacy Systems,” CMU/SEI-2001-TN-006, Jul. 2001, 29 pages, Carnegie Melon University, US. [cited by applicant]
Mell et al., “The NIST Definition of Cloud Computing,” Recommendations of the National Institute of Standards and Technology, U.S. Department of Commerce, Special Publication 800-145, Sep. 2011, 7 pgs. [cited by applicant]
Strong, “Migrating the Monolith to the Cloud with Incremental Application Modernization,” Sep. 23, 2019, 11 pages. [cited by applicant]
Tritchew, A Multi-Step Incremental Approach to Modernization (Step 2: Create Options—“How will we Modernize”), Sep. 8, 2021, 8 pages. [cited by applicant]