Questão nº 51

Questão de Tecnologia da Informação · FCC TRT2 2018 (nº 51)

FCC2018Analista Judiciário - Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Bver comentário ↓

Coesão e acoplamento são umas das mais importantes métricas de qualidade em projetos Orientados a Objetos (OO). Considere os trechos de código Java abaixo, sabendo-se que é necessário que seja calculada a média dos rendimentos dos depósitos de valores referentes ao Fundo de Garantia por Tempo de Serviço (FGTS) de cada trabalhador e que este cálculo pode ser alterado em função de novas leis regulatórias.

Trecho 1
```
public class Trabalhador(){
String nome;
double[] fgts;
/declaração de outros atributos e
códigos dos outros métodos
getters e setters
/
public void setNome(String nome){
this.nome=nome;
}
public String getNome(){
return nome;
}
public void setFgts(double[] fgts){
this.fgts=fgts;
}
public double calculaMedia(){
//código para calcular média
return media;
}
}
```

Trecho 2
```
public class Trabalhador(){
String nome;
/declaração de outros atributos e
códigos dos outros métodos
getters e setters
/
public void setNome(String nome){
this.nome=nome;
}
public String getNome(){
return nome;
}
}
public class Fgts{
Trabalhador trabalhador;
double[] fgts;
public Fgts(Trabalhador trabalhador){
this.trabalhador=trabalhador;
}
public void setFgts(double[] fgts){
this.fgts=fgts;
}
public double calculaMedia(){
//código para calcular média
return media;
}
}
```

Ao analisar os trechos de código em condições ideais, um Analista de Informática afirma que o trecho

Resposta comentada

Gabarito Alternativa B

Coesão (Cohesion) é o grau em que os elementos dentro de um módulo (como uma classe) trabalham juntos para realizar uma única tarefa bem definida. Alta coesão é desejável. Acoplamento (Coupling) é o grau de interdependência entre diferentes módulos (classes). Baixo acoplamento é desejável.

  • (A) Incorreta: O Trecho 2 introduz um acoplamento entre Fgts e Trabalhador (a classe Fgts referencia Trabalhador), mas isso é um acoplamento controlado e necessário para a relação. A afirmação de que "se um for alterado os outros também devem ser alterados" é uma generalização exagerada; muitas alterações internas não afetariam o outro, e o benefício da coesão supera esse acoplamento.
  • (B) Correta: No Trecho 1, a classe Trabalhador é responsável por dados do trabalhador e também pelo cálculo da média do FGTS. Isso significa que ela tem múltiplas responsabilidades não diretamente relacionadas, caracterizando baixa coesão. O Trecho 2 corrige isso separando as responsabilidades: a classe Trabalhador cuida apenas dos dados do trabalhador, e a classe Fgts cuida dos dados e do cálculo do FGTS. Cada classe agora tem uma única responsabilidade bem definida, o que aumenta a coesão de ambas.
  • (C) Incorreta: O Trecho 1 apresenta baixa coesão, não baixo acoplamento (o problema principal não é a interdependência com outras classes, mas a mistura de responsabilidades internas). Embora o Trecho 2 de fato aumente o acoplamento entre as classes Trabalhador e Fgts (já que Fgts agora depende de Trabalhador), a correção principal do Trecho 1 não é aumentar o acoplamento, mas sim melhorar a coesão. A armadilha aqui é que, embora o acoplamento aumente, isso não é a "correção" em si, mas uma consequência aceitável para alcançar a alta coesão.
  • (D) Incorreta: Uma classe que "faz mais do que ela deveria fazer" de fato tem baixa coesão, não alta. Alta coesão significa que a classe faz apenas o que deveria fazer, e faz bem. A afirmação confunde o conceito de coesão.
  • (E) Incorreta: A descrição "elementos não dependem muito uns dos outros, de forma que, se um for alterado os outros não serão afetados" refere-se a baixo acoplamento, que é desejável. No entanto, o Trecho 2 não apresenta classes com baixa coesão; pelo contrário, ele foi projetado para aumentar a coesão de ambas as classes ao separarem suas responsabilidades. A alternativa confunde acoplamento com coesão.

Fonte: FCC TRT2 2018 Analista Judiciário - Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho