Cataloging Dependency Injection Anti-patterns in Software Systems
Abstract
Dependency Injection (DI) is a prevalent technique employed in software systems. By delegating the dependency provision to an independent agent (i.e., a DI framework), developers often benefit from high-modular components. However, the misuse of the DI technique leads to higher maintenance efforts. As the literature presents no comprehensive characterization of bad DI implementation practices, we put forth an investigation that led to the proposition and evaluation of a novel catalog of DI anti-patterns and refactorings. The proposed anti-patterns appear frequently in both open-source and industry projects. Furthermore, practitioners confirm the relevance and usefulness of the catalog.References
Fowler, M. (2004). Inversion of control containers and the dependency injection pattern.
Laigner, R., Kalinowski, M., Carvalho, L., Mendonça, D. S., and Garcia, A. (2019). Towards a catalog of java dependency injection anti-patterns. In Proceedings of the XXXIII Brazilian Symposium on Software Engineering, SBES 2019, Salvador, Brazil, September 23-27, pages 104–113.
Laigner, R., Mendonça, D., Garcia, A., and Kalinowski, M. (2021). Cataloging dependency injection anti-patterns in software systems. Under revision at the Journal of Systems and Software (JSS) e-print available at https://arxiv.org/abs/2109.04256.
Laigner, R., Kalinowski, M., Carvalho, L., Mendonça, D. S., and Garcia, A. (2019). Towards a catalog of java dependency injection anti-patterns. In Proceedings of the XXXIII Brazilian Symposium on Software Engineering, SBES 2019, Salvador, Brazil, September 23-27, pages 104–113.
Laigner, R., Mendonça, D., Garcia, A., and Kalinowski, M. (2021). Cataloging dependency injection anti-patterns in software systems. Under revision at the Journal of Systems and Software (JSS) e-print available at https://arxiv.org/abs/2109.04256.
Published
2021-09-27
How to Cite
LAIGNER, Rodrigo; KALINOWSKI, Marcos.
Cataloging Dependency Injection Anti-patterns in Software Systems. In: SOFTWARE ENGINEERING DOCTORAL AND MASTER THESIS COMPETITION (CTD-ES) - BRAZILIAN CONFERENCE ON SOFTWARE: THEORY AND PRACTICE (CBSOFT), 12. , 2021, Joinville.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2021
.
p. 95-96.
DOI: https://doi.org/10.5753/cbsoft_estendido.2021.17293.
