Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fechar Avaliação: CCT0152_AV2_201001487184 » PADRÕES DE PROJETO DE SOFTWARE Tipo de Avaliação: AV2 Aluno: 201001487184 - GLEICI LUCI LIMA TRINDADE RIBEIRO Professor: HORACIO DA CUNHA E SOUZA RIBEIRO Turma: 9001/AA Nota da Prova: 7,0 de 8,0 Nota do Trabalho: Nota de Participação: 2 Data: 07/06/2013 18:31:53 1a Questão (Cód.: 125590) Pontos: 1,5 / 1,5 Utilizar o princípio CRIADOR significa suportar baixo acoplamento, maior clareza, encapsulamento e reusabilidade. Em que consiste o princípio CRIADOR? Resposta: Ele permite que a classe escolha que objetos terão a responsabilidade de criar, instanciar outros objetos ou classes. Gabarito: Consiste em atribuir responsabilidade de criação. Atribua à classe B a responsabilidade de criar uma instância de A se: B agrega objetos de A; B contém objetos de A; B armazena instâncias de objetos A; B possui dados de inicialização que serão passados a algum objeto de A. 2a Questão (Cód.: 125498) Pontos: 1,5 / 1,5 Baixo acoplamento é um princípio-chave na Orientação objetos. O que deve ser feito para garantir o baixo acoplamento na definição dos objetos/classe/subsistema/sistema. Resposta: Deve-se evitar a dependência entre os objetos e classes e fazer com que essa dependência seja realizada apenas com objetos que guardam alguma relação entre si. Gabarito: Deve-se manter os objetos/classe/subsistema/sistema o mais independente possível, ou seja, não possui conhecimento sobre o outro ou confia em outro. 3a Questão (Cód.: 115670) Pontos: 1,0 / 1,0 Memento: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). Sobre este padrão de projetos podemos afirma com certeza: 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. É bastante utilizado em programação de sistemas para gerenciar a comunicação entre dois ou mais objetos, mas não deve ser usado quando associado a percorrer arrays ou tabelas. Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de implementação É bastante utilizado em programação de sistemas para gerenciar a comunicação entre dois ou mais objetos Considerando objetos que implementam arrays, pode ser visto como uma classe intermediária de comunicação e gerenciamento, evitando que os objetos se comuniquem de forma direta 4a Questão (Cód.: 116737) Pontos: 1,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 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. 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; 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 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. 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 que o utiliza. 5a Questão (Cód.: 116815) Pontos: 0,5 / 0,5 sobre o Polimorfismo considere a figura abaixo e selecione a reposta totalmente correta: Define-se um método na classe PAI. Este método é copiado nas classes que herdam a classe PAI. Isto é polimorfismo. Define-se um método físico na classe PAI. Os métodos nas classes filho são definidos. Neste caso cada método é sobreposto. No caso de uma nova classe filho há necessidade obrigatória devido a estrutura PAI de se definir o método na nova classe. Isto é polimorfismo. Define-se vários métodos. Cada método deve ter uma estrutura IF...THEN...para cada situação. Isto é polimorfismo. Define-se um método abstrato, em uma classe abstrata. Cada classe que herda a classe abstrata implementa o método físico. Dependendo da classe instanciada é executado o método correpondente. Isto é polimorfismo. Define-se uma estrutura de herança. Automaticamente fica definido uma estrutura de métodos. Isto é polimorfismo 6a Questão (Cód.: 116936) Pontos: 0,5 / 0,5 O padrão Indireção tem como característica: É 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. 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. 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. 7a Questão (Cód.: 116765) Pontos: 0,0 / 0,5 considere as classes e métodos abaixo: E escolha a opção correta sobre a gravura: E escolha a opção correta sobre a gravura: sobre o acoplamento e coesão : O método void imp_NF (cod) poderia ser implementado na classe NF sem envolver mais nenhuma classe. Não tendo outros médotos o acoplamento não existiria o que é o desejável. método void imp_NF (cod) não deve ser implementado na classe NF. Obteria-se um projeto melhor se NF fosse acoplada a classe Cliente seus métodos incorporados na classe cliente. Pode-se garantir um melhor acoplamento Existem acoplamentos das classes que foram gerados de forma desnecessária pois poderiam ser incorporados em um único método e isto iria facilitar a manutenção e o entendimento. Existem acoplamentos que poderiam ser evitados, considerando apenas o diagrama, assim o método de imprimir nota fiscal, dando-se o código de cliente, pode ser mapeado de forma diferente melhorando-se o acoplamento. Existem acoplamentos das classes cliente e Nota fiscal. E Nota fiscal e Item de Nota fiscal. Esta forma de acoplamento é caracterizado por chamada de métodos. 8a Questão (Cód.: 119023) Pontos: 0,5 / 0,5 Na UML, o padrão Singleton (GoF) pode ser visto como na classe abaixo: Sobre o padrão de projeto Singleton, I - o número 1 no canto superior da classe pode ser utilizado opcionalmente para indicar que esta classe terá apenas uma única instância. II - para se implementar o padrão Singleton na classe acima, esta deverá possuir um método construtor ServicesFactory() privado. III - caso uma subclasse estenda a classe ServicesFactory através de herança, o método getInstance() deverá ser sobrescrito (override) para construir a subclasse. IV - o método getInstance() deverá ser obrigatoriamentedeclarado como um método estático (static). Assinale a alternativa que indica assertivas CORRETAS: II - III - IV I - II - III I - II - IV I - II - III - IV I - III - IV 9 a Questão (Cód.: 107782) Pontos: 0,0 / 0,5 Considere as afirmativa abaixo sobre o padrão Builder: I ) É utilizado na instanciação de objetos complexos. II)É visto como um construtor especializado, que irá executar e avaliar diferentes regras de negócio e demais particularidades relacionadas com a criação de um novo objeto. III )A idéia é atribuir a responsabilidade de criação do objeto complexo a outra classe, esta classe irá armazenar todas as configurações e regras necessárias para a instanciação do novo objeto. As afirmativas I, II, estão corretas e a afirmativa III está errada. As afirmativas I, III, estão corretas e II errada As afirmativas estão todas corretas As afirmativas I, II, III estão incorretas As afirmativas II, III estão corretas e a afirmativa I está errada. 10a Questão (Cód.: 107793) Pontos: 0,5 / 0,5 O padrão Adpater é bastante utilizado para compatibilizar classes implementas por programadores diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces diferentes em uma estrututura hierarquica única, sem precisar implementar novamente todas as funcionalidades e interfaces da classe já existente, considere as afirmativas: I - A idéia é criar uma nova classe (Adapter) com a interface padrão que se deseja para fazer a conexão com a classe já existente (Adaptee) com interface diferente da estrutura de classes que se pretende utilizar no sistema. Ii - Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e entender a complexa implementação realizada, mantém a uniformidade do seu projeto original. Iii cria uma hierarquia de classes diferentes categorias de objetos sem relação de herança. As afirmativas I, III, estão corretas e II errada As afirmativas estão todas corretas As afirmativas I, II, III estão incorretas As afirmativas I, II, estão corretas e a afirmativa III está errada. As afirmativas II, III estão corretas e a afirmativa I está errada. Período de não visualização da prova: desde 03/06/2013 até 18/06/2013.
Compartilhar