Questão de Engenharia de Software — Geral — INSTITUTO AOCP 2024
- Código
- qa631603
- Banca
- INSTITUTO AOCP
- Órgão
- MGI
- Ano
- 2024
- Cargo
- Esp ( )
- AManutenção corretiva.
- BManutenção adaptativa.
- CManutenção preventiva.
- DManutenção paliativa.
- EManutenção perfeita.
GabaritoC — Manutenção preventiva.
Gabarito: letra C. A manutenção preventiva é o tipo de manutenção que envolve modificações para melhorar o desempenho ou a manutenibilidade do sistema, sem adicionar funcionalidades novas. Essa é a definição clássica apresentada por autores como Pressman e Sommerville, que distinguem a manutenção preventiva das demais (corretiva, adaptativa e perfectiva) pelo seu foco em prevenir problemas futuros e melhorar a qualidade interna do software.
A manutenção de software é uma fase crítica do ciclo de vida, responsável por grande parte dos custos totais de um sistema. Ela não se limita a corrigir erros; envolve um conjunto de atividades que visam manter o software útil e adaptado às necessidades ao longo do tempo. A norma ISO/IEC 14764 (Manutenção de Software) e a literatura clássica de engenharia de software classificam a manutenção em quatro tipos principais, cada um com um objetivo específico. Compreender a finalidade de cada tipo é essencial para responder questões de concurso, que frequentemente exploram as diferenças sutis entre eles.
A manutenção corretiva é a mais conhecida: seu objetivo é corrigir defeitos e erros no software, ou seja, fazer com que o sistema se comporte conforme o especificado. Já a manutenção adaptativa visa modificar o software para se adaptar a mudanças no ambiente externo, como novas versões de sistemas operacionais, hardware ou legislação. A manutenção perfectiva (ou evolutiva) tem como foco adicionar novas funcionalidades ou melhorar o desempenho, mas, ao contrário da preventiva, ela geralmente envolve a adição de novas capacidades ao sistema. A manutenção preventiva, por sua vez, é proativa: busca antecipar problemas, melhorando a estrutura interna do software (manutenibilidade) e o desempenho, sem alterar sua funcionalidade externa. É importante notar que a manutenção perfectiva também pode melhorar o desempenho, mas a distinção crucial é que a perfectiva adiciona novas funcionalidades, enquanto a preventiva não.
Para fixar o conceito, considere um exemplo: um sistema de gestão de estoque que está funcionando corretamente, mas cujo código-fonte é complexo e difícil de modificar. Uma equipe decide refatorar o código para torná-lo mais legível e modular, sem adicionar nenhuma função nova. Isso é manutenção preventiva. Se, por outro lado, a equipe adiciona um novo relatório de vendas ao sistema, isso é manutenção perfectiva. Se o sistema apresenta um erro ao calcular impostos, a correção é manutenção corretiva. E se o sistema precisa ser atualizado para funcionar com um novo banco de dados, isso é manutenção adaptativa.
A pegadinha desta questão está na alternativa E, "Manutenção perfeita", que é um termo inexistente na literatura. A banca tenta confundir o candidato com um nome parecido com "perfectiva". Além disso, a alternativa C, "Manutenção preventiva", é a correta, mas muitos candidatos podem confundir com a perfectiva, que também melhora o desempenho, mas adiciona funcionalidades. A chave é lembrar que a preventiva é a única que melhora o desempenho/manutenibilidade sem adicionar funcionalidades novas.
A manutenção corretiva tem como objetivo corrigir defeitos e erros no software, ou seja, fazer com que o sistema se comporte conforme o especificado. Ela é reativa, ocorre após a detecção de um problema, e não envolve melhorias de desempenho ou manutenibilidade. O enunciado pede exatamente o oposto: modificações para melhorar o desempenho/manutenibilidade, sem adicionar funcionalidades.
A manutenção adaptativa visa modificar o software para se adaptar a mudanças no ambiente externo, como novas versões de sistemas operacionais, hardware, legislação ou políticas da empresa. Ela não tem como foco melhorar o desempenho ou a manutenibilidade, mas sim garantir que o software continue funcionando em um novo contexto. O enunciado não menciona adaptação a mudanças externas, mas sim melhoria interna.
A manutenção preventiva é exatamente o que o enunciado descreve: modificações para melhorar o desempenho ou a manutenibilidade do sistema, sem adicionar funcionalidades novas. Ela é uma atividade proativa, que busca antecipar problemas e facilitar futuras manutenções, melhorando a qualidade interna do software. Exemplos incluem refatoração de código, otimização de consultas a banco de dados e melhoria da documentação.
A manutenção paliativa não é um tipo de manutenção reconhecido na engenharia de software. O termo "paliativo" é usado em outras áreas (como medicina) para indicar uma medida que alivia sintomas sem tratar a causa. Na engenharia de software, não existe essa classificação. A banca incluiu essa alternativa apenas como um distrator, para testar se o candidato conhece os quatro tipos clássicos de manutenção.
A alternativa "Manutenção perfeita" é um termo inexistente na literatura de engenharia de software. A banca tenta confundir o candidato com um nome parecido com "perfectiva". A manutenção perfectiva (ou evolutiva) é um tipo real, mas seu objetivo é adicionar novas funcionalidades ou melhorar o desempenho, o que difere da preventiva, que não adiciona funcionalidades. O enunciado pede explicitamente "sem adicionar funcionalidades novas", o que exclui a perfectiva e aponta para a preventiva.
A banca explora a confusão entre manutenção preventiva e perfectiva. Ambas podem melhorar o desempenho, mas a perfectiva adiciona novas funcionalidades, enquanto a preventiva não. Além disso, as alternativas D e E são termos inventados ("paliativa" e "perfeita") para testar se o candidato conhece a nomenclatura correta. Lembre-se: a preventiva é a única que melhora o desempenho/manutenibilidade sem adicionar funcionalidades.
Para questões sobre manutenção de software, monte uma tabela mental com os quatro tipos e suas finalidades:
Tipo | Objetivo | Exemplo |
|---|---|---|
Corretiva | Corrigir defeitos | Corrigir erro de cálculo |
Adaptativa | Adaptar a mudanças externas | Atualizar para novo SO |
Perfectiva | Adicionar funcionalidades | Criar novo relatório |
Preventiva | Melhorar desempenho/manutenibilidade | Refatorar código |
Essa tabela ajuda a diferenciar rapidamente cada tipo na hora da prova.
Gabarito: letra C
Link permanente: /questoes/qa631603