Baixe o app para aproveitar ainda mais
Prévia do material em texto
Avaliação: CCT0265_AV_201307135765 » PADRÕES DE PROJETO DE SOFTWARE Tipo de Avaliação: AV Aluno: Professor: JOSE CARLOS MILLAN Turma: 9001/AA Nota da Prova: 4,0 Nota de Partic.: 2 Av. Parcial 2 Data: 21/11/2015 08:50:06 1a Questão (Ref.: 201307353517) Pontos: 1,5 / 1,5 Padrões de projeto estão relacionados a diferentes níveis de abstração no desenvolvimento de aplicações orientadas a objetos, podendo aparecer ao longo de todo ciclo de vida de um sistema. Os padrões são diversos, por exemplo, padrões arquiteturais, padrões de análise, padrões de projeto e padrões de código e padrões estruturais. Explique o que são padrões estruturais e dê exemplo de dois deles. Resposta: Os padrões estruturais definem padroes de comportamentos iguais em classes diferentes. Dois exemplos de padrões estruturais são: Proxy,facade Gabarito: Padrões Estruturais definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mutua. Há sete padrões estruturais GoF: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. 2a Questão (Ref.: 201307274987) Pontos: 0,0 / 1,5 Por que os padrões são uma maneira eficiente de reuso de projeto? Resposta: Os padrões definem como o projeto será implantado. A eficiência do reuso de um projeto, muito se da aos padrões empregados nos projetos. A forma que o projeto fica documentada e a forma em que o projeto e posto em prática, obdecendo os padrões comportamentais,estruturais, por exemplo, em um reuso de projeto futuro fica mais "fácil" e de fácil compreensão. Gabarito: Por que o principal objetivo do padrão é obter um baixo acoplamento e alto nível de coesão, o que torna os módulos com independência e responsabilidade definidas em contextos específicos. 3a Questão (Ref.: 201307251045) Pontos: 0,5 / 0,5 Analise as sentenças sobre padrões de projeto de software e, em seguida, assinale a alternativa correta: I. Permitem descrever fragmentos de projeto e reusar ideias de projeto; II. Dão nome e forma a procedimentos abstratos, regras e melhores práticas relativas às técnicas orientadas a objetos; III. Ajudam a escolher alternativas de projeto que tornam um sistema reutilizável. Todas as sentenças estão corretas Apenas as sentenças II e III estão corretas Apenas a sentença II está correta Apenas as sentenças I e II estão corretas Apenas as sentenças I e III estão corretas 4a Questão (Ref.: 201307257126) Pontos: 0,0 / 0,5 Assinale a afirmativa correta sobre o padrão Builder: A legibilidade da solução final, ou seja, para entender como um objeto é criado e sob quais condições, fica comprometida Deve-se é separar no construtor da própria classe a lógica para criação de um objeto e concentrar a lógica de criação em uma hierarquia de herança. Deve-se é embutir no construtor da própria classe a lógica para criação de um objeto ou ainda distribuir a lógica de criação em vários métodos adicionais. é uma abordagem que não facilita a criação de objetos com diferentes configurações e representações, tornando o código dependente a complexidade das classes relacionadas Um dos principais objetivos do padrão Builder é separar o algoritmo de criação de um objeto complexo tanto da especificação, quanto das partes que o compõem. 5a Questão (Ref.: 201307268379) Pontos: 0,5 / 0,5 (CESGRANRIO - 2009) Ao consultar informações a respeito dos padrões de projeto Adapter e Bridge, um Analista de Sistemas identificou uma afirmativa INCORRETA. Assinale-a. O Adapter é inferior ao Bridge porque não evita a replicação de código. Ambos são padrões estruturais que possuem alguns atributos em comum. O foco do Adapter é a solução de incompatibilidades entre duas interfaces existentes. Ambos promovem a flexibilidade ao fornecer um nível de endereçamento indireto para outro objeto. O Bridge estabelece uma ponte entre uma abstração e suas possíveis implementações. 6a Questão (Ref.: 201307267670) Pontos: 0,5 / 0,5 Os padrões de projetos, quando aplicados ao desenvolvimento de aplicações, fornecem meios de descrever soluções comuns para problemas comuns, resultando em redução de tempo gasto com o desenvolvimento e melhoria da qualidade da aplicação. (FCC - 2009) Analise: I. É o responsável pela especificação dos tipos de objetos a serem criados usando uma "instância" prototípica e pela criação de novos objetos copiando este protótipo. II. Define uma interface de nível mais alto que torna o subsistema mais fácil de usar e fornece uma interface única para um subsistema com diversas interfaces; compõe o grupo de padrões estruturais. III. Integrante do grupo de padrões comportamentais, ele provê uma forma de acessar sequencialmente os elementos de um agregado de objetos, sem expor a representação interna desse agregado. IV. As consequências do uso deste padrão é que o encapsulamento é mantido, já que objetos usam sua própria informação para cumprir responsabilidades; leva ao fraco acoplamento entre objetos e à alta coesão, uma vez que objetos fazem tudo que é relacionado à sua própria informação. As afirmações correspondem, respectivamente, aos padrões Adapter, Façade, Command e Iterator. Command, Iterator, Singleton e Expert. Controller, Expert, Singleton e Prototype. Prototype, Façade, Iterator e Expert. Command, Singleton, Controller e Façade. 7a Questão (Ref.: 201307877663) Pontos: 0,5 / 0,5 Dentre as opções apresentadas, assinale aquela que corresponde ao padrão de projeto que sugere a implementação de um algoritmo que faz uso de diferentes métodos, diferenciando das soluções convencionais por deixar o esqueleto deste algoritmo fixo em uma superclasse abstrata. Chain of Responsability, Template Method Flyweight Interpreter; Proxy; 8a Questão (Ref.: 201307885071) Pontos: 0,5 / 0,5 O padrão de projeto Comand apresenta uma serie aplicabilidades. Assinale dentre as opções abaixo a unica que não esta correta. permitir fácil inclusão de novos comandos,permitir isições concorrentes, manter histórico de execução de comandos, suportar operações para desfazer comandos e, principalmente, evitar o acoplamento direto entre classes e serviços. permitir tratamento de requ Permitir em casos excepcionais o acoplamento direto entre classes e serviços; Manter histórico de execução de comandos; permitir tratamento de requisições concorrentes; Evitar o acoplamento direto entre classes e serviços; permitir fácil inclusão de novos comandos 9a Questão (Ref.: 201307266078) Pontos: 0,0 / 1,0 considere a definição: Visitor: Representar uma operação a ser realizada nos elementos de uma estrutura de objetos. Visitor permite que você defina uma nova operação sem alterar as classes dos elementos nos quais a operação atua (Gamma et al., 2000). Qual das alternativas é completamente verdadeira? O padrão de projeto acima deve ser utilizado não somente quando o comportamento de um objeto depende do seu estado, podendo ser alterado em tempo de execução, mas também quando a funcionalidade de um objeto possui condicionais grandes. O principal objetivo do padrão acima é permitir que sejam adicionadas novas funcionalidades a classes previamente concebidas, sem que haja necessidade de alterar sua implementação. A idéia principal do padrão acima é implementar diferentes algoritmos em uma hierarquia de classes, onde cada um deles pode ser substituído por outro, independente do cliente queo utiliza. O principal objetivo do padrão acima é conservar as funcionalidades em não se permita adicionar novas, E obriga que haja necessidade de alterar sua implementação O padrão de projeto acima é indicado para ser utilizado quando uma abstração tem dois aspectos, um dependente do outro. Encapsular tais aspectos em objetos separados permite que variem e sejam reusados separadamente; 10a Questão (Ref.: 201307266283) Pontos: 0,0 / 1,0 O padrão Variações protegidas tem como característica: implica que um componente ou classe encapsule somente os atributos e operações muito relacionadas a si e com a classe do componente ou classe propriamente dito. é 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. Sugere atribuir um conjunto de responsabilidades altamente coesa 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. O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros componentes ou serviços, para que eles não sejam diretamente acoplados. É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um projeto orientado a objetos, tais como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, entre outros.
Compartilhar