Mais uma questão (copia e cola) do livro do Pressman (Cap 10 - Projeto de componentes)
Coesão
Funcional: apresentada por operações. Componente realiza cálculo e retorna um resultado;
De Camadas: camada mais alta acessa serviços da camada mais baixa.
De Comunicação: operações que acessam os mesmos dados são definidas em uma classe.
Acoplamento
Conteúdo: violação de encapsulamento;
Comum: componentes usam uma variável global;
Controle: OpA chama OpB e passa flag de controle;
Carimbo: Classe B faz parte da definição de Classe A.
Dados: operações passam longas strings como argumentos de dados.
Chamadas de rotinas: uma operação chama a outra.
Uso de tipos: componente A usa tipo de dados definido em B.
Inclusão ou importação: componente A importa ou inclui pacote de B.
Externo: componente se comunica ou colabora com outros da infraestrutura.
@papirobizurado
Coesão
- É descrita como o "foco único" de um componente
- Um componente ou classe encapsula apenas atributos e operações que estejam intimamente relacionados entre si.
Tipo de Coesão:
- Funcional: apresentada por operações. O componente realiza cálculo e retorna um resultado;
- De Camadas: a camada mais alta acessa serviços da camada mais baixa.
- De comunicação: operações que acessam os mesmos dados são definidas em uma classe.
Acoplamento
- É uma medida qualitativa do grau com que as classes estão ligadas entre si.
- Conforme as classes se tornam mais interdependentes o acoplamento aumenta.
Tipo de Acoplamento:
- Acoplamento por conteúdo: ocorre quando um componente viola de forma sub-reptícia os dados internos a outro componentes. Isso viola o encapsulamento.
- Acoplamento comum: componentes usam uma variável global;
- Acoplamento por controle: ocorre quando a operação A chama a operação B e passa uma flag de controle para B.
- Acoplamento “carimbo”: ocorre quando a ClasseB é declarada com um tipo para um argumento de uma operação da ClasseA.
- Acoplamento por dados: operações passam longas strings como argumentos de dados.
- Acoplamento por chamadas de rotinas: ocorre quando uma operação chama a outra.
- Acoplamento por uso de tipos: ocorre quando o componente A usa um tipo de dados definido em um componente B.
- Acoplamento por inclusão ou importação: ocorre quando o componente A importa ou inclui um pacote ou conteúdo do componente B.
- Acoplamento externo: ocorre quando um componente se comunica ou colabora com componentes de infraestrutura.
Alternativa: D