Buscar

PADRÕES GRASP (I)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1a Questão
	
	
	
	Identifique o padrão GRASP utilizado no código abaixo: public class Aviao { public static Object pilotar() { } } public class Navio { public static Object navegar() { } } public class Marujo { Navio.navegar(); }
		
	
	Variation
	
	Indirection
	 
	Information Expert
	
	Pure Fabrication
	
	High Coesion
	
Explicação:
Padrões GRASP: Expert (Especialista), Creator (Criador), High Coesion, Low Coupling (Baixo Acoplamento), Controller.
Expert (Especialista da informação) - O que acontece é que o comportamento está espalhado (estratificado) por toda árvore, em todo o gráfico de classe.
Especialista na informação é um princípio utilizado para determinar onde delegar responsabilidades. Essas responsabilidades incluem métodos, campos computados, e assim em diante.
	
	
	
	 2a Questão
	
	
	
	
	
Em relação a aplicação dos padrões GRASP, para o diagrama de classe da figura acima é correto afirmar que:
 
		
	
	Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Engenheiro tem a responsabilidade de saber quantas Etapas uma determinada Obra possui.
	
	Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Etapa tem a responsabilidade de saber quantas Etapas uma determinada Obra possui.
	 
	Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Obra tem a responsabilidade de saber quantas Etapas uma determinada Obra possui.
	
	Padrão Criador: a Classe Obra tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Etapa tem a responsabilidade de saber quantas Etapas uma determinada Obra possui.
	
	Padrão Criador: a Classe Obra tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Obra tem a responsabilidade de saber quantas Etapas uma determinada Obra possui.
	
	 
	
	 3a Questão
	
	
	
	
	
Em relação a aplicação dos padrões GRASP, para o diagrama de classe da figura acima é correto afirmar que:
		
	
	Padrão Criador: a Classe Cliente tem a responsabilidade de criar instâncias da classe Parcela. Padrão Especialista: a Classe Parcela tem a responsabilidade de saber quais são as parcelas devedoras.
	 
	Padrão Criador: a Classe Cliente tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe Empréstimo tem a responsabilidade de saber quais são as parcelas de um determinado Empréstimo.
	
	Padrão Criador: a Classe Empréstimo tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe Empréstimo tem a responsabilidade de saber quais são as parcelas de um determinado Empréstimo.
	
	Padrão Criador: a Classe Empréstimo tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe Parcela tem a responsabilidade de saber quais são as parcelas de um determinado Empréstimo.
	
	Padrão Criador: a Classe Parcela tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe Parcela tem a responsabilidade de saber quais são as parcelas devedoras.
	
Explicação:
Padrões GRASP: Expert (Especialista), Creator (Criador), High Coesion, Low Coupling (Baixo Acoplamento), Controller.
Padrões GRASP descrevem princípios fundamentais de atribuição de responsabilidade a objetos.
Creator (Criador) - O Creator do GoF está focando um problema específico (por exemplo, encapsulando código), este não, é decidir quem é o responsável por criar determinado recurso, ou artefato, e escolher quem vai criar.
A criação de objetos é uma das mais comuns atividades em um sistema orientado a objetos. Descobrir qual classe é responsável por criar objetos é uma propriedade fundamental da relação entre objetos de classes particulares.
Expert (Especialista da informação) - O que acontece é que o comportamento está espalhado (estratificado) por toda árvore, em todo o gráfico de classe.
Especialista atribuir responsabilidade ao especialista da informação.
Especialista na informação é um princípio utilizado para determinar onde delegar responsabilidades. Essas responsabilidades incluem métodos, campos computados, e assim em diante.
Ele vai escolher os objetos especialistas para ele receber essas responsabilidades.
É o padrão mais usado para atribuir responsabilidades
	
	 
	
	 4a Questão
	
	
	
	
	Nos padrões GRASP (General Responsability Assigment Software Patterns), as responsabilidades de um projeto podem ser divididas em ¿conhecer¿ e ¿fazer¿. Assinale o conceito CORRETO.
		
	 
	No conhecer, eu delego quem é o responsável por saber o estado de uma determinada classe;
	
	As responsabilidades ¿conhecer¿ estão relacionadas com a distribuição do comportamento do sistema entre as classes;
	
	No conhecer, eu delego a responsabilidade de quem é que vai ser responsável por criar;
	
	No fazer, vai demonstrar quem é que vai saber o estado;
	
	As responsabilidades ¿fazer¿ estão relacionadas à distribuição das características do sistema entre as classes;
	
Explicação:
Esse conceito está CORRETO porque:
As responsabilidades ¿conhecer¿ estão relacionadas à distribuição das características do sistema entre as classes.
As responsabilidades ¿fazer¿ estão relacionadas com a distribuição do comportamento do sistema entre as classes.
No fazer, eu delego a responsabilidade de quem é que vai ser responsável por criar.
No conhecer, vai demonstrar quem é que vai saber o estado.
	
	
	
	 5a Questão
	
	
	
	
	Pode-se sucintamente definir o padrão Variation do GRASP como:
		
	
	Criar classes que permitam sobrecarga e sobreescrita.
	
	Criar camadas para melhor organizar a aplicação.
	
	Criar classes altamente coesas.
	
	Criar classes controladoras.
	 
	Criar classe que resolva problemas de inconsistência, criando adaptações para saná-las.
	
	
	
	 6a Questão
	
	
	
	
	Marque a alternativa que apresenta apenas padrões GRASP?
		
	
	Observer, visitor, strategy
	 
	Coesão alta, controlador e polimorfismo
	
	Coesão alta, polimorfismo, visitor
	
	Controlador, polimorfismo e Memento
	
	Coesão alta, controlador, strategy
	
Explicação:
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo Acoplamento (Acoplamento Fraco).
	
	
	
	 7a Questão
	
	
	
	
	qual das afirmativas abaixo não é verdadeira.
		
	
	acoplamento é o grau de dependência entre dois artefatos. É uma medida de quão forte um elemento está conectado ou tem conhecimento de, ou depende de outros elementos.
	
	Dessa forma o padrão Acoplamento Baixo é utilizado para atribuir responsabilidades de modo que o acoplamento permaneça baixo.
	
	Um alto acoplamento aumenta a dificuldade de entendimento da solução proposta, a diminuição das chances de reutilização, além de aumentar a complexidade da aplicação.
	 
	O ideal que dois artefatos tenham alta dependência. Isto garante um bom desempenho e facilita a manutenção dos artefatos.
	
	Um acoplamento definido para que classes que contenham métodos que possibilitem alterações de requisitos deve ser a menor possível, desta forma se favorece futuras manutenções.
	
Explicação:
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo Acoplamento (Acoplamento Fraco).
Outros padrões GRASP considerados Avançados são Inversão Pura, Indireção e Variações Protegidas.
Vamos entender o conceito de Acoplamento e Artefato. Acoplamento é o grau de dependência entre dois artefatos. Artefato refere-se a qualquerelemento de um projeto de software orientado a objetos, tais como classe, método, componente, pacote, entre outros.
Essa afirmativa é verdadeira porque um alto acoplamento traz inúmeros problemas para uma aplicação, entre as quais a dificuldade de entendimento da solução proposta, a diminuição das chances de reutilização, além de aumentar a complexidade da manutenção da aplicação. Portanto, é consenso entre profissionais da área que todo projeto orientado a objetos deve minimizar o acoplamento entre os artefatos.
O padrão Acoplamento Baixo é utilizado para atribuir responsabilidades de modo que o acoplamento permaneça baixo.
	
	
	
	 8a Questão
	
	
	
	
	Os padrões GRASP são PRINCÍCPIOS, nos quais nós devemos nos basear, para o desenvolvimento.
A informação necessária para uma tarefa computacional frequentemente está ¿espalhada¿ por vários objetos. Para o exemplo: determinar o total de uma venda requer a colaboração de 3 objetos, em 3 classes diferentes, qual o melhor padrão GRASP deve ser usado?
		
	
	Criador;
	
	Acoplamento fraco;
	
	Coesão Alta;
	 
	Expert (Especialista da informação);
	
	Controlador;
	
Explicação:
Essa resposta está correta porque Expert (Especialista da informação), porque é o padrão mais usado para atribuir responsabilidades. Há muitos experts parciais. Neste caso mensagens são usadas para estabelecer as colaborações. Note que, com o uso do padrão Expert o encapsulamento das classes é mantido.

Continue navegando