INVERSION OF DEPENDENCY PRINCIPLE IN THE SOFTWARE QUALITY

Application of the dependency Injection in the software development field

Authors

DOI:

https://doi.org/10.31510/infa.v19i1.1362

Keywords:

Test, Unit, Dependency, Coupling, Inversion

Abstract

Modern society more and more demands software to solve its daily problems. Because of that, computational tools change frequently. For these changes to be able to happen, it's essential to automate tests that assert whether the behavior before the changes remains the same afterward. Hence, the present paper aims to present the importance of the unit tests when it comes to software development and how the inversion of control and dependency principle enables the development of test scenarios and their respective implementations. To achieve that, a bibliographical research was made. Also, empirical examples were drawn up by the author. After that, it is possible to observe that the absence of these principles turns the unit test writing into an unfeasible task - besides having a high coupling code. It's clear from this paper that the use of the Inversion of Control and Dependency Injection principles helps to guarantee a free-dependency development, with good readability, high quality, and cohesion for the time being and also the future of the computational tool under development. Thus making the unit tests a feasible assignment in the software development field.

Downloads

Download data is not yet available.

Metrics

Metrics Loading ...

References

ANICHE, M. Orientação a objetos e SOLID para ninjas: projetando classes flexíveis. São Paulo: Casa do Código, 2015.

BETTS, ET. AL. Dependency injection with unity. Washington: Microsoft, 2013.

DELAMARO, M; MALDONADO, J. C; JINO, M. Introdução ao Teste de Software. 2. ed - Rio de Janeiro: Elsevier, 2016.

FOWLER, M. Inversion of Control Containers and the Dependency Injection pattern. 2004 .Disponível em:< https://martinfowler.com/bliki/InversionOfControl.html>.acesso em: janeiro de 2022.HETZEL, William. Guia completo do teste de software. Rio de Janeiro: Campus, 1987.

GIL, A.C. Métodos e técnicas de pesquisa social. São Paulo: Atlas, 2007.

KRASNER, H. The Cost of Poor Software Quality in the US: A 2020 Report. Consortium for information & Software Quality (CISQ), Janeiro de 2021. Disponível em: <https://www.it-cisq.org/pdf/CPSQ-2020-report.pdf>. acesso em: fevereiro de 2022.

MARTIN, R. C. Arquitetura Limpa: O Guia do Artesão para Estrutura e Design de Software. 1. ed. Rio de Janeiro: Alta Books Editora, 2019.

MYERS, G. J. Composite/Structured Design. 1. ed. New York: Van Nostrand Reinhold, 1978.

NASCIMENTO, F. Mocks e Stubs em testes: o que são e quais as diferenças. Disponível em:<https://www.alura.com.br/artigos/testes-com-mocksstubs?gclid=CjwKCAiAgvKQBhBbEiwAaPQw3HGjoGhsqNvYKiXEEfw0d7W1FlH L3nor-Htne-IXWGl14pW0lbuRNhoCdgIQAvD_BwE>. acesso em: fevereiro de 2022.

PFLEEGER, S. L. Engenharia de software: teoria e prática. 2. ed. São Paulo: Prentice Hall, 2004.

PRASANNA, D. R. Dependency injection: design patterns using spring and guice. Nova York: Manning Publications, 2009.

RAZINA, E; JANZEM, D. S. Effects of Dependency Injection on Maintainability. 11º Internacional Conference: Software Engineering and Applications. Cambridge, MA, USA. Novembro, 2007.

SEEMANN, M; DEURSEN, V. S. Dependency Injection: principles, practices and patterns. Shelter Island, Nova York: Manning Publications Co, 2019.

SESHADRI, S. GREEN, B. Desenvolvendo com angularJs. São Paulo: Novatec, 2014.

SOMMERVILLE, I. Engenharia de software. 9 ed. São Paulo: Pearson Prentice Hall, 2011.

TASSEY, D. The Economic Impacts of Inadequate Infrastructure for Software Testing. National Institute of Standards & Technology (NIST), Maio de 2002. Disponível em: <https://www.nist.gov/system/files/documents/director/planning/report02-3.pdf>. acesso em: fevereiro de 2022.

THOMAS, J. YOUNG, M. BROWN, K. GLOVER, A Java Testing Patterns. Indianápolis: John Wiley, 2004.

VALENTE, M. T. Engenharia de Software Moderna. 1 ed. Minas Gerais: independente,2020.

VERGARA, S. C. Projetos e relatórios de pesquisa em administração. 3.ed. Rio de Janeiro: Atlas, 2000.

WALLS, Craig; BREIDENBACH, Ryan. Spring em Ação. 2. ed. Rio de Janeiro: Alta Books, 2008.

WINTERS; MANSHRECK, T; HYRUM, W. Software Engineering at Google - lessons learned from programming overtime. 1. ed - California: O'Reilly Media, 2020.

Published

2022-06-30

How to Cite

GONÇALVES, B. P.; LAZARO MENDES, O. . INVERSION OF DEPENDENCY PRINCIPLE IN THE SOFTWARE QUALITY: Application of the dependency Injection in the software development field. Revista Interface Tecnológica, [S. l.], v. 19, n. 1, p. 34–46, 2022. DOI: 10.31510/infa.v19i1.1362. Disponível em: https://revista.fatectq.edu.br/interfacetecnologica/article/view/1362. Acesso em: 15 jan. 2025.

Issue

Section

Tecnologia em Informática

Metrics

Views
  • Abstract 249
  • PDF (Português (Brasil)) 215
Métricas