functional-analysis-code-gray.png

Functional Analysis of Code

Overview

Enterprises often face difficulties upgrading old systems due to a lack of skills, inadequate documentation, and accumulated technical debts. This project creates technology to extract and represent the application implementation structure in a knowledge graph, facilitating AI-based tools and applications for various tasks.

Incremental Code Analysis

Developing scalable source code analysis algorithms for program flow and slicing, as well as an interactive user interface that provides a design studio-like experience. The system highlights the dependencies from the newly identified boundaries (slices) to/from the other logical groups of the system, enabling interactive identification of application entities and groupings of interest for modernization. This process is repeated interactively to achieve two goals: identifying the application entities and groupings of interest for the modernization task and understanding how a change in one part of the system may affect the others.

Microservices Recommendations

As Enterprises increasingly seek to adopt microservices architecture as part of their journey to the cloud, they face the challenge of identifying functional boundaries in their existing codebase. This task is tedious and time-consuming.

This effort leverages the power of AI to automate the process of identifying functional boundaries and recommending microservices. By representing the application entities and their relationships in a knowledge graph, we can apply clustering algorithms to identify natural groupings of related functions. This enables us to recommend microservices that align with business functions, making the refactoring process more efficient and effective.