Graph Neural Network to Dilute Outliers for Refactoring Monolith Application

by   Utkarsh Desai, et al.

Microservices are becoming the defacto design choice for software architecture. It involves partitioning the software components into finer modules such that the development can happen independently. It also provides natural benefits when deployed on the cloud since resources can be allocated dynamically to necessary components based on demand. Therefore, enterprises as part of their journey to cloud, are increasingly looking to refactor their monolith application into one or more candidate microservices; wherein each service contains a group of software entities (e.g., classes) that are responsible for a common functionality. Graphs are a natural choice to represent a software system. Each software entity can be represented as nodes and its dependencies with other entities as links. Therefore, this problem of refactoring can be viewed as a graph based clustering task. In this work, we propose a novel method to adapt the recent advancements in graph neural networks in the context of code to better understand the software and apply them in the clustering task. In that process, we also identify the outliers in the graph which can be directly mapped to top refactor candidates in the software. Our solution is able to improve state-of-the-art performance compared to works from both software engineering and existing graph representation based techniques.


page 1

page 2

page 3

page 4


Monolith to Microservices: Representing Application Software through Heterogeneous GNN

Monolith software applications encapsulate all functional capabilities i...

Learning to Represent Programs with Code Hierarchies

Graph neural networks have been shown to produce impressive results for ...

funcGNN: A Graph Neural Network Approach to Program Similarity

Program similarity is a fundamental concept, central to the solution of ...

Using GGNN to recommend log statement level

In software engineering, log statement is an important part because prog...

Graph-Based Algorithm for a User-Aware SaaS Approach: Computing Optimal Distribution

As a tool to exploit economies of scale, Software as a Service cloud mod...

Code Vectorization and Sequence of Accesses Strategies for Monolith Microservices Identification

Migrating a monolith application into a microservices architecture can b...

A Software Framework and Datasets for the Analysis of Graph Measures on RDF Graphs

As the availability and the inter-connectivity of RDF datasets grow, so ...

Please sign up or login with your details

Forgot password? Click here to reset