PRINCÍPIO DA INVERSÃO DE DEPENDÊNCIA NA QUALIDADE DE SOFTWARE
Aplicação da injeção de dependência no desenvolvimento de software
DOI:
https://doi.org/10.31510/infa.v19i1.1362Palavras-chave:
Teste, Unidade, Dependência, Acoplamento, InversãoResumo
A sociedade moderna cada vez mais demanda softwares para a resolução de atividades cotidianas. Por conta disso, as ferramentas computacionais mudam frequentemente. Para que tais mudanças ocorram, é imprescindível a escrita de testes automáticos que validem se o comportamento anterior à alteração continua sendo plausível após. Visto isso, o presente trabalho teve como objetivo apresentar a importância dos testes de unidade no desenvolvimento de software e como o princípio da inversão de controle e da injeção de dependência viabilizam a escrita dos cenários de testes e suas respectivas implementações. Para isso foi realizada uma pesquisa exploratória bibliográfica, bem como, exemplos empíricos através do desenvolvimento de códigos pelo autor. Com isso, pode-se observar que a ausência da aplicação do princípio de inversão de dependência e injeção de dependência torna inviável a realização do teste de unidade além de atingir um alto acoplamento no código. Concluiu-se, portanto, que com a utilização de tais princípios é possível garantir um desenvolvimento livre de dependências, com boa legibilidade, alta qualidade, e coesão em seu processamento atual e futuro, tornando o teste de unidade uma prática factível no que tange o desenvolvimento de software.
Downloads
Métricas
Referências
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.
Downloads
Publicado
Como Citar
Edição
Seção
Licença
Copyright (c) 2022 Revista Interface Tecnológica
Este trabalho está licenciado sob uma licença Creative Commons Attribution 4.0 International License.
Os direitos autorais dos artigos publicados pertencem à revista Interface Tecnológica e seguem o padrão Creative Commons (CC BY 4.0), que permite o remixe, adaptação e criação de obras derivadas do original, mesmo para fins comerciais. As novas obras devem conter menção ao(s) autor(es) nos créditos.
- Resumo 222
- PDF 194