Baixe o app para aproveitar ainda mais
Prévia do material em texto
1a Questão Um padrão 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, 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. Dentre os conceitos abaixo, assinale aquele que complementa o objtivo deste padrão. ele controla ou coordena os métodos; ele coordena ou controla a recursividade; ele coordena ou controla as generalizações; ele coordena ou controla a atividade; ele coordena ou controla as classes; Respondido em 11/06/2019 23:25:45 Gabarito Coment. 2a Questão Dado o diagrama de sequência identifique o padrão GRASP Information Expert Polymorphis Controller Indirection Pure Fabrication Respondido em 11/06/2019 23:25:55 Explicação: O padrão controlador atribui a responsabilidade de manipular eventos do sistema para uma classe que não seja de interface do usuário (UI) que representa o cenário global ou cenário de caso de uso. Um objeto controlador é um objeto de interface não-usuário, responsável por receber ou manipular um evento do sistema. 3a Questão (FCC - 2012) O componente Controller do MVC: Define o comportamento da aplicação, as ações do usuário para atualizar os componentes de dados e seleciona os componentes para exibir respostas de requisições. Notifica os componentes de apresentação das mudanças efetuadas nos dados e expõe a funcionalidade da aplicação. Envia requisições do usuário para o controlador e recebe dados atualizados dos componentes de acesso a dados. Responde às solicitações de queries e encapsula o estado da aplicação. É onde são concentradas todas as regras de negócio da aplicação e o acesso aos dados. Respondido em 11/06/2019 23:26:19 Explicação: Temos os seguintes 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. Controller (Controlador) - Padrão bastante utilizado no MVC, no Servlet. O padrão controlador atribui a responsabilidade de manipular eventos do sistema para uma classe que não seja de interface do usuário (UI) que representa o cenário global ou cenário de caso de uso. Um objeto controlador é um objeto de interface não-usuário, responsável por receber ou manipular um evento do sistema. Atribuir a responsabilidade do tratamento de um evento do sistema a uma classe que representa uma das seguintes escolhas: Representa o ¿sistema¿ todo (controlador fachada) Representa um tratador oficial de todos os eventos de sistema de um caso de uso (controlador de caso de uso). 4a Questão 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 II, III e IV, apenas. I, II, III e IV. I e II, apenas. II e III, apenas. I, II e III, apenas. Respondido em 11/06/2019 23:26:31 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. 5a Questão (CESPE - 2010 - INMETRO) A coesão e o acoplamento são formas de se avaliar se a segmentação de um sistema em módulos ou em componentes foi eficiente. Acerca da aplicação desses princípios, assinale a opção correta. Um benefício da alta coesão é permitir realizar a manutenção em um módulo sem se preocupar com os detalhes internos dos demais módulos. Os componentes ou os módulos devem ser fortemente coesos e fracamente acoplados. O baixo acoplamento pode melhorar a manutebilidade dos sistemas, pois ele está associado à criação de módulos como se fossem caixas-pretas. A modularização do programa em partes especializadas pode aumentar a qualidade desses componentes, mas pode prejudicar o seu reaproveitamento em outros programas. Os componentes ou os módulos devem apresentar baixa coesão e um alto grau de acoplamento. Respondido em 11/06/2019 23:26:47 6a Questão Qual padrão GRASP tem como um de seus objetivos minimizar o impacto na camada de negócio referente às alterações nos requisitos da interface com o usuário? Alta Coesão Especialista da Informação Controlador Indireção Mediador Respondido em 11/06/2019 23:27:03 7a Questão O tipo tipos de coesão caracterizada quando um módulo executa um e somente um cálculo, e então retorna o resultado é chamada de: Funcional; Recursiva. Comucacional Paralela; Em Camada; Respondido em 11/06/2019 23:27:35 8a Questão Com relação aos padrões GRASP, Pressman (2006) explica que a coesão 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. Relacione os tipos de coesão com a sua real definição: 1- Ocorre quando um módulo executa um e somente um cálculo, e então retorna o resultado. 2- Todas as operações que tem acesso aos mesmos dados são definidas dentro de uma classe. 3- Ocorre quando uma camada de mais alto nível tem acesso a serviços de camadas mais baixas, mas camadas mais baixas, não tem acesso a camadas mais altas. 1- FUNCIONAL, 2- EM CAMADA, 3- COMUCACIONAL. 1- EM CAMADA, 2- FUNCIONAL, 3- COMUCACIONAL. 1- COMUCACIONAL, 2- EM CAMADA, 3- FUNCIONAL. 1- COMUCACIONAL, 2- FUNCIONAL, 3- EM CAMADA. 1- FUNCIONAL, 2- COMUCACIONAL, 3- EM CAMADA. 1a Questão O Paradigma Orientado a Objetos com os padrões de responsabilidades GRASP definem que a melhortécnica de programação POO é: Desenvolver as classes com a menor coesão e menor acoplamento possível. Desenvolver as classes com a maior coesão e menor acoplamento possível. Desenvolver as classes sem coesão e com acoplamento. Desenvolver as classes com a menor coesão e maior acoplamento possível. Desenvolver as classes com a maior coesão e maior acoplamento possível. Respondido em 11/06/2019 23:28:50 2a Questão Qual padrão GRASP é um padrão de projeto de delegação, o qual deve delegar a outros objetos o serviço que precisa ser feito? Criador; Controlador; Invenção pura; Coesão Alta; Variações protegidas; Respondido em 11/06/2019 23:29:18 Explicação: Essa resposta está correta, porque para Larman (2007) 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. 3a Questão São causas comuns de refactoring, exceto: Forte coesão Forte acoplamento Dependências de algoritmo Criação de objetos especificando diretamente uma classe concreta Dependência em operações específicas Respondido em 11/06/2019 23:29:30 4a Questão No padrão GRASP (General Responsability Assigment Software Patterns), a utilização do polimorfismo é recomendada para auxiliar a responder a duas perguntas. Uma delas é: Como tratar alternativas com base no tipo? Qual afirmativa abaixo se refere a primeira pergunta? I- Essa pergunta se refere à utilização de comandos condicionais (if-then-esle ou switch por exemplo). II- Essa pergunta se refere a, se surgir uma nova regra ou uma nova variação condicional, ela exigirá a modificação dos comandos, tornando difícil alterar e estender o programa. III- Essa pergunta se refere a relacionamentos do tipo cliente-servidor, não necessariamente aplicações em rede, mas com funcionalidades semelhantes, procurando destacar a importância de se projetar uma solução que permita alterar o servidor sem precisar modificar ou afetar a classe cliente. Est(á)ão correta(s) a(s) afirmativa(s): Somente os itens II e III; Somente os itens I e II; Somente o item I; Somente o item III; Somente o item II; Respondido em 11/06/2019 23:29:45 Explicação: O item III está INCORRETO porque ela se refere a segunda pergunta do padrão Polimorfismo, que é: Como criar componentes de software interconectáveis? 5a Questão Marque a alternativa que está relacionada com o padrão GRASP utilizado para conectar a camada de interface com o usuário e a camada de negócios da aplicação? Polimorfismo Coesão alta Baixo acoplamento Especialista da informação Controlador Respondido em 11/06/2019 23:30:01 Explicação: Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo Acoplamento (Acoplamento Fraco). Um controlador (controller) é 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. 6a Questão Num determinado setor de uma empresa fictícia existem 5 (cinco) funcionários contratados. Todos os funcionários são contratados com a mesma carga horária de trabalho prevista. Dois dos cinco funcionários produzem o triplo do que produzem os outros colegas de trabalho, pois além de concluir as tarefas diárias de sua própria responsabilidade, também executam as tarefas que não são concluídas pelos outros colegas. Ao final do expediente é possível observar que os dois funcionários que mais trabalham apresentam maior desgaste físico e mental, pois sempre ficam sobrecarregados com responsabilidades extras. Fazendo uma analogia com o cenário descrito acima, responda qual característica de Projeto O.O. explicaria a situação que ocorre quando uma má distribuição de responsabilidades entre 5 classes afeta a colaboração entre os objetos, concentrando responsabilidades demais em somente 2 dessas classes. Elevado Polimorfismo Baixo Encapsulamento Baixa Coesão Elevada Herança Elevado Acoplamento Respondido em 11/06/2019 23:30:15 7a Questão O General Responsability Assignment Software Pattener que define a responsabilidade: Comportamentos com o mesmo nome mas que fazem operações deferentes. Trata-se de? Polymorphis Information Expert Indirection Pure Fabrication High Coesion Respondido em 11/06/2019 23:30:29 Explicação: Polymorphism (Polimorfismo) - através de uma interface única, eu possa encapsular vários comportamentos. De acordo com o princípio do polimorfismo, a responsabilidade de definir a variação dos comportamentos com base no tipo é atribuída ao tipo para o qual essa variação ocorre. Isto é conseguido utilizando operações polimórficas. 8a Questão Considere a figura abaixo E escolha a opção correta sobre a gravura: 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...) 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 :???? Deveria estar incorporada na classe emprestar para evitar criar uma serie de novas classes. Isto facilita o projeto. 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 assinala como :???? É de baixo acoplamento e baixa coesão pela natureza de sua criação. 1a Questão O General Responsability Assignment Software Pattener que define a responsabilidade: Tudo que diz respeito a classe deve ser escrita nela é? High Coesion Creator Polymorphis Controller Low Coupling Respondido em 11/06/2019 23:31:13 Explicação: A Coesão é um padrão GRASP que pode ser baixa ou alta. A Coesão mede o quanto as responsabilidades de um elemento (classe, objeto, subsistema,¿) são fortemente relacionadas. O Objeto com Coesão Alta é um objeto cujas responsabilidades são altamente relacionadas e que não executa um volume muito grande de trabalho. A ideia consiste em que, é desejável, que eu tenha uma aplicação de baixo acoplamento e alta coesão. 2a Questão No padrão GRASP (General Responsability Assigment Software Patterns), a utilização do polimorfismo é recomendada para auxiliar a responder a duas perguntas. Uma delas é: Como criar componentes de software interconectáveis? Qual afirmativa abaixo se refere a essa pergunta? I- Essa pergunta se refere à utilização de comandos condicionais (if-then-esle ou switch por exemplo). II- Essa pergunta se refere a, se surgir uma nova regra ouuma nova variação condicional, ela exigirá a modificação dos comandos, tornando difícil alterar e estender o programa. III- Essa pergunta se refere a relacionamentos do tipo cliente-servidor, não necessariamente aplicações em rede, mas com funcionalidades semelhantes, procurando destacar a importância de se projetar uma solução que permita alterar o servidor sem precisar modificar ou afetar a classe cliente. Est(á)ão correta(s) a(s) afirmativa(s): Somente os itens II e III; Somente os itens I e II; Somente o item III; Somente o item I; Somente o item II; Respondido em 11/06/2019 23:31:29 Explicação: Os itens I e II estão INCORRETOS porque elas se referem a primeira pergunta do padrão Polimorfismo, que é: Como tratar alternativas com base no tipo? 3a Questão 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 vários métodos. Cada método deve ter uma estrutura IF...THEN...para cada situação. 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 uma estrutura de herança. Automaticamente fica definido uma estrutura de métodos. 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. Respondido em 11/06/2019 23:31:45 Explicação: Ideia do Polimorfismo: através de uma interface única, eu possa encapsular vários comportamentos. O Polimorfismo indica a capacidade de abstrair várias implementações diferentes em uma única interface. Existem dois grandes grupos de Polimorfismo. Um deles é sobecrever um método, ou seja, subscrever métodos com a mesma assinatura. Criaria uma classe ou interface superior, definiria por dentro o método, a classe que herda teria que ter a mesma assinatura, e a partir daí reescrever (overwrite) esse comportamento. O outro não é baseado na assinatura, mais sim na chamada, pelo número de parâmetros, ele poderia escolher. EX. usar em consultor, onde temos um construtor com um construtor com um parâmetro dois, três, diferenciados pela quantidade e/ou tipo de parâmetro, estudado em aulas de programação e linguagem. 4a Questão Qual padrão GRASP eu devo utilizar ara atender aos seguintes problemas: Como manter a complexidade sob controle? As classes são difíceis de compreender? As classes são difíceis de reutilizar? Criador; Especialista da Informação; High Cohesion (Coesão alta); Invenção Pura; Indireção; Respondido em 11/06/2019 23:32:08 Explicação: Essa resposta está CORRETA, porque a ideia deste padrão consiste em que, é desejável, que eu tenha uma aplicação de baixo acoplamento e alta coesão. Acoplamento fraco e alta coesão. A coesão 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. Além disso, esse padrão também serva para os seguintes problemas: as classes são difíceis de manter, e as classes são frágeis, sendo afetadas por praticamente todas as modificações. 5a Questão 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 e III, apenas. II, III e IV, apenas. II e III, apenas. I, II, III e IV. I e II, apenas. Respondido em 11/06/2019 23:32:24 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. 6a Questão Um padrão 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, 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. Dentre os conceitos abaixo, assinale aquele que complementa o objtivo deste padrão. ele coordena ou controla as classes; ele coordena ou controla as generalizações; ele coordena ou controla a atividade; ele coordena ou controla a recursividade; ele controla ou coordena os métodos; Respondido em 11/06/2019 23:32:46 Gabarito Coment. 7a Questão (FCC - 2012) O componente Controller do MVC: Responde às solicitações de queries e encapsula o estado da aplicação. Envia requisições do usuário para o controlador e recebe dados atualizados dos componentes de acesso a dados. Notifica os componentes de apresentação das mudanças efetuadas nos dados e expõe a funcionalidade da aplicação. É onde são concentradas todas as regras de negócio da aplicação e o acesso aos dados. Define o comportamento da aplicação, as ações do usuário para atualizar os componentes de dados e seleciona os componentes para exibir respostas de requisições.
Compartilhar