No desenvolvimento de software moderno, a aplicação de princ...

Próximas questões
Com base no mesmo assunto
Q3832910 Arquitetura de Software
No desenvolvimento de software moderno, a aplicação de princípios de design e metodologias ágeis visa aumentar a qualidade e a manutenibilidade do código. Considerando os princípios SOLID e a prática de testes, assinale a alternativa CORRETA sobre a arquitetura de software. 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: D

Fundamento decisivo: A decisão dependia de comparar as alternativas com definições básicas de SOLID, Scrum e testes: a correta é a única que não inverte esses conceitos.

Tema central: Princípios SOLID e testes
Análise das alternativas
A
Errada
Está errada porque atribui ao Scrum uma posição que a base afasta expressamente: Scrum não desencoraja testes unitários automatizados. Além disso, a afirmação de que prioriza apenas funcionalidades visuais ao fim de cada sprint não corresponde ao escopo real do framework nem à lógica de qualidade incremental compatível com práticas ágeis.
B
Errada
Está errada por contrariar a definição clássica do SRP. O princípio não diz que uma classe deve ter múltiplos motivos para mudar; o ponto decisivo é exatamente o oposto: um único motivo para mudar.
C
Errada
Está errada porque inverte o DIP. A formulação correta não admite que módulos de alto nível dependam diretamente de módulos de baixo nível; o critério do princípio é que ambos dependam de abstrações, e não que a implementação concreta dite a arquitetura.
D
Certa
A alternativa D está correta porque enuncia adequadamente o Princípio da Substituição de Liskov: subtipos devem poder substituir seus tipos base sem comprometer a corretude do sistema nem violar o comportamento esperado da abstração. Esse é o critério técnico do LSP, e o item reproduz essa ideia central sem inverter ou desfigurar o princípio.
E
Errada
Está errada porque descreve teste unitário, não teste de integração. Teste de integração serve para verificar comunicação e interoperabilidade entre componentes, módulos, camadas ou dependências externas, enquanto validar a lógica interna de uma função ou método isolado é escopo típico de teste unitário.
Pegadinha da questão
Inversão de definições em SRP e DIP e troca do escopo de teste unitário por teste de integração.
Dica para questões semelhantes
  • Em itens sobre SOLID, confronte a redação com a formulação nuclear do princípio.
  • Se o foco for método isolado, pense em teste unitário; se for interação entre componentes, pense em teste de integração.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Gabarito: letra D 

O Princípio da Substituição de Liskov (LSP), proposto por Barbara Liskov, é um conceito essencial da programação orientada a objetos. Em termos simples, ele diz que uma classe filha deve poder substituir a classe pai sem causar erros ou comportamentos estranhos no sistema. Na prática, isso significa o seguinte: se um método foi escrito para trabalhar com uma classe Pai, ele deve funcionar perfeitamente quando receber um objeto da classe Filho. Não deve ser necessário adicionar verificações de tipo, exceções inesperadas ou ajustes “na marra”. Se isso acontece, é sinal de que o LSP está sendo violado.

A - Metodologias ágeis (como Scrum e XP) incentivam fortemente testes automatizados para garantir a agilidade e evitar regressões em cada sprint.

B - O Single Responsibility Principle afirma justamente o oposto: uma classe deve ter apenas um motivo para mudar (uma única responsabilidade).

C - O Dependency Inversion Principle diz que ambos devem depender de abstrações (interfaces), e não de implementações concretas.

E - Validar a lógica de uma única função isolada é o objetivo do Teste Unitário. O Teste de Integração foca na comunicação entre módulos.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo