Litcius/Paper detail

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

Andrew Walker, Dipta Das, Tomas Cerny

2020Applied Sciences58 citationsDOIOpen Access PDF

Abstract

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.

Topics & Concepts

MicroservicesComputer scienceCode smellBytecodeStatic program analysisSource codeSoftware engineeringSoftware deploymentStatic analysisCode (set theory)Cloud computingOperating systemProgramming languageSoftwareSoftware developmentSoftware qualityJavaSet (abstract data type)Software Engineering ResearchSoftware System Performance and ReliabilitySoftware Testing and Debugging Techniques