Pular para o conteúdo principal

Questão de Engenharia de Software — Padrões de Projeto (Engenharia de Software) — Instituto Consulplan 2023

Engenharia de SoftwarePadrões de Projeto (Engenharia de Software)
Código
qa541308
Banca
Instituto Consulplan
Órgão
IF PA
Ano
2023
Cargo
Tec ( )

O uso de padrões de projetos tem vantagens relacionadas ao desenvolvimento de software, aumentando a produtividade e a qualidade e facilitando a lógica de programação e o tempo de desenvolvimento. Sobre as características dos padrões de projeto orientados a objetos, analise as afirmativas a seguir.

 

I. Projetar software reutilizável orientado a objetos é uma tarefa complexa.

 

II. Projetistas, quando encontram uma solução, reutilizam- -na várias vezes.

 

III. Bons projetistas sabem que devem resolver problemas de software a partir do zero. I

 

IV. Padrões de projeto conseguem resolver problemas específicos e complexos.

 

Está correto o que se afirma apenas em

  1. AII e III.
  2. B II e IV.
  3. C I, II e IV.
  4. DI, III e IV.
Revelar gabarito e comentário

GabaritoC — I, II e IV.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Padrões de Projeto (Design Patterns) e a Reutilização de Soluções

Gabarito: letra C — estão corretas as afirmativas I, II e IV. A afirmativa III está incorreta porque bons projetistas não resolvem problemas de software a partir do zero; eles reutilizam soluções comprovadas, exatamente o que os padrões de projeto proporcionam. A base conceitual está na definição clássica de padrões de projeto como soluções gerais para problemas recorrentes, conforme a literatura de Engenharia de Software (Gamma et al., 1995).

Os padrões de projeto (design patterns) são, em essência, soluções gerais e reutilizáveis para problemas que ocorrem com frequência em um determinado contexto de projeto de software. Eles não são código pronto, mas sim descrições ou modelos (templates) de como resolver um problema, que podem ser aplicados em muitas situações diferentes. Essa definição já carrega a ideia central: a reutilização. Em vez de reinventar a roda a cada novo projeto, o engenheiro de software busca em um repositório de padrões uma solução que já foi testada e comprovada por outros profissionais.

A afirmativa I está correta porque projetar software reutilizável orientado a objetos é, de fato, uma tarefa complexa. A reutilização exige abstração, generalização e um design cuidadoso para que os componentes possam ser adaptados a diferentes contextos sem acoplamento excessivo. Não é algo trivial; demanda experiência e conhecimento profundo de princípios de projeto.

A afirmativa II também está correta: projetistas, quando encontram uma solução, reutilizam-na várias vezes. Essa é a essência do uso de padrões. O próprio Christopher Alexander, arquiteto que inspirou os padrões de software, descreveu que um padrão deve permitir que a solução seja usada "um milhão de vezes sem jamais ter de fazer a mesma coisa duas vezes". Na prática, um projetista que resolve um problema de forma elegante tende a aplicar a mesma solução em situações análogas, seja conscientemente (aplicando um padrão conhecido) ou inconscientemente (repetindo uma abordagem que funcionou).

A afirmativa III é a incorreta. Ela afirma que bons projetistas devem resolver problemas de software a partir do zero. Isso contraria frontalmente o princípio da reutilização, que é um dos pilares dos padrões de projeto. A expressão "reinventar a roda" é exatamente o que se quer evitar. Bons projetistas não partem do zero; eles buscam soluções já existentes e comprovadas, adaptando-as ao problema específico. A banca explora aqui a inversão do conceito: o candidato que não domina o tema pode achar que "resolver do zero" é sinal de competência, quando na verdade é sinal de ineficiência.

A afirmativa IV está correta: padrões de projeto conseguem resolver problemas específicos e complexos. Cada padrão é documentado com um problema bem definido, a solução proposta e as consequências de sua aplicação. Eles são projetados para endereçar problemas recorrentes em contextos específicos, como a criação de objetos (padrões criacionais), a composição de classes (padrões estruturais) ou a comunicação entre objetos (padrões comportamentais).

A pegadinha desta questão está na afirmativa III, que inverte o princípio da reutilização. O candidato que sabe que padrões servem para reutilizar soluções percebe imediatamente que "resolver do zero" é o oposto do que se espera de um bom projetista. As demais afirmativas são coerentes com a teoria de padrões de projeto.

Afirmativa

Análise

Veredito

I. Projetar software reutilizável orientado a objetos é uma tarefa complexa.

Exige abstração, generalização e design cuidadoso para evitar acoplamento excessivo.

✅ Correta

II. Projetistas, quando encontram uma solução, reutilizam-na várias vezes.

É a essência dos padrões: aplicar soluções comprovadas em problemas recorrentes.

✅ Correta

III. Bons projetistas sabem que devem resolver problemas de software a partir do zero.

Contraria o princípio da reutilização; bons projetistas não reinventam a roda.

❌ Incorreta

IV. Padrões de projeto conseguem resolver problemas específicos e complexos.

Cada padrão documenta um problema, a solução e as consequências de sua aplicação.

✅ Correta

Padrões de projeto
  • 1Reutilizam soluções comprovadas
  • 2Resolvem problemas específicos e complexos
  • 3Aumentam produtividade e qualidade
  • 4Não reinventam a roda (não partem do zero)
LEVEL · soulevel.com.br

Item I — ✅ Correto

A afirmativa I está correta. Projetar software reutilizável orientado a objetos é uma tarefa complexa, pois exige abstração, generalização e um design cuidadoso para que os componentes possam ser adaptados a diferentes contextos sem acoplamento excessivo. A complexidade é inerente ao processo de criação de soluções que possam ser reutilizadas, e é justamente essa dificuldade que motiva a existência dos padrões de projeto.

Item II — ✅ Correto

A afirmativa II está correta. Projetistas, quando encontram uma solução, reutilizam-na várias vezes. Essa é a essência do uso de padrões: uma solução comprovada para um problema recorrente é aplicada repetidamente em diferentes projetos. A reutilização é um dos principais benefícios dos padrões de projeto, conforme descrito na literatura de Engenharia de Software.

Item III — ❌ Incorreto

A afirmativa III está incorreta. Bons projetistas não devem resolver problemas de software a partir do zero. Pelo contrário, eles devem buscar soluções já existentes e comprovadas, como os padrões de projeto, para evitar retrabalho e aumentar a produtividade. A expressão "reinventar a roda" é exatamente o que se quer evitar. A banca inverte o princípio da reutilização, fazendo parecer que "resolver do zero" é uma qualidade, quando na verdade é uma ineficiência.

Item IV — ✅ Correto

A afirmativa IV está correta. Padrões de projeto conseguem resolver problemas específicos e complexos. Cada padrão é documentado com um problema bem definido, a solução proposta e as consequências de sua aplicação. Eles são projetados para endereçar problemas recorrentes em contextos específicos, como a criação de objetos (padrões criacionais), a composição de classes (padrões estruturais) ou a comunicação entre objetos (padrões comportamentais).

Conclusão: Corretos: I, II e IV → portanto a alternativa é a letra C.

Gabarito: letra C

Link permanente: /questoes/qa541308