SóProvas


ID
1035271
Banca
CESPE / CEBRASPE
Órgão
PEFOCE
Ano
2012
Provas
Disciplina
Engenharia de Software
Assuntos

Acerca da reengenharia e da engenharia direta de sistemas, julgue os itens subsequentes.

Na manutenção preventiva por refatoração em determinado software, novas funcionalidades devem ser adicionadas para diminuir sua degradação.

Alternativas
Comentários
  • Errei a questão. Gostaria que alguém comentasse pois na Wikipédia o conceito concorda com o externado pela questão

    wiki "

    Refatoração (do inglês Refactoring) é o processo de modificar um sistema de software para melhorar a estrutura interna do código sem alterar seu comportamento externo.

    O uso desta técnica aprimora a concepção (design) de um software e evita a deterioração tão comum durante o ciclo de vida de um código. Esta deterioração é geralmente causada por mudanças com objetivos de curto prazo ou por alterações realizadas sem a clara compreensão da concepção do sistema.

    Outra consequência é a melhora no entendimento do código, o que facilita a manutenção e evita a inclusão de defeitos. Esta melhora no entendimento vem da constante alteração do código com objetivo de facilitar a comunicação de motivações, intenções e objetivos por parte do programador."

    É fundamental que o sistema de software possua testes automatizados para realizar refatoração. Desta forma, será possível garantir a que o comportamento externo não foi alterado.

    O livro mais importante sobre refatoração é Refactoring: Improving the Design of Existing Code (ISBN 0-201-48567-2) de Martin Fowler, onde são explicados os conceitos, motivações e uma série de refatorações descritas passo a passo.


  • Acredito que o erro está em associar a Refatoração com a adição de novas funcionalidades. Na verdade, o objetvo da Refatoração é melhorar a qualidade das funcionalidades já existentes. É como diz Sommerville:

    "When you refactor a program, you should not add functionality but should concentrate on program improvement."

  • Refatoração é a melhoria da estrutura interna do código-fonte sem adicionar/remover funcionalidades. A questão cita que novas funcionalidades devem ser adicionadas, o que é um erro.

     

    Bons estudos!