Decomposition Analyzer for Software Modernization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modernizing legacy software applications to meet the demands of scalability, global availability, and performance is challenging due to the complexity of decomposing monolithic architectures into modular components, as users struggle to interpret and act on graph-based representations of software applications during the decomposition process.
Innovation Solution
A decomposition analyzer is provided that uses machine learning techniques and graph-based models to identify recommended groupings of application components for refactoring, displayed in a visualization, facilitating the transition from legacy to modernized architectures such as microservices or container-based systems, leveraging cloud provider networks for scalable resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If graph-based representations are used to represent software applications during decomposition, then the completeness of application structure information is improved, but the ease of interpretation and operation by users deteriorates
Solution Approach 1:
The patent introduces an intermediary system (decomposition analyzer with machine learning models) that translates complex graph-based software representations into simplified, actionable decomposition recommendations. This intermediary processes the complete graph data structure information and presents it in a user-friendly format, resolving the contradiction between information completeness and ease of interpretation
Solution Approach 2:
The system changes the parameter of information presentation from raw graph-based data structures to processed decomposition recommendations with confidence scores. This transformation maintains the completeness of underlying information while significantly improving usability by presenting results in terms that are directly actionable for developers
2Productivity
If machine learning techniques are used to identify decomposition groupings, then the productivity of the modernization process is improved, but the device complexity increases
Solution Approach 1:
The patent segments the complex machine learning system into distinct functional components: graph generation module, machine learning analysis module, and recommendation generation module. This segmentation manages complexity by organizing the ML techniques into discrete, manageable units while maintaining high productivity through automated analysis
Solution Approach 2:
The system implements self-service through automated machine learning analysis that independently identifies decomposition opportunities without requiring manual configuration or intervention. The ML models automatically process graph representations and generate recommendations, improving productivity while containing complexity through automation
Data Source
AI summary
Techniques are described for assisting users with the process of modernizing software applications from a source software architectural pattern (e.g., a model—view—controller (MVC) pattern, a multitier architecture, etc.) to a target architectural pattern (e.g., microservices, event-driven architecture, etc.). A decomposition analyzer receives as input artifacts associated with a software application under analysis and an architectural pattern that a user desires to use for a modernized version of the software application. The decomposition analyzer generates, based on the application artifacts, a graph-based model of the software application, where the model includes nodes representing application components (e.g., classes) and edges representing dependency relationships among the components. The decomposition analyzer further uses machine learning techniques and other types of analyses to identify recommended groupings of nodes from the graph-based model for decomposition. These recommendations can be displayed to users in a visualization providing decomposition assessment information.


