Questões de Concurso sobre Padrões de projeto - GRASP

 
 
Disciplina
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
19 questões encontradas
Questões por página
20
Mais recentes
 

Os Padrões de Projeto (Design Patterns) são soluções reutilizáveis para problemas comuns que ocorrem no design de software. A maioria das implementações práticas de princípios de design é feita principalmente usando um ou mais design patterns.


Com relação aos Design patterns e princípios de design, analise os itens a seguir:


I. Modelos de design e princípios SOLID são mutuamente exclusivos, pois podem ser usados simultaneamente para criar sistemas de software bem projetados, modulares e flexíveis.

II. Os princípios SOLID fornecem orientação para o design de classes e módulos individuais, ajudando a alcançar os objetivos de modularidade, extensibilidade e manutenção

III. Padrões de design oferecem soluções de nível mais avançado para organizar classes e objetos a fim de resolver problemas comuns de design fornecendo soluções reutilizáveis para desafios mais abstratos.


Está correto o que se afirma em


A

I, apenas.


B

II, apenas.


C

III, apenas.


D

I e II, apenas.


E

II e III, apenas.

Ano: 2026
Prova: FCC - ARTESP - Especialista em Regulação de Transporte I - Área Tecnologia da Informação - 2026

Uma agência reguladora de transporte intermunicipal precisa implementar um sistema de notificação que alerte diferentes órgãos fiscalizadores (Polícia Rodoviária, ANTT, Secretarias Municipais) sempre que uma infração grave for registrada. Cada órgão possui seu próprio formato de recebimento de notificações e pode ser adicionado ou removido dinamicamente do sistema conforme convênios estabelecidos. O especialista precisa escolher o padrão de projeto mais adequado para implementar esse mecanismo de notificação. Considerando as caracteristicas do problema apresentado, o padrão que melhor se aplica é:


A

Adapter, que converte a interface do sistema de infrações para formatos específicos exigidos por cada órgão fiscalizador, permitindo que componentes incompatíveis colaborem através de camada intermediária de adaptação, facilitando integração com sistemas legados mediante tradução transparente de estruturas de dados heterogêneas.


B

Observer, que estabelece relação um-para-muitos entre o objeto emissor de infrações e os órgãos observadores, permitindo que múltiplos fiscalizadores sejam notificados automaticamente quando houver mudança de estado no registro de infrações, mantendo baixo acoplamento entre notificador e destinatários através de interface comum de atualização.


C

Strategy, que encapsula diferentes algoritmos de notificação em classes separadas para cada órgão fiscalizador, possibilitando alternar dinamicamente entre estratégias de envio conforme características específicas de cada destinatário, mantendo flexibilidade na escolha do comportamento de notificação através de interface comum de execução.


D

Factory Method, que define interface para criação de objetos de notificação, delegando às subclasses concretas a decisão sobre qual tipo de notificação instanciar para cada órgão, promovendo extensibilidade ao adicionar novos fiscalizadores através de implementação de novas fábricas especializadas na geração de alertas personalizados.


E

Singleton, que garante a existência de instância única do gerenciador de notificações durante execução do sistema, centralizando controle de envio para todos os órgãos fiscalizadores através de ponto global de acesso, assegurando consistência na distribuição de alertas mediante coordenação centralizada das comunicações regulatórias.

Padrões de projeto (ou design patterns) são construções e soluções repetíveis e reutilizáveis para situações e problemas comuns, que visam melhorar a qualidade dos sistemas de software.


Com relação aos princípios SOLID e GRASP (General Responsibility Assignment Software Principles), analise os itens a seguir:


I. São conjuntos de princípios de design usados no desenvolvimento de software orientado a aspectos e à programação funcional.

II. SOLID é focado em tornar softwares mais escaláveis, testados e reutilizáveis.

III. GRASP oferece diretrizes para atribuição de responsabilidades, auxiliando na arquitetura e comunicação de decisões de design.


Está correto o que se afirma em


A

I, II e III.


B

I e II apenas.


C

II e III apenas.


D

I e III apenas.


E

III, apenas.

Os princípios GRASP (General Responsibility Assignment Software Patterns) são padrões de design de software orientados a objetos que servem como diretrizes para a atribuição de responsabilidades a classes e objetos.


Dentre os princípios GRASP podemos identificar os seguintes:


A

Baixo Acoplamento (Low Coupling, Proteção contra Variações (Protected Variations) e Responsabilidade única (Single Responsibility).


B

Alta Coesão (High Cohesion), Indireção (Indirection) e Substituição de Liskov (Controlador (Controller), Especialista na Informação (Information Expert) e Inversão da dependência (Dependency Inversion).).


C

Controlador (Controller), Especialista na Informação (Information Expert) e Inversão da dependência (Dependency Inversion).


D

Controlador (Controller), Criador (Creator) e Fabricação Pura/Pura Fabricação (Pure Fabrication).


E

Baixa Coesão (Low Cohesion), Indireção (Indirection) e Polimorfismo (Polymorphism).

Os padrões GRASP descrevem princípios fundamentais de design de objetos (OD) e atribuição de responsabilidades, que ajudam a entender a essência de OD. A atribuição de responsabilidades ocorre durante a criação dos diagramas de


A

caso de uso.


B

interação.


C

pacotes.


D

objetos.


E

dados.

Em determinado projeto de software orientado a objetos, um desenvolvedor deve implementar um sistema que proteja partes do código de variações e mudanças frequentes em outros componentes, mantendo um baixo acoplamento entre as classes. Ao mesmo tempo, deseja-se que módulos de alto nível não dependam diretamente de módulos de baixo nível, mas que ambos dependam de abstrações.


Nessa situação, o princípio de SOLID e o princípio de GRASP que atendem adequadamente aos requisitos mencionados são, respectivamente,


A

o princípio da substituição de Liskov e o princípio de indireção.


B

o princípio aberto-fechado e o princípio de alta coesão.


C

o princípio da inversão de dependência e o princípio de variações protegidas.


D

o princípio da responsabilidade única e o princípio especialista.


E

o princípio da segregação de interfaces e o princípio criador.

Os Padrões de Projetos são soluções reutilizáveis para problemas comuns no desenvolvimento de software orientado a objetos. Dois dos conjuntos mais influentes são os padrões GoF (Gang of Four) e os padrões GRASP (General Responsibility Assignment Software Patterns). Sabendo disso, assinale a alternativa que apresenta CORRETAMENTE a função do padrão GRASP "lndirection".


A

Responsável por gerenciar estados de objetos em um ambiente distribuído, garantindo sua sincronização em tempo real.


B

Utiliza um intermediário para desconectar classes que precisam se comunicar.


C

Envolve a criação de múltiplas instâncias de uma classe, garantindo que todas elas compartilhem o mesmo comportamento.


D

Permite que classes sejam totalmente isoladas e nunca se comuniquem entre si.


E

Serve para garantir que uma classe possa se comunicar diretamente com várias outras classes sem a necessidade de intermediários.

Princípios básicos de projetos são aplicados em projetos de desenvolvimento de componentes e refletem boas práticas de design desses componentes. Dentro dos diversos princípios existentes, o que orienta evitar a dependência de elementos concretos em prol de depender de abstrações é denominado princípio da


A

substituição de Liskov.


B

inversão de dependência.


C

segregação de interfaces.


D

reutilização.

Um desenvolvedor está trabalhando em um sistema onde o padrão Façade está sendo usado para encapsular como um conjunto de objetos interage de forma fracamente acoplada. Verificando as especificações, ele percebeu que esse padrão não atendia os requisitos do projeto, já que era necessário um comportamento cooperativo e um protocolo multidirecional, além de evitar que os objetos interagissem de forma explícita uns com os outros.


]Considerando-se esse contexto, o desenvolvedor deve corrigir o sistema implementando o padrão


A

Bridge


B

Composite


C

Decorator


D

Mediator


E

Strategy

Pedro está trabalhando em um projeto de software orientado a objetos e especificou a classe Manage Schedules Handler que representa um tratador artificial de todos os eventos de sistema referente ao caso de uso Gerenciar Horários.

Ao atribuir à classe Manage Schedules Handler essa responsabilidade, Pedro aplicou o princípio GRASP denominado


A

controller.


B

creator.


C

inheritance.


D

flyweight.


E

template method.

Padrões GRASP comunicam princípios fundamentais de atribuição de responsabilidades em um projeto orientado a objetos e oferecem soluções idiomáticas que guiam os projetistas na criação de software.


De acordo com esses padrões, um princípio fundamental, segundo o qual as responsabilidades são atribuídas em projetos orientado a objetos, é


A

atribuir responsabilidade de maneira que o acoplamento entre classes permaneça forte.


B

atribuir responsabilidade à classe que tem a informação necessária para satisfazer a responsabilidade.


C

atribuir responsabilidades de forma que a coesão das classes permanece baixa.


D

atribuir a responsabilidade do tratamento dos eventos de sistema de um mesmo caso de uso a múltiplas classes.


E

atribuir um conjunto de responsabilidades sem coesão a uma classe artificial para permitir a reutilização.

O padrão GRASP de Expert é utilizado para atribuir uma responsabilidade à classe que possui a informação necessária para atender essa mesma responsabilidade.


C

Certo


E

Errado

O GRASP (general responsibility assignment software patterns) define princípios básicos padrões de projetos orientados a objetos. Considere os seguintes questionamentos, feitos no âmbito de um sistema escolar onde se conhece a média total do resultado de um aluno.


• Para se conhecer a média total do resultado de um aluno, qual princípio vai se direcionar para encontrar a classe de objetos adequada para receber essa responsabilidade?

• Nesse caso, qual princípio GRASP procura identificar a classe de objetos que tem a informação necessária para a determinação da média?


Assinale a opção que apresenta o princípio GRASP presente nos referidos questionamentos.


A

especialista na informação (information expert)


B

acoplamento baixo (low coupling)


C

coesão alta (high cohesion)


D

controlador (controller)


E

criador (creator)

Aplicando-se o padrão de projetos especialista da informação da abordagem GRASP no desenvolvimento de software orientado a objetos, ficará claramente definida de quem é a responsabilidade pela criação de nova instância de uma classe.


C

Certo


E

Errado

A partir dos fundamentos da Engenharia de Software e dos padrões General Responsibility Assignment Software Patterns [or Principles] (GRASP), assinale a alternativa INCORRETA.


A

São exemplos de padrões GRASP: Factory Method, High Cohesion, Low Coupling, Polymorphism e Pure Fabrication.


B

Os padrões GRASP servem para a resolução de problemas comuns e típicos de desenvolvimento de software. Essas técnicas documentam e normatizam as práticas já conhecidas, consolidadas e testadas no mercado.


C

Os padrões GRASP visam descrever princípios de fundamental importância para a atribuição de responsabilidades em projetos de software não orientados a objetos.


D

Os padrões GRASP podem ser caracterizados como uma filosofia de design ou mesmo uma ferramenta mental que são úteis para o desenvolvimento e o aprendizado de um bom design de software.

 
 
Gerar simulado