Buscar

AV - Padrões de Projeto de Software - #1 - 2021

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 8 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

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 6, do total de 8 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

Disc.: PADRÕES DE PROJETO DE SOFTWARE 
 
Acertos: 10,0 de 10,0 2021 
 
 
 
1a 
 Questão 
Acerto: 1,0 / 1,0 
 
considere a afirmativa de Gamma e Al. citada abaixo e escolha a opção correta: - Em 
geral, todas as arquiteturas orientadas a objeto bem-estruturadas estão cheias de 
padrões. Uma das maneiras de medir a qualidade de um sistema orientado a objetos é 
avaliar se os colaboradores tomaram bastante cuidado com as colaborações comuns 
entre seus objetos. Focalizar em tais mecanismos durante o desenvolvimento de um 
sistema pode levar a uma arquitetura menor, mais simples, muito mais compreensível 
do que aquelas produzidas quanto padrões são ignorados 
 
 
Padrões é uma forma obrigatória de programar com objetos 
 
Padrões causam falta de criatividade nos desenvolvedores e esta perda 
compromete a qualidade 
 
Padroes sempre levam a uma arquitetura menor principalmente quando se 
usa tecnologia de objetos 
 Padrões são boas práticas e proporcionam garantia de qualidade na 
elaboração do código 
 
Padrões são de uso obrigatório e eliminam os erros cometidos na fase 
programação. 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões 
Comportamentais. O padrão de criação GoF contempla cinco tipos de padrões: Abstract 
Factory, Builder, Factory Method, Prototype e Singleton. 
Para Gamma et all, "Os padrões de projeto são descrições de objetos que se comunicam e 
classes que são customizadas para resolver um problema genérico de design em um 
contexto específico". 
 
 
2a 
 Questão 
Acerto: 1,0 / 1,0 
 
Conhecido como padrões da gangue dos quatro, por terem sido desenvolvidos por quatro autores, 
os Padrões GoF (Group of Four) estão divididos pelos seguintes famílias de padrões: Padrões de 
Criação ou de Construção, Padrões Estruturais e Padrões Comportamentais. 
 
Considerando os padrões de Criação ou de Construção, analise o modelo abaixo e em seguida 
marque a alternativa que define a representação. 
 
 
 
BUILDER. 
 
SINGLETON. 
 PROTOTYPE. 
 
FACTORY METHOD. 
 
MEDIATOR. 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais: 
Os padrões de criação GoF contemplam 5 (cinco) tipos de padrões: Abstract Factory, Builder, Factory 
Method, Prototype e Singleton. 
Os Padrões de Criação fornecem um guia de como instanciar objetos. Esta ação normalmente envolve 
decisões dinâmicas para escolher, por exemplo, qual classe instanciar ou a quais objetos delegar 
responsabilidade. Esse padrão nos mostra como estruturar e encapsular essas decisões 
O padrão Prototype por definição ¿Especifica os tipos de objetos a serem criados usando uma instância 
como protótipo e criar novos objetos ao copiar este protótipo¿. Declara um método chamado clone na 
superclasse abstrata do modelo (Prototype). 
 
 
3a 
 Questão 
Acerto: 1,0 / 1,0 
 
Que padrão estrutural anexa dinamicamente responsabilidades adicionais a um objeto. 
Provê uma alternativa flexível ao uso de herança como mecanismo de extensão de 
funcionalidade: 
 
 
 
Facade 
 
Bridge 
 Decorator 
 
Composite 
 
Adapter 
 
 
 
4a 
 Questão 
Acerto: 1,0 / 1,0 
 
Qual padrão usa compartilhamento para suportar eficientemente grandes quantidades 
de objetos de granularidade fina? 
 
 
Bridge. 
 
Composite. 
 
Façade. 
 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). 
 
 
5a 
 Questão 
Acerto: 1,0 / 1,0 
 
Qual padrão evita o acoplamento do remetente de uma solicitação ao receptor e 
encadeia os objetos receptores passando a solicitação ao longo da cadeia até que um 
objeto a trate? 
 
 Chain of Responsability. 
 
Command. 
 
Observer. 
 
Mediator. 
 
Nenhuma das anteriores. 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsability, 
Command, Interpreter, Iterator, Mediator, Memento, Observer, 
State, Strategy, Template Method e Visitor. 
São projetados para organizar, gerenciar e combinar diferentes 
comportamentos. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual 
responsabilidades são distribuídas a classes e objetos durante a 
realização de uma tarefa. São abstrações de aspectos 
comportamentais. 
O padrão Chain of Responsability, compõem objetos em cascata 
para, através dela, delegar uma requisição até que um objeto a 
sirva. 
 
 
6a 
 Questão 
Acerto: 1,0 / 1,0 
 
São vantagens da arquitetura MVC, EXCETO: 
 
 
permitir interfaces mais sofisticadas com o usuário. 
 poder ser utilizada em aplicações simples ,sem sobrecarregar o 
desenvolvimento com componentes desnecessários. 
 
possuir melhor separação de responsabilidades. 
 
permitir a distribuição dos elementos da aplicação. 
 
garantir um crescimento constante da aplicação. 
 
 
Explicação: 
Essa afirmativa não é uma vantagem porque: 
Model: representa os dados da aplicação e regras de negócio 
associadas com os dados. Notifica o View sobre alterações. 
View: é um Observer para o Model. Notifica o Controller sobre 
eventos iniciados pelo usuário e lê dados do Model. 
Controller: é um Observer para o View. Encapsula lógica de controle 
que afeta o Model e seleciona View. 
O MVC é utilizado em muitos projetos devido à arquitetura que 
possui, o que possibilita a divisão do projeto em camadas muito bem 
definidas. Cada uma delas, o Model, o Controller e a View, executa o 
que lhe é definido e nada mais do que isso. 
A utilização do padrão MVC trás como benefício isolar as regras de 
negócios da lógica de apresentação, a interface com o usuário. Isto 
possibilita a existência de várias interfaces com o usuário que podem 
ser modificadas sem que haja a necessidade da alteração das regras 
de negócios, proporcionando assim muito mais flexibilidade e 
oportunidades de reuso das classes. 
Uma das características de um padrão de projeto é poder aplicá-lo 
em sistemas distintos. O padrão MVC pode ser utilizado em vários 
tipos de projetos como, por exemplo, desktop, web e mobile. 
 
 
7a 
 Questão 
Acerto: 1,0 / 1,0 
 
Qual padrão define uma família de algoritmos, encapsula cada uma delas e torna-as 
intercambiáveis, e permite que o algoritmo varie independentemente dos clientes que o 
utilizam? 
 
 Strategy. 
 
Template Method. 
 
Nenhuma das anteriores. 
 
Decorator. 
 
Visitor. 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsability, 
Command, Interpreter, Iterator, Mediator, Memento, Observer, 
State, Strategy, Template Method e Visitor. 
São projetados para organizar, gerenciar e combinar diferentes 
comportamentos. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual 
responsabilidades são distribuídas a classes e objetos durante a 
realização de uma tarefa. São abstrações de aspectos 
comportamentais. 
O padrão Strategy define uma família de algoritmos , encapsula 
cada um deles, e torna-os intercambiáveis, permitindo assim que os 
algoritmos variem independentemente dos clientes que os utilizam. 
 
 
8a 
 Questão 
Acerto: 1,0 / 1,0 
 
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 a responsabilidade dequem é que vai ser 
responsável por criar; 
 As responsabilidades ¿fazer¿ estão relacionadas à distribuição das 
características do sistema entre as classes; 
 As responsabilidades ¿conhecer¿ estão relacionadas com a 
distribuição do comportamento do sistema entre as classes; 
 No fazer, vai demonstrar quem é que vai saber o estado; 
 No conhecer, eu delego quem é o responsável por saber o estado 
de uma determinada classe; 
 
 
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. 
 
 
9a 
 Questão 
Acerto: 1,0 / 1,0 
 
Com relação à arquitetura MVC, considere: I. O MODEL representa os dados da 
empresa e as regras de negócio que governam o acesso e atualização destes dados. II. 
O VIEW acessa os dados da empresa através do MODEL e especifica como esses dados 
devem ser apresentados. É de responsabilidade do VIEW manter a consistência em sua 
apresentação, quando o MODEL é alterado. III. O CONTROLLER traduz as interações do 
VIEW em ações a serem executadas pelo MODEL. Com base na interação do usuário e 
no resultado das ações do MODEL, o CONTROLLER responde selecionando uma VIEW 
adequada. IV. Permite uma única VIEW para compartilhar o mesmo modelo de dados 
corporativos em um fluxo de comunicação sequencial. Está correto o que se afirma em 
 
 
I, II, III e IV. 
 
II e III, apenas. 
 
II, III e IV, apenas. 
 
I e II, apenas. 
 I, II e III, apenas. 
 
 
Explicação: 
A afirmativa IV é incorreta porque o padrão de arquitetura MVC 
(Model-View-Controller) é uma combinação de padrões centrada 
no padrão Observer e consiste de três participantes: 
Model: representa os dados da aplicação e regras de negócio 
associadas com os dados. Notifica o View sobre alterações. 
View: é um Observer para o Model. Notifica o Controller sobre 
eventos iniciados pelo usuário e lê dados do Model. 
Controller: é um Observer para o View. Encapsula lógica de controle 
que afeta o Model e seleciona View. 
O MVC é utilizado em muitos projetos devido à arquitetura que 
possui, o que possibilita a divisão do projeto em camadas muito bem 
definidas. Cada uma delas, o Model, o Controller e a View, executa o 
que lhe é definido e nada mais do que isso. 
A utilização do padrão MVC trás como benefício isolar as regras de 
negócios da lógica de apresentação, a interface com o usuário. Isto 
possibilita a existência de várias interfaces com o usuário que podem 
ser modificadas sem que haja a necessidade da alteração das regras 
de negócios, proporcionando assim muito mais flexibilidade e 
oportunidades de reuso das classes. 
 
 
10a 
 Questão 
Acerto: 1,0 / 1,0 
 
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 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. 
 
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. 
 
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. 
 
 
Explicação: 
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.. 
E: 
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 (Pure Fabrication), 
Indireção e Variações Protegidas. 
O padrão Indireção resolve problemas como: a quem devemos atribuir a responsabilidade, 
evitando o acoplamento direto entre dois ou mais objetos? e como desacoplar objetos 
apoiando o Acoplamento Baixo e maximizando o potencial de reuso? 
A solução para isso é atribuir a responsabilidade a um objeto intermediário para mediar as 
mensagens entre outros componentes ou serviços, para que não sejam diretamente 
acoplados e o objeto intermediário cria uma camada de indireção entre os dois 
componentes que não mais dependam um do outro: Ambos dependem da indireção. 
A Indireção quer que dois objetos, evite-se o acoplamento direto entre eles. 
A ideia é diminuir o acoplamento e manter a coesão. 
 
 
 
 
 
javascript:abre_colabore('38403','221254801','4465382927');

Continue navegando