Logo Passei Direto
Buscar

Padrões Grasp

Ferramentas de estudo

Questões resolvidas

Assinale a alternativa que apresenta os níveis de acoplamento entre módulos ordenados do mais baixo para o mais alto:
Estrutura - Dados - Controle - Global - Externo - Conteúdo
Dados - Controle - Estrutura - Externo - Conteúdo - Global
Estrutura - Dados - Controle - Conteúdo - Global - Externo
Dados - Estrutura - Controle - Externo - Global - Conteúdo
Dados - Estrutura - Externo - Controle - Conteúdo - Global

Veja o código a seguir e assinale a alternativa com o tipo de acoplamento existente entre a classe Exemplo e a classe Lâmpada.
public class Lampada { public static final int LIGAR = 1; public static final int DESLIGAR = 0; public realizarOperacao(int codigo) { switch(codigo) { case LIGAR: // executa procedimento para ligar a lâmpada break; case DESLIGAR: // executa procedimento para ligar a lâmpada break; } } public class Exemplo { public static void main(String [] args) { Lampada lampada = new Lampada(); Lampada.realizarOperacao(Lampada.LIGAR); } }
Acoplamento de Estrutura.
Acoplamento de Controle.
Acoplamento Funcional.
Acoplamento Global.
Acoplamento Externo.

Um módulo X escreve dados em uma tabela de um banco de dados relacional que é lida por um módulo Y. Se o desenvolvedor responsável pelo módulo X resolver mudar algo no esquema dessa tabela, será preciso avaliar o impacto dessa mudança em Y. Esse fato evidencia a existência de um acoplamento de que natureza entre os módulos X e Y?
Acoplamento de Dados
Acoplamento Global
Acoplamento Externo
Acoplamento de Estrutura
Acoplamento de Controle

Uma classe X contém o seguinte conjunto de métodos: Fechar arquivos, Fechar conexão com banco de dados, Finalizar tarefas em execução em segundo plano, Liberar buffers de armazenamento temporário, Finalizar operação, que é um método executado na finalização do sistema e que chama todos os métodos anteriores.
Assinale a alternativa com o tipo de coesão da classe X:
Coesão Funcional
Coesão Sequencial
Coesão Lógica
Coesão Temporal
Coesão Coincidente

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Assinale a alternativa que apresenta os níveis de acoplamento entre módulos ordenados do mais baixo para o mais alto:
Estrutura - Dados - Controle - Global - Externo - Conteúdo
Dados - Controle - Estrutura - Externo - Conteúdo - Global
Estrutura - Dados - Controle - Conteúdo - Global - Externo
Dados - Estrutura - Controle - Externo - Global - Conteúdo
Dados - Estrutura - Externo - Controle - Conteúdo - Global

Veja o código a seguir e assinale a alternativa com o tipo de acoplamento existente entre a classe Exemplo e a classe Lâmpada.
public class Lampada { public static final int LIGAR = 1; public static final int DESLIGAR = 0; public realizarOperacao(int codigo) { switch(codigo) { case LIGAR: // executa procedimento para ligar a lâmpada break; case DESLIGAR: // executa procedimento para ligar a lâmpada break; } } public class Exemplo { public static void main(String [] args) { Lampada lampada = new Lampada(); Lampada.realizarOperacao(Lampada.LIGAR); } }
Acoplamento de Estrutura.
Acoplamento de Controle.
Acoplamento Funcional.
Acoplamento Global.
Acoplamento Externo.

Um módulo X escreve dados em uma tabela de um banco de dados relacional que é lida por um módulo Y. Se o desenvolvedor responsável pelo módulo X resolver mudar algo no esquema dessa tabela, será preciso avaliar o impacto dessa mudança em Y. Esse fato evidencia a existência de um acoplamento de que natureza entre os módulos X e Y?
Acoplamento de Dados
Acoplamento Global
Acoplamento Externo
Acoplamento de Estrutura
Acoplamento de Controle

Uma classe X contém o seguinte conjunto de métodos: Fechar arquivos, Fechar conexão com banco de dados, Finalizar tarefas em execução em segundo plano, Liberar buffers de armazenamento temporário, Finalizar operação, que é um método executado na finalização do sistema e que chama todos os métodos anteriores.
Assinale a alternativa com o tipo de coesão da classe X:
Coesão Funcional
Coesão Sequencial
Coesão Lógica
Coesão Temporal
Coesão Coincidente

Prévia do material em texto

Você acertou 8 de 10 questões
Verifique o seu desempenho e continue treinando! Você pode refazer o exercício quantas vezes quiser.
Verificar Desempenho
A
B
C
D
E
A
B
C
D
E
1 Marcar para revisão
O padrão GoF Proxy consiste em colocarmos entre dois objetos remotos um elemento intermediário que
capture a requisição do objeto cliente e a encaminhe pela rede até o objeto destino. Dessa forma, o objeto
cliente pode fazer chamadas de operações do objeto destino como se eles estivessem rodando localmente.
Qual padrão GRASP está mais diretamente relacionado à solução proposta pelo padrão GoF Proxy?
Especialista na Informação.
Criador.
Controlador.
Polimorfismo.
Indireção.
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
Gabarito Comentado
Sendo uma técnica simples e utilizada em projetos de software, a Indireção pode ser utilizada em diversas
situações. Dentre elas, a comunicação entre objetos remotos.
-----
2 Marcar para revisão
Assinale a alternativa que apresenta os níveis de acoplamento entre módulos ordenados do mais baixo para o
mais alto:
Dados - Estrutura - Externo - Controle - Conteúdo - Global
Dados - Controle - Estrutura - Externo - Conteúdo - Global
Estrutura - Dados - Controle - Conteúdo - Global - Externo
Dados - Estrutura - Controle - Externo - Global - Conteúdo
Estrutura - Dados - Controle - Global - Externo - Conteúdo
Resposta incorreta
Opa! A alternativa correta é a letra D. Confira o gabarito comentado!
Gabarito Comentado
A resposta correta é: Dados - Estrutura - Controle - Externo - Global - Conteúdo.
O acoplamento entre módulos é uma medida de quão fortemente um módulo está conectado, ou
dependente, de outros módulos. A ordem correta, do nível mais baixo para o mais alto, é a seguinte:
A
B
C
D
E
A
B
C
D
E
1. Acoplamento de dados: ocorre quando um módulo se comunica com outro passando apenas os dados
necessários para que o módulo chamado cumpra sua responsabilidade.
2. Acoplamento de estrutura: ocorre quando um módulo chamador passa uma estrutura de dados para um
módulo chamado, utilizando apenas um pequeno subconjunto de dados da estrutura.
3. Acoplamento de controle: acontece quando um módulo controla a lógica interna de outro módulo por
meio da passagem de alguma informação de controle.
4. Acoplamento externo: ocorre quando módulos compartilham alguma parte do ambiente externo ao
software.
5. Acoplamento global: ocorre quando há comunicação por meio de recursos como variáveis globais.
6. Acoplamento de conteúdo: ocorre quando um módulo utiliza aspectos de implementação de outro
módulo.
3 Marcar para revisão
Assinale a alternativa que descreve uma situação em que a utilização do padrão Especialista de Informação
pode comprometer a coesão de um módulo.
Quando definimos uma classe que fornece uma interface de alto nível para módulos clientes
utilizarem para disparar operações do negócio.
Quando colocamos em uma mesma classe operações de naturezas diferentes como lógica do
negócio e acesso a banco de dados, uma vez que eles utilizam as mesmas informações da classe.
Quando definimos um objeto intermediário para mediar a comunicação entre objetos remotos.
Quando introduzimos uma interface abstrata em substituição a um código centralizado em um módulo
com estruturas condicionais do tipo switch-case ou if-then-else.
Quando definimos a responsabilidade por criar um objeto para a classe que contém todas as
informações necessárias para realizar essa criação.
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
Gabarito Comentado
O padrão Especialista de Informação atribui responsabilidades à classe que possui o conhecimento
necessário para realizá-las. No entanto, quando uma mesma classe é responsável por operações de
naturezas diferentes, como lógica do negócio e acesso a banco de dados, a coesão do módulo pode ser
comprometida. Isso ocorre porque a classe estará sujeita a duas fontes de mudança, o que fere o princípio
fundamental da coesão, que preconiza que uma classe ou módulo deve ter uma única responsabilidade.
4 Marcar para revisão
"Ao invés de colocarmos o cálculo do frete de um pedido na classe Pedido, optamos por criar uma hierarquia
de classes para encapsular os diferentes algoritmos de cálculo de frete que temos no sistema".
Assinale a alternativa com o nome do padrão GRASP que recomenda a criação de classes que não
representam diretamente elementos concretos encontrados no domínio no negócio, seguindo uma
decomposição de responsabilidades por comportamento e não por representação, como a descrita no cálculo
do frete.
Invenção Pura.
Especialista na Informação.
Polimorfismo.
Acoplamento Baixo.
Indireção.
Questão 4 de 10
Corretas �8�
Incorretas �2�
Em branco �0�
1 2 3 4 5
6 7 8 9 10
Lista de exercícios Padrões Grasp Sair
A
B
C
D
E
Resposta incorreta
Opa! A alternativa correta é a letra A. Confira o gabarito comentado!
Gabarito Comentado
O padrão GRASP denominado "Invenção Pura" é utilizado quando se deseja criar classes que não
representam diretamente elementos concretos encontrados no domínio do negócio. Este padrão é
aplicado quando se busca uma decomposição de responsabilidades baseada no comportamento e não na
representação. No exemplo dado, a criação de uma hierarquia de classes para encapsular os diferentes
algoritmos de cálculo de frete é um exemplo de aplicação deste padrão. Essas classes não representam
um conceito direto do domínio do problema, mas são criadas para melhor organizar e estruturar o
sistema, permitindo uma maior flexibilidade e manutenibilidade.
5 Marcar para revisão
Assinale a alternativa com a afirmativa CORRETA sobre o padrão Criador.
O padrão Criador consiste em criar módulos versáteis que possam cumprir diferentes propósitos.
O padrão Criador define um conjunto de condições para que uma classe A seja responsável por
instanciar objetos de uma classe B.
O padrão Criador recomenda que a criação de objetos seja feita por meio de clonagem.
O padrão Criador é utilizado para instanciar uma classe de uma família de classes similares.
O padrão Criador recomenda a criação de uma classe intermediária responsável por instanciar outros
objetos.
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
Gabarito Comentado
O padrão Criador é um padrão de design que define um conjunto de condições para que uma classe A
seja responsável por instanciar objetos de uma classe B. Isso significa que, em determinadas
circunstâncias, a classe A terá a responsabilidade de criar uma instância da classe B. Os outros padrões
mencionados nas demais alternativas não se referem ao padrão Criador.
6 Marcar para revisão
Veja o código a seguir e  assinale a alternativa com o tipo de acoplamento existente entre a classe Exemplo e a
classe Lâmpada.
public class Lampada {
     public static final int LIGAR � 1;
     public static final int DESLIGAR � 0;
     public realizarOperacao(int codigo) {
          switch(codigo) {
               case LIGAR�
                          // executa procedimento para ligar a lâmpada
                         break;
               case DESLIGAR�
                          // executa procedimento para ligar a lâmpada
                         break;
          }
     }
public class Exemplo {
      public static void main(String [] args) {
             Lampada lampada = new Lampada();
              Lampada.realizarOperacao(Lampada.LIGAR�;
     }
}
A
B
C
D
E
A
B
C
D
E
A
B
C
Acoplamento Global.
Acoplamento de Estrutura.
Acoplamento Funcional.
Acoplamento Externo.
Acoplamento de Controle.
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
Gabarito Comentado
Em função da própria especificação, o acoplamento de controle ocorre quando um módulo controla a
lógica interna de outro módulo por meio da passagem de alguma informaçãode controle.
7 Marcar para revisão
Um amigo seu está desenvolvendo um sistema com dezenas de casos de uso. Esse sistema pode ser usado
em uma interface web e em um aplicativo móvel.  Você o aconselha a criar uma classe para cada caso de uso
que ficará responsável por receber os eventos lógicos recebidos dessas interfaces e coordenar a produção
das respostas que o sistema deve produzir para esses eventos.
Assinale a alternativa com o nome do padrão GRASP descrito na recomendação descrita:
Indireção.
Criador.
Mediador.
Controlador.
Polimorfismo.
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
Gabarito Comentado
O controlador é um elemento de lógica de negócio responsável por coordenar a produção da resposta
aos eventos lógicos geradas por componentes de interface do sistema com elementos externos.
-----
8 Marcar para revisão
Um módulo X escreve dados em uma tabela de um banco de dados relacional que é lida por um módulo Y. Se
o desenvolvedor responsável pelo módulo X resolver mudar algo no esquema dessa tabela, será preciso
avaliar o impacto dessa mudança em Y. Esse fato evidencia a existência de um acoplamento de que natureza
entre os módulos X e Y?
Acoplamento Global
Acoplamento de Estrutura
Acoplamento de Dados
D
E
A
B
C
D
E
A
B
C
D
E
Acoplamento Externo
Acoplamento de Controle
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
Gabarito Comentado
O acoplamento externo é caracterizado quando módulos compartilham alguma parte do ambiente externo
ao software, como é o caso de um banco de dados. Neste cenário, o módulo X e o módulo Y estão
acoplados externamente, pois ambos interagem com a mesma tabela de um banco de dados relacional.
Portanto, qualquer alteração no esquema dessa tabela pelo módulo X pode afetar o funcionamento do
módulo Y, evidenciando a existência de um acoplamento externo entre eles.
9 Marcar para revisão
Uma classe X contém o seguinte conjunto de métodos:
Fechar arquivos
Fechar conexão com banco de dados
Finalizar tarefas em execução em segundo plano
Liberar buffers de armazenamento temporário
Finalizar operação, que é um método executado na finalização do sistema e que chama todos os métodos
anteriores.
Assinale a alternativa com o tipo de coesão da classe X.
Coesão Coincidente
Coesão Temporal
Coesão Lógica
Coesão Funcional
Coesão Sequencial
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
Gabarito Comentado
Na coesão temporal seus elementos são agrupados por serem executados em um determinado instante do
tempo, ou seja, quando todas as operações são executadas na inicialização do sistema.
10 Marcar para revisão
"Este padrão substitui soluções condicionais baseadas em switch-case ou if-then-else por uma chamada
genérica de operação para um objeto que pode assumir diferentes formas em tempo de execução".
Assinale a alternativa com o nome do padrão GRASP correspondente a esta descrição:
Acoplamento Baixo.
Polimorfismo.
Indireção.
Especialista na Informação.
Controlador.
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
Gabarito Comentado
O padrão GRASP denominado Polimorfismo é o que se encaixa na descrição dada no enunciado. O
Polimorfismo permite que um objeto assuma diferentes formas em tempo de execução, substituindo
soluções condicionais baseadas em switch-case ou if-then-else por uma chamada genérica de operação.
Isso é feito através da criação de uma interface genérica, que pode ter diversas implementações
específicas. Assim, a estrutura condicional é substituída por uma única chamada feita pela interface
genérica, tornando o código mais limpo e eficiente.

Mais conteúdos dessa disciplina