PRINCÍPIO DA INVERSÃO DE DEPENDÊNCIA NA QUALIDADE DE SOFTWARE

Aplicação da injeção de dependência no desenvolvimento de software

Autores

DOI:

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

Palavras-chave:

Teste, Unidade, Dependência, Acoplamento, Inversão

Resumo

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

Não há dados estatísticos.

Métricas

Carregando 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

30/06/2022

Como Citar

GONÇALVES, B. P.; LAZARO MENDES, O. . PRINCÍPIO DA INVERSÃO DE DEPENDÊNCIA NA QUALIDADE DE SOFTWARE: Aplicação da injeção de dependência no desenvolvimento de software. 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: 3 fev. 2023.

Edição

Seção

Tecnologia em Informática

Métricas