Patent classifications
G06F8/72
CONSTRAINTS-BASED REFACTORING OF MONOLITH APPLICATIONS THROUGH ATTRIBUTED GRAPH EMBEDDINGS
Methods, systems, and computer program products for constraints-based refactoring of monolith applications through attributed graph embeddings are provided herein. A computer-implemented method includes performing an analysis of source code of a monolith application to identify structural features and behavioral features; generating a graph structure representing the monolith application based on the identified structural features and the identified behavioral features, wherein the graph structure comprises: a plurality of nodes, each node corresponding to one of a plurality of software modules of the monolith application, and a plurality of edges between the plurality nodes, each edge representing a relationship of the corresponding nodes; automatically identifying constraints associated with the plurality of nodes in the graph structure based on the analysis of the source code; clustering the nodes using a convolutional neural network based the constraints; and outputting candidate microservices corresponding to respective ones of the clusters for refactoring the monolith application.
CONSTRAINTS-BASED REFACTORING OF MONOLITH APPLICATIONS THROUGH ATTRIBUTED GRAPH EMBEDDINGS
Methods, systems, and computer program products for constraints-based refactoring of monolith applications through attributed graph embeddings are provided herein. A computer-implemented method includes performing an analysis of source code of a monolith application to identify structural features and behavioral features; generating a graph structure representing the monolith application based on the identified structural features and the identified behavioral features, wherein the graph structure comprises: a plurality of nodes, each node corresponding to one of a plurality of software modules of the monolith application, and a plurality of edges between the plurality nodes, each edge representing a relationship of the corresponding nodes; automatically identifying constraints associated with the plurality of nodes in the graph structure based on the analysis of the source code; clustering the nodes using a convolutional neural network based the constraints; and outputting candidate microservices corresponding to respective ones of the clusters for refactoring the monolith application.
AUTOMATIC DENOISING OF MACHINE LEARNING PROJECTS
According to an aspect of an embodiment, operations may include receiving an ML project including a data-frame and an ML pipeline including a plurality of code statements associated with a plurality of features corresponding to the ML project. The operations may further include determining one or more atomic steps corresponding to the ML pipeline to determine an atomized ML pipeline. The operations may further include instrumenting the atomized ML pipeline to determine an instrumented ML pipeline including one or more operations corresponding to the ML project. The operations may further include executing the instrumented ML pipeline to capture one or more data-frame snapshots based on each of the one or more operations. The operations may further include constructing a feature provenance graph (FPG). The operations may further include identifying one or more discarded features, from the plurality of features corresponding to the ML project, based on the constructed FPG.
METHOD AND SYSTEM FOR IDENTIFYING AND REMOVING DEAD CODES FROM A COMPUTER PROGRAM
A system and method for identifying and removing dead-code from a computer program of an independent service is provided. The method includes: retrieving information related to the code of the service, wherein the retrieved information includes at least static and dynamic dependencies information of classes of the service; constructing a static dependencies graph, wherein nodes of the static dependencies graph are classes, and directed edges depict static dependencies between classes; classifying classes based on the static dependencies; constructing a first subgraph to include classes classified as internal-pure-static (IPS) classes; detecting external-dead-class candidates by traversing the subgraph; adding external-dead-class candidates to a dead code cut (DCC) set; and removing at least one class included in the DCC set from the code of the service.
METHOD AND SYSTEM FOR IDENTIFYING AND REMOVING DEAD CODES FROM A COMPUTER PROGRAM
A system and method for identifying and removing dead-code from a computer program of an independent service is provided. The method includes: retrieving information related to the code of the service, wherein the retrieved information includes at least static and dynamic dependencies information of classes of the service; constructing a static dependencies graph, wherein nodes of the static dependencies graph are classes, and directed edges depict static dependencies between classes; classifying classes based on the static dependencies; constructing a first subgraph to include classes classified as internal-pure-static (IPS) classes; detecting external-dead-class candidates by traversing the subgraph; adding external-dead-class candidates to a dead code cut (DCC) set; and removing at least one class included in the DCC set from the code of the service.
Systems and methods for legacy source code optimization and modernization
Disclosed herein are embodiments of systems, methods, and products for modernizing and optimizing legacy software. A computing device may perform an automated runtime performance profiling process. The performance profiler may automatically profile the legacy software at runtime, monitor the memory usage and module activities of the legacy software, and pinpoint/identify a subset of inefficient functions in the legacy software that scale poorly or otherwise inefficient. The computing device may further perform a source code analysis and refactoring process. The computing device may parse the source code of the subset of inefficient functions and identify code violations within the source code. The computing device may provide one or more refactoring options to optimize the source code. Each refactoring option may comprise a change to the source code configured to correct the code violations. The computing device may refactor the source code based on a selected refactoring option.
Systems and methods for legacy source code optimization and modernization
Disclosed herein are embodiments of systems, methods, and products for modernizing and optimizing legacy software. A computing device may perform an automated runtime performance profiling process. The performance profiler may automatically profile the legacy software at runtime, monitor the memory usage and module activities of the legacy software, and pinpoint/identify a subset of inefficient functions in the legacy software that scale poorly or otherwise inefficient. The computing device may further perform a source code analysis and refactoring process. The computing device may parse the source code of the subset of inefficient functions and identify code violations within the source code. The computing device may provide one or more refactoring options to optimize the source code. Each refactoring option may comprise a change to the source code configured to correct the code violations. The computing device may refactor the source code based on a selected refactoring option.
Detecting duplicated code patterns in visual programming language code instances
In various embodiments, a process for detecting duplicated code patterns in visual programming language code instances includes analyzing a repository of graph based visual programming language code instances and detecting a similar code portion pattern duplicated among a group of graph based visual programming language code instances included in the repository of graph based visual programming language code instances including by using an index and tokenizing a flow corresponding to at least one graph based visual programming language code instance in the group of graph based visual programming language code instance. The process includes visually indicating elements belonging to the detected similar code portion pattern within a visual representation of at least one of the group of graph based visual programming language code instances.
Detecting duplicated code patterns in visual programming language code instances
In various embodiments, a process for detecting duplicated code patterns in visual programming language code instances includes analyzing a repository of graph based visual programming language code instances and detecting a similar code portion pattern duplicated among a group of graph based visual programming language code instances included in the repository of graph based visual programming language code instances including by using an index and tokenizing a flow corresponding to at least one graph based visual programming language code instance in the group of graph based visual programming language code instance. The process includes visually indicating elements belonging to the detected similar code portion pattern within a visual representation of at least one of the group of graph based visual programming language code instances.
Management of sensitive data using static code analysis
Techniques for management of sensitive data using static code analysis are described. A method of management of sensitive data using static code analysis includes obtaining a representation at least a portion of code, statically analyzing at least the portion of code to generate one or more candidate vectors based at least on one or more patterns, sending the one or more candidate vectors to a sensitive data model, and receiving an inference response indicating, for each of the one or more candidate vectors, whether at least a portion of the candidate vector includes sensitive data and a corresponding confidence score.