Considere as seguintes afirmativas a respeito de refatoração...
I. Refatoração é o processo de modificação de um software para aprimorar sua estrutura, porém sem alterar seu comportamento externo.
II. A transferência de um método ou atributo de sua classe original para uma subclasse ou superclasse caracteriza uma ação de refatoração.
III. Criar uma nova classe em um programa caracteriza uma ação de refatoração.
IV. Criar uma interface web, idêntica à interface original, para um programa que não foi inicialmente desenvolvido como aplicação web caracteriza uma ação de refatoração.
Assinale a alternativa CORRETA.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - Somente as afirmativas I, II e III estão corretas.
Para entender a questão e chegar à resposta correta, é preciso conhecer o conceito de refatoração na Engenharia de Software. Refatoração é uma técnica usada para alterar a estrutura interna do código sem mudar seu comportamento externo, com o objetivo de torná-lo mais legível, manutenível e extensível. Vamos analisar cada uma das afirmativas que levam à resposta correta:
I. Refatoração é o processo de modificação de um software para aprimorar sua estrutura, porém sem alterar seu comportamento externo.
Essa afirmativa está correta. É justamente a definição de refatoração. Este processo busca melhorar o design do código-fonte, facilitar o entendimento e ajudar na prevenção de defeitos, sem alterar a funcionalidade do programa.
II. A transferência de um método ou atributo de sua classe original para uma subclasse ou superclasse caracteriza uma ação de refatoração.
Essa afirmativa também está correta. Mover métodos ou atributos para uma superclasse (generalização) ou subclasse (especialização) são exemplos clássicos de refatoração para promover um melhor reuso de código e maior coesão nas classes.
III. Criar uma nova classe em um programa caracteriza uma ação de refatoração.
Novamente, esta afirmativa é correta. Criar uma nova classe pode ser parte da refatoração para separar responsabilidades, reduzindo assim o acoplamento e aumentando a coesão dentro do design do software.
Com relação à afirmativa IV, Criar uma interface web, idêntica à interface original, para um programa que não foi inicialmente desenvolvido como aplicação web, isso vai além de uma refatoração. Esse processo envolve a criação de uma nova representação para a aplicação e pode incluir alterações significativas na forma como a aplicação é usada e entregue aos usuários, podendo impactar o comportamento externo do software. Portanto, essa afirmativa é incorreta.
Em resumo, as afirmativas I, II e III alinham-se com o conceito de refatoração, onde buscamos melhorar a estrutura do código sem alterar seu comportamento funcional. A afirmativa IV não se encaixa nesse conceito, pois implica em mudanças que potencialmente alteram o comportamento externo da aplicação. Por essas razões, a alternativa E é a correta.
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
GAB E
Item II fala das técnicas de pull up e push down
Item III forçou demais, pois dá a entender que se trata de uma nova funcionalidade. Mas provavelmente tá tentando falar da técnica Extract Class, que extrai parte de uma classe grande e transforma em uma nova classe.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo