Multi-language Design Smells: A Backstage Perspective

Published:

Mouna Abidi, Md Saidur Rahman, Moses Openja and Foutse Khomh, "Multi-language Design Smells: A Backstage Perspective ", Empirical Software Engineering (EMSE), Volume 27, Issue 5, pages 52, 2022. Preprint Published


Abstract

Multi-language systems became prevalent with technological advances. Developers opt for the combination of programming languages to build a single application. Such combinations of programming languages allow the reuse of existing code and libraries without re-implementing the code from scratch. Software quality is achieved by following good software development practices and avoiding the bad ones. However, most of the practices in the literature apply to mono-language systems only and do not consider the interaction between programming languages. We previously defined a catalog of bad practices i.e., design smells related to multi-language systems. This paper aims to provide empirical evidence on the relevance of multi-language design smells and their perceived impacts on software quality. We analysed eight open source projects to detect occurrences of 15 types of multi-language design smells. We also extracted information about the developers that contributed to those systems. We performed an open and a closed survey targeting developers in general but also developers who contributed to those systems. We surveyed developers about the perceived prevalence of multi-language design smells their severity, and their impact on software quality attributes. We report that most of the studied design smells are perceived as design or implementation problems. Our results suggest that the studied design smells could be introduced mainly during refactoring and maintenance activities, and during regular development tasks. Our results also point that multi-language design smells are perceived as harmful and have negative impacts on software quality. The perceived prevalence of design smells and their impact varies from one specific smell type to the others. We believe that our findings are important for developers and researchers interested in improving the quality of multi-language systems as it can help them prioritize design smells during maintenance activities.