Questão de Engenharia de Software — Geral — INSTITUTO AOCP 2024
- Código
- qa631656
- Banca
- INSTITUTO AOCP
- Órgão
- Pref Uberaba
- Ano
- 2024
- Cargo
- Téc SP ( )
- AF – V – F – F.
- BV – V – F – F.
- CV – V – V – F.
- DV – V – V – V.
GabaritoA — F – V – F – F.
Gabarito: letra A — sequência F – V – F – F. A engenharia de software é uma disciplina de engenharia que se preocupa com todos os aspectos da produção de software, desde a especificação até a manutenção, incluindo qualidade, produtividade e gerenciamento de projetos (SOMMERVILLE; IEEE). As afirmativas I, III e IV são falsas porque reduzem ou negam essa abrangência; apenas a II está correta.
A engenharia de software nasceu na década de 1960, oficialmente em 1968 na NATO Science Committee, como resposta à chamada "crise do software": sistemas cada vez mais complexos exigiam uma abordagem sistemática, controlada e com qualidade mensurável, em vez da prática artesanal de programação. O termo foi cunhado por Margaret Hamilton, e Friedrich Bauer a definiu como a criação e utilização de sólidos princípios de engenharia para obter software de maneira econômica, confiável e eficiente em máquinas reais.
A definição mais cobrada em concursos é a de Sommerville: a engenharia de software é uma disciplina de engenharia que se preocupa com todos os aspectos da produção de software, desde os estágios iniciais da especificação do sistema até a manutenção do sistema após sua utilização. Isso significa que ela não se limita à programação — envolve também gerenciamento de projetos, desenvolvimento de ferramentas, métodos e teorias, além de atividades gerenciais e organizacionais. A IEEE a resume como a aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção de software.
A engenharia de software é baseada em camadas, conforme Pressman: o alicerce é o foco na qualidade; a base é a camada de processo (a "cola" que une as camadas de tecnologia); os métodos fornecem as instruções técnicas para a criação de software; e as ferramentas fornecem suporte automatizado ou semiautomatizado para o processo e os métodos. Essa estrutura mostra que a qualidade é um pilar central, e a produtividade do desenvolvedor é uma preocupação legítima da disciplina.
A pegadinha desta questão é justamente a visão reducionista: o candidato que associa engenharia de software apenas a "programar" ou que acha que manutenção e gerenciamento de projetos são assuntos de outra área erra as afirmativas. A banca explora o senso comum de que engenharia de software = codificação, quando na verdade ela abrange todo o ciclo de vida do software, incluindo atividades gerenciais e de manutenção.
Guarde a fronteira: engenharia de software não é só programação e inclui manutenção e gerenciamento de projetos. É exatamente nesses três pontos que as afirmativas I, III e IV caem.
A afirmativa diz que a engenharia de software envolve apenas a programação de computadores. Isso é falso: a engenharia de software trata de todos os aspectos da produção de software, desde a especificação até a manutenção, incluindo gerenciamento de projetos, desenvolvimento de ferramentas, métodos e teorias. A programação é apenas uma das atividades, não a única. O erro está no termo "apenas", que reduz indevidamente o escopo da disciplina.
A afirmativa está correta: a engenharia de software preocupa-se com a qualidade do software e a produtividade do desenvolvedor. A qualidade é o alicerce da engenharia de software (camada base de Pressman), e a produtividade é uma preocupação constante, pois a disciplina busca obter software de maneira econômica e eficiente, como destaca Fritz Bauer. A IEEE também reforça a abordagem sistemática e disciplinada, que visa entregar software de qualidade.
A afirmativa diz que a engenharia de software não se preocupa com a manutenção do software após a entrega. Isso é falso: a definição de Sommerville é explícita ao afirmar que a engenharia de software se preocupa com todos os aspectos da produção de software, "desde os estágios iniciais da especificação do sistema até a manutenção do sistema após sua utilização". A manutenção é uma fase essencial do ciclo de vida do software, e a engenharia de software a inclui como parte de sua abrangência.
A afirmativa diz que a engenharia de software não tem nada a ver com o gerenciamento de projetos. Isso é falso: a engenharia de software inclui atividades como gerenciamento de projetos de software, conforme destacado por Sommerville. O gerenciamento de projetos é parte integrante da disciplina, pois envolve planejamento, organização, controle de recursos e cronograma, essenciais para entregar software de qualidade no prazo e dentro do orçamento.
A banca explora a visão reducionista de que engenharia de software é só programação. O candidato que pensa assim erra as afirmativas I, III e IV. Lembre-se: a engenharia de software abrange todo o ciclo de vida, incluindo manutenção e gerenciamento de projetos. Com treino, você enxerga essas reduções de longe 💪
Para questões sobre o conceito de engenharia de software, decore a definição de Sommerville (todos os aspectos da produção, da especificação à manutenção) e a da IEEE (abordagem sistemática, disciplinada e quantificável). Essas duas definições são as mais cobradas e resolvem a maioria das questões sobre o tema.
Gabarito: letra A — sequência F – V – F – F.
Link permanente: /questoes/qa631656