  The microservices architectural style is widely favored for its scalability,
reusability, and easy maintainability, prompting increased adoption by
developers. However, transitioning from a monolithic to a microservices-based
architecture is intricate and costly. In response, we present a novel method
utilizing clustering to identify potential microservices in a given monolithic
application. Our approach employs a density-based clustering algorithm
considering static analysis, structural, and semantic relationships between
classes, ensuring a functionally and contextually coherent partitioning. To
assess the reliability of our microservice suggestion approach, we conducted an
in-depth analysis of hyperparameter sensitivity and compared it with two
established clustering algorithms. A comprehensive comparative analysis
involved seven applications, evaluating against six baselines, utilizing a
dataset of four open-source Java projects. Metrics assessed the quality of
generated microservices. Furthermore, we meticulously compared our suggested
microservices with manually identified ones in three microservices-based
applications. This comparison provided a nuanced understanding of our
approach's efficacy and reliability. Our methodology demonstrated promising
outcomes, showcasing remarkable effectiveness and commendable stability.
