Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disc.: PADRÕES DE PROJETO DE SOFTWARE Acertos: 10,0 de 10,0 04/2021 Questão Acerto: 1,0 / 1,0 (FGV - 2008) Considere as seguintes assertivas sobre as vantagens do uso de padrões de software (software patterns): I. Padrões de projeto proporcionam um vocabulário comum de projeto, facilitando comunicação, documentação e aprendizado dos sistemas de software. II. Padrões de projeto auxiliam no desenvolvimento de software por meio da reutilização do projeto de soluções computacionais já testadas e aprovadas. III. Uma biblioteca de padrões pode ajudar a melhorar e padronizar o desenvolvimento de software. As assertivas corretas são: somente II e III. I, II e III. somente I e III. somente I e II. somente II. Explicação: A família de padrões GoF, está divida em três grupos principais de padrões: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. Há cinco padrões de criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. Há 7 (sete) tipos de padrões estruturais GoF: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. Há 11 padrões comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. Um padrão é uma maneira testada ou documentada de alcançar um objetivo qualquer. Capturam soluções de projeto exaustivamente refinadas com o passar do tempo, e são o resultado de um longo processo de projeto, re-projeto, teste e reflexão sobre o que torna um sistema mais flexível, reusável e modular. Sendo assim, todas as alternativas estão corretas. Questão Acerto: 1,0 / 1,0 O padrão GoF Criacional que define um comportamento de clonagem de classes é: Abstract Factory Singleton Prototype Facade Factory Method Explicação: Há cinco Padrões de Criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. O PROTOTYPE é um Padrão de Criação. É um padrão cuja responsabilidade é a CONSTRUÇÃO Ele especifica os tipos de objetos a serem criados usando uma instância como protótipo e criar novos objetos ao copiar este protótipo. Questão Acerto: 1,0 / 1,0 Observe a figura abaixo e escolha dentre as opções o padrão GOF para resolver o problema com a estrutura apresentada. Composite GOF Singleton Proxy Grasp Questão Acerto: 1,0 / 1,0 Qual padrão usa compartilhamento para suportar eficientemente grandes quantidades de objetos de granularidade fina? Façade. Bridge. Composite. Flyweight. Nenhuma das anteriores. Explicação: Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. Flyweight é um padrão de projeto de software apropriado quando vários objetos devem ser manipulados em memória sendo que muitos deles possuem informações repetidas. Dado que o recurso de memória é limitado, é possível segregar a informação repetida em um objeto adicional que atenda as características de imutabilidade e comparabilidade (que consiga ser comparado com outro objeto para determinar se ambos carregam a mesma informação). Questão Acerto: 1,0 / 1,0 O padrão Chain of Responsability é um Padrão Comportamental GoF. Qual o seu objetivo? Assinale a afirmativa INCORRETA Representar um encadeamento de objetos receptores para o processamento de uma série de solicitações diferentes; Fornecer um acoplamento mais fraco por evitar a associação explícita do remetente de uma solicitação ao seu receptor e dar a mais de um objeto a oportunidade de tratar a solicitação; Reduz a interconexão entre os objetos, ao invés de um objeto manter uma lista com todos os receptores candidatos, eles mantém uma referência única para o sucessor; Encadear os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto a trate; Evitar o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de um objeto a oportunidade de tratar a solicitação; Explicação: Essa afirmativa está relacionada ao padrão Chain of Responsability, porque ela se refere a padrão Classe Hanter. Questão Acerto: 1,0 / 1,0 A definição ¿ Captar e externalizar um estado interno de um objeto, de maneira que esse estado seja restaurado ao objeto em outro momento, sem violar seu encapsulamento (Gamma et al., 2000).¿ Refre-se a que padrão de projeto: Memento Command Mediator Builder. Iterator Explicação: Memento é um padrão comportamental, assim como os seguintes padrões: command, iterator, mediator. O padrão Memento tem como objetivo criar um meio de armazenar informações sobre um objeto, permitindo acessar essas informações tanto para salvar o estado de um objeto específico, como para recuperar, sempre que for necessário. Questão Acerto: 1,0 / 1,0 O padrão de projeto State deve ser implementado não somente quando o comportamento de um objeto depende do seu estado, mas também quando a funcionalidade de um objeto possui _______________; Complete a lacuna com a opção correta. . padrão bridge; condicionais grandes; Atributos valorados; padrão visitor; agreagações; Questão Acerto: 1,0 / 1,0 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 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. 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. Questão Acerto: 1,0 / 1,0 Considere a figura abaixo E escolha a opção correta sobre a gravura: A Classe instanciada assinalada como :???? Deveria estar incorporada na classe emprestar para evitar criar uma serie de novas classes. Isto facilita o projeto. A Classe instanciada assinala como :???? É de baixo acoplamento e baixa coesão pela natureza de sua criação. uma classe de controle exige que sempre se tem há uma classe de apresentação. Desta forma não podemos ter mais de uma classe de controle por sistema A classe instanciada assinalada como :???? Permite desacoplar as classes e métodos de apresentação. E isto aumenta a reutilização das classes de negocio. A Classe instanciada assinalada como :???? Não pode ser decomposta em outros controladores. Assim temos que trabalhar com o tipo de coesão resultante (temporal, funcional...) 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. Essa afirmativa é a correta porque em uma Coesão Alta as classes com estes tipos de coesão são mais fáceis de implementar, testar e manter. No entanto, outros tipos de coesão podem aparecer, tais como, seqüencial, procedural, temporal e utilidade, as quais, segundo Pressman (2006), são menos desejáveis e devem ser evitados quando existirem alternativas de projeto. Ainda segundo Larman (2007), uma classe com coesão baixa faz muitas atividadesque não estão relacionadas e trabalha em demasia, acarretando os seguintes problemas: dificuldade de compreensão e manutenção, dificuldade de reutilização, além de apresentar bastante sensibilidade a modificações. Um controlador é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar uma mensagem de operação do sistema. De forma mais simples, este é um padrão de projeto de delegação, pois, normalmente um controlador deve delegar a outros objetos o serviço que precisa ser feito; ele coordena ou controla a atividade. Questão Acerto: 1,0 / 1,0 Marque dentre as opções apresentadas aquela que corresponde ao padrão de projeto que sugere atribuir um conjunto de responsabilidades altamente coesas a uma classe artificial, ou de conveniência, que não represente o domínio do problema, algo inventado, para apoiar coesão alta, acoplamento baixo e reuso. Invenção pura; Criador Proxy; Indireção; Variações protegidas;
Compartilhar