Automated Code-Smell Detection in Microservices Through Static Analysis: A Case Study

Microservice Architecture (MSA) is becoming the predominant direction of new cloud-based applications. There are many advantages to using microservices, but also downsides to using a more complex architecture than a typical monolithic enterprise application. Beyond the normal poor coding practices a...

Full description

Bibliographic Details
Main Authors: Andrew Walker, Dipta Das, Tomas Cerny
Format: Article
Language:English
Published: MDPI AG 2020-11-01
Series:Applied Sciences
Subjects:
Online Access:https://www.mdpi.com/2076-3417/10/21/7800
id doaj-648ae8e8f60743cd81ee238fdb12ebf4
record_format Article
spelling doaj-648ae8e8f60743cd81ee238fdb12ebf42020-11-25T03:59:24ZengMDPI AGApplied Sciences2076-34172020-11-01107800780010.3390/app10217800Automated Code-Smell Detection in Microservices Through Static Analysis: A Case StudyAndrew Walker0Dipta Das1Tomas Cerny2Computer Science, Baylor University, One Bear Place #97141, Waco, TX 76798, USAComputer Science, Baylor University, One Bear Place #97141, Waco, TX 76798, USAComputer Science, Baylor University, One Bear Place #97141, Waco, TX 76798, USAMicroservice Architecture (MSA) is becoming the predominant direction of new cloud-based applications. There are many advantages to using microservices, but also downsides to using a more complex architecture than a typical monolithic enterprise application. Beyond the normal poor coding practices and code smells of a typical application, microservice-specific code smells are difficult to discover within a distributed application setup. There are many static code analysis tools for monolithic applications, but tools to offer code-smell detection for microservice-based applications are lacking. This paper proposes a new approach to detect code smells in distributed applications based on microservices. We develop an MSANose tool to detect up to eleven different microservice specific code smells and share it as open-source. We demonstrate our tool through a case study on two robust benchmark microservice applications and verify its accuracy. Our results show that it is possible to detect code smells within microservice applications using bytecode and/or source code analysis throughout the development process or even before its deployment to production.https://www.mdpi.com/2076-3417/10/21/7800microservicecloud-computingcode smellscode-analysisquality assurance
collection DOAJ
language English
format Article
sources DOAJ
author Andrew Walker
Dipta Das
Tomas Cerny
spellingShingle Andrew Walker
Dipta Das
Tomas Cerny
Automated Code-Smell Detection in Microservices Through Static Analysis: A Case Study
Applied Sciences
microservice
cloud-computing
code smells
code-analysis
quality assurance
author_facet Andrew Walker
Dipta Das
Tomas Cerny
author_sort Andrew Walker
title Automated Code-Smell Detection in Microservices Through Static Analysis: A Case Study
title_short Automated Code-Smell Detection in Microservices Through Static Analysis: A Case Study
title_full Automated Code-Smell Detection in Microservices Through Static Analysis: A Case Study
title_fullStr Automated Code-Smell Detection in Microservices Through Static Analysis: A Case Study
title_full_unstemmed Automated Code-Smell Detection in Microservices Through Static Analysis: A Case Study
title_sort automated code-smell detection in microservices through static analysis: a case study
publisher MDPI AG
series Applied Sciences
issn 2076-3417
publishDate 2020-11-01
description Microservice Architecture (MSA) is becoming the predominant direction of new cloud-based applications. There are many advantages to using microservices, but also downsides to using a more complex architecture than a typical monolithic enterprise application. Beyond the normal poor coding practices and code smells of a typical application, microservice-specific code smells are difficult to discover within a distributed application setup. There are many static code analysis tools for monolithic applications, but tools to offer code-smell detection for microservice-based applications are lacking. This paper proposes a new approach to detect code smells in distributed applications based on microservices. We develop an MSANose tool to detect up to eleven different microservice specific code smells and share it as open-source. We demonstrate our tool through a case study on two robust benchmark microservice applications and verify its accuracy. Our results show that it is possible to detect code smells within microservice applications using bytecode and/or source code analysis throughout the development process or even before its deployment to production.
topic microservice
cloud-computing
code smells
code-analysis
quality assurance
url https://www.mdpi.com/2076-3417/10/21/7800
work_keys_str_mv AT andrewwalker automatedcodesmelldetectioninmicroservicesthroughstaticanalysisacasestudy
AT diptadas automatedcodesmelldetectioninmicroservicesthroughstaticanalysisacasestudy
AT tomascerny automatedcodesmelldetectioninmicroservicesthroughstaticanalysisacasestudy
_version_ 1724454280846376960