Patent classifications
G06F8/72
System and method for migrating legacy software to a system common architecture
A computer-implemented method for migrating a monolithic legacy software system to a well-defined modular target software architecture includes selecting a method, based on predefined patterns, for transforming the software legacy software system; creating an abstract syntax tree from the legacy software system's source code; from the abstract syntax tree, determining a flow of the source code and any coding violations and coding smells in the legacy software system's source code; using the flow and the coding violations, identifying architecture issues in the legacy software system; scheduling tasks for transforming the legacy software system into the target software architecture; automatically generating new source code according to the target software architecture; and automatically and autonomously refactoring the new source code.
System and method for migrating legacy software to a system common architecture
A computer-implemented method for migrating a monolithic legacy software system to a well-defined modular target software architecture includes selecting a method, based on predefined patterns, for transforming the software legacy software system; creating an abstract syntax tree from the legacy software system's source code; from the abstract syntax tree, determining a flow of the source code and any coding violations and coding smells in the legacy software system's source code; using the flow and the coding violations, identifying architecture issues in the legacy software system; scheduling tasks for transforming the legacy software system into the target software architecture; automatically generating new source code according to the target software architecture; and automatically and autonomously refactoring the new source code.
Identifying and recommending code snippets to be reused by software developer
A computer-implemented method, system and computer program product for identifying and recommending code snippets to be reused by a software developer. Multiple sources (e.g., social media messages) are monitored for source code development difficulties. In response to detecting a source code development difficulty, the source code which is the source of the detected source code development difficulty is labeled with a struggle tag, which may indicate a category of the source code. Furthermore, source code snippets from various sources (e.g., source code snippets publicly available on the Internet) are mined, identified and labeled with tags, which may indicate a category of the source code snippet. Relevant source code snippets are identified to address the software developer's struggles based on matching one or more of these tags with the struggle tag, which are later ranked as to which are the best to address the software developer's struggles in writing source code.
MACHINE LEARNING BASED DEPRECATED SOFTWARE IDENTIFICATION
An approach to identifying the use of deprecated source code in software repositories and recommending a replacement. Parsing one or more software repositories for software source code, identified as deprecated, by a machine learning model. Responsive to identifying the deprecated software source code, alerting a first one or more software developers responsible for maintaining a software source code module using the deprecated software source code; and recommending an alternative software source code for use in the software source code module to replace the deprecated software source code to the first one or more software developers.
CODE REFACTOR RENAMING RECOMMENDER
An approach to code refactor renaming may be provided. Source code with a naming convention for functions and classes can be presented to a machine learning model. The model may identify the names for functions and classes. The identified names may be tokenized. Docstrings associated with functions and classes may be identified. Code for the identified functions and classes and associated may be input into a feature vector generation mechanism. A model may be trained mapping the generated feature vectors to tokenized identified names, via regression. The model can be utilized to analyze input code with the same naming convention to predict names for functions and classes, allowing for the recommendation of function and class names in accordance with the programming code naming convention.
CODE REFACTOR RENAMING RECOMMENDER
An approach to code refactor renaming may be provided. Source code with a naming convention for functions and classes can be presented to a machine learning model. The model may identify the names for functions and classes. The identified names may be tokenized. Docstrings associated with functions and classes may be identified. Code for the identified functions and classes and associated may be input into a feature vector generation mechanism. A model may be trained mapping the generated feature vectors to tokenized identified names, via regression. The model can be utilized to analyze input code with the same naming convention to predict names for functions and classes, allowing for the recommendation of function and class names in accordance with the programming code naming convention.
SOFTWARE CODE CHANGE METHOD AND APPARATUS
In a software code change method, an apparatus determines to-be-changed software code and change configuration information according to an instruction of a user. The apparatus selects, from stored changers based on the change configuration information, a plurality of changers to be called to implement changes to the software code, and determines a calling sequence of the plurality of changers and sets attributes of each changer. The apparatus then sequentially calls the plurality of changers according to the calling sequence and based on the attributes of each changer to make changes to the software code.
Automating identification of test cases for library suggestion models
A library model addition engine adds library models to a library knowledge base by defining a template for a library configuration file that conveys information about each library model, custom inputs and code snippets to facilitate library comparison operations, and education content for the library model, where the library configuration file template may be automatically filled by populating selected data fields in the template with information identifying the library model, scraping documentation pages to extract test cases, and then scraping test case code to extract the test case input parameters for input to an input/output matching engine to evaluate a repository of code snippets and identify a set of functionally similar code snippets for inclusion one or more data fields in the template.
Automating identification of test cases for library suggestion models
A library model addition engine adds library models to a library knowledge base by defining a template for a library configuration file that conveys information about each library model, custom inputs and code snippets to facilitate library comparison operations, and education content for the library model, where the library configuration file template may be automatically filled by populating selected data fields in the template with information identifying the library model, scraping documentation pages to extract test cases, and then scraping test case code to extract the test case input parameters for input to an input/output matching engine to evaluate a repository of code snippets and identify a set of functionally similar code snippets for inclusion one or more data fields in the template.
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.