Patent classifications
G06F8/72
Information processing apparatus, recording medium for information processing program, and information processing method
An information processing apparatus, includes a computation processing device that includes a memory and a processor coupled to the memory; and a storage device that stores a program, and wherein the processor is configured to: store, in the memory, a first storage area for first data that is assigned to a computation target by data definition for the computation target written in the program and a second storage area for second data that is assigned to the computation target instead of the first data, simplify the program, when the data definition for the computation target is omitted by executing the simplified program, output the second data, and perform the computation by using the output second data.
Assisting dependency migration
Methods, systems, and computer program products for assisting dependency migration are provided herein. A computer-implemented method includes determining differences between a first version of a dependency used by a software application and each of a plurality of upgrade candidates, the plurality of upgrade candidates comprising at least one of: (i) one or more newer versions of the dependency and (ii) a substitute dependency; identifying, based on the determined differences for a given one of the upgrade candidates, one or more sections of code of the software application that need to be patched in order to be compatible with the given upgrade candidate; and generating a modified version of the software application for the given upgrade candidate that comprises one or more patches for at least a portion of the identified one or more sections of code.
Machine learning-based software application modernization assessments
Techniques are described for enabling a software modernization assessment service to train and use ML models to automatically generate modernization assessment recommendations for users' software applications and systems. A modernization assessment service collects historical assessment data reflecting past modernization processes and assessments (e.g., application profile information and associated modernization strategies and tools used in past modernization projects). The modernization assessment service uses the historical assessment data to train one or more ML models (e.g., classifiers) that can be used to automatically identify relevant modernization strategies, services, and tools for given software application or system. Responsive to user requests to generate modernization assessment recommendations, the modernization assessment service can use the trained models to automatically generate modernization recommendations and reports.
Machine learning-based software application modernization assessments
Techniques are described for enabling a software modernization assessment service to train and use ML models to automatically generate modernization assessment recommendations for users' software applications and systems. A modernization assessment service collects historical assessment data reflecting past modernization processes and assessments (e.g., application profile information and associated modernization strategies and tools used in past modernization projects). The modernization assessment service uses the historical assessment data to train one or more ML models (e.g., classifiers) that can be used to automatically identify relevant modernization strategies, services, and tools for given software application or system. Responsive to user requests to generate modernization assessment recommendations, the modernization assessment service can use the trained models to automatically generate modernization recommendations and reports.
REMOTE APPLICATION MODERNIZATION
Various embodiments of the present technology generally relate to the characterization and improvement of software applications. More specifically, some embodiments relate to systems and methods for modeling code behavior and generating new versions of the code based on the code behavior models. In some embodiments, a method of improving a codebase includes recording a run of the existing code, characterizing the code behavior via one or more models, prototyping new code according to a target language and target environment, deploying the new code to the target environment, and comparing the behavior of the new code to the behavior of the existing code. In some implementations, generating new code based on the behavior models includes using one or more machine learning techniques for code generation based on the target language and environment.
USAGE-BASED SOFTWARE LIBRARY DECOMPOSITION
Performing usage-based software library decomposition is disclosed herein. In some examples, a processor device generates a first library graph representing a first software library including multiple functions. The first library graph comprises a plurality of nodes that each correspond to a function of the first software library. The processor device identifies a function within the first software library (“invoked function”) that is directly invoked by an application that depends on the first software library, then generates a call graph including nodes within the first library graph (“dependency nodes”) corresponding to either the invoked function or another function invoked by the invoked function during application execution. Using the call graph, the processor device generates a second software library including only functions of the first software library corresponding to dependency nodes of the call graph.
USAGE-BASED SOFTWARE LIBRARY DECOMPOSITION
Performing usage-based software library decomposition is disclosed herein. In some examples, a processor device generates a first library graph representing a first software library including multiple functions. The first library graph comprises a plurality of nodes that each correspond to a function of the first software library. The processor device identifies a function within the first software library (“invoked function”) that is directly invoked by an application that depends on the first software library, then generates a call graph including nodes within the first library graph (“dependency nodes”) corresponding to either the invoked function or another function invoked by the invoked function during application execution. Using the call graph, the processor device generates a second software library including only functions of the first software library corresponding to dependency nodes of the call graph.
Library model addition
A library model addition engine adds library models to a library knowledge base by defining a library configuration file format for conveying information about each library model, custom inputs and code snippets to facilitate library comparison operations, and education content for the library model. The library configuration file format may be automatically loaded and validated to ensure that the file is in the correct format and satisfies the constraints provided by the library recommendation engine.
COGNITIVE SOFTWARE APPLICATION LEARNER AND ENHANCER
Systems, computer program products, and methods are described herein for continuous cognitive code logic detection and prediction using machine learning techniques. The present invention is configured to receive, from a user input device, source code scripts and target code scripts for functional code logic components of a full stack, wherein the source code scripts and the target code scripts are associated with one or more tiers; generate a training dataset based on at least the source code scripts, the target code scripts, and the functional code logic components of the full stack; train, using a machine learning algorithm, a machine learning model using the training dataset; determine a prediction accuracy associated with the machine learning model; determine that the prediction accuracy is greater than a predetermined threshold; and deploy the machine learning model on unseen source code scripts.
Removing feature flag-related codebase from applications
A system and method automatically refactor mature program code having interdependent features to remove instructions pertaining to features that are no longer used. To facilitate reduction of the number of feature dependencies to test, instrumentation data are analyzed to determine which of the available features are in actual use. A graph of feature dependencies is built based on the program configuration, and the program code is simulated, according to existing testing protocols, with various combinations of features disabled to determine whether the program continues to function without error. When features are found that can be safely removed, the codebase is automatically refactored to eliminate the implementing code corresponding to the features. The refactored code then may be further automatically retested and deployed into the production environment.