Skip to main navigation Skip to search Skip to main content

Detecting Semantic Clones in Microservices Using Components

  • Amr S. Abdelfattah
  • , Alejandro Rodriguez
  • , Andrew Walker
  • , Tomas Cerny

Research output: Contribution to journal › Article › peer-review

Abstract

The growing popularity of enterprise technologies for decentralized systems leads to commonalities in using components. This direction, however, opens new challenges to code clone detection. Approaches can no longer look at the low-level code but must deal with the higher-level component semantics. Yet, not many works addressed this trend. One of the quality issues that can be identified in large systems is duplicated behavior with different syntactic structures. It is crucial to detect these issues for enterprises where software’s codebase(s) grows and evolves, and maintenance costs rise significantly. This issue is referred to as a semantic clone. The detection of semantic clones requires semantic information about the given program. Unfortunately, while many code clone detection techniques are proposed, there is a lack of solutions targeted explicitly toward enterprise systems and even fewer solutions dedicated to semantic clones. To reason about semantic clones, we consider different pairs of component call-graphs in the system. Since different component types are common in enterprise systems, we can ensure that only relevant fragments are matched, using targeted enterprise metadata. When applied to an established system benchmark, our method indicates high accuracy in detecting semantic clones. We also assessed different system versions to elaborate on the method’s applicability to decentralized system evolution.

Original languageEnglish (US)
Article number470
JournalSN Computer Science
Volume4
Issue number5
DOIs
StatePublished - Sep 2023
Externally publishedYes

Keywords

  • Cloud Systems
  • Code Clone
  • Code Quality
  • Enterprise Technology
  • Microservices
  • Semantic Clone
  • Static Analysis
  • System Evolution

ASJC Scopus subject areas

  • General Computer Science
  • Computer Science Applications
  • Computer Networks and Communications
  • Computer Graphics and Computer-Aided Design
  • Computational Theory and Mathematics
  • Artificial Intelligence

Fingerprint

Dive into the research topics of 'Detecting Semantic Clones in Microservices Using Components'. Together they form a unique fingerprint.

Cite this