Buscar

RESPOSTAS DO CHAT GPT

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 21 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 21 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 9, do total de 21 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

Prévia do material em texto

Sobre a gramática da linguagem de intercâmbio de dados JSON (JavaScript Object 
Notation), assinale a afirmativa correta. Os espaços em branco são proibidos entre qualquer 
par de tokens. Um objeto é um conjunto ordenado de pares nome-valor. Uma string é uma 
sequência de zero ou mais caracteres unicode envolto por aspas duplas. A ausência 
intencional de qualquer valor de objeto é representada com a palavra reservada undefined. 
Um valor numérico pode ser declarado em base decimal, octal ou hexadecimal. 
ChatGPT 
A afirmativa correta sobre a gramática da linguagem de intercâmbio de dados JSON 
(JavaScript Object Notation) é a seguinte: 
 Uma string é uma sequência de zero ou mais caracteres unicode envolto por aspas duplas. 
Explicação: Em JSON, uma string é uma sequência de caracteres unicode delimitada por 
aspas duplas. Ela pode ser vazia (zero caracteres) ou conter qualquer combinação de 
caracteres unicode, incluindo espaços em branco. Os espaços em branco não são proibidos 
entre os tokens em JSON. 
 
Os padrões da Web aos quais o AJAX está intimamente ligado são: o objeto 
XMLHttpResponse para recuperar dados de um servidor Web e a linguagem XML para 
formatar os dados o evento onreadystatechange para recuperar dados de um servidor Web 
e a linguagem XHTML para estruturar os dados os objetos onreadystatechange e 
XMLHttpResponse para recuperar dados de um servidor Web os objetos 
onreadystatechange e XMLHttpRequest para enviar dados para um servidor Web o objeto 
XMLHttpRequest para recuperar dados de um servidor Web e a linguagem JavaScript/DOM 
para exibir os dados 
ChatGPT 
A resposta correta é: 
 O objeto XMLHttpRequest para recuperar dados de um servidor Web e a linguagem 
JavaScript/DOM para exibir os dados. 
Explicação: O AJAX (Asynchronous JavaScript and XML) é uma técnica de desenvolvimento 
web que permite que os dados sejam recuperados de um servidor de forma assíncrona, 
sem a necessidade de recarregar a página inteira. O principal objeto utilizado para fazer 
requisições assíncronas é o XMLHttpRequest, que é suportado pelos navegadores 
modernos. A resposta do servidor pode ser formatada em diferentes formatos, como XML, 
JSON ou texto simples, mas o AJAX não está especificamente ligado à linguagem XML ou 
XHTML. O JavaScript é usado para manipular a resposta recebida e atualizar a página (ou 
parte dela) por meio do DOM (Document Object Model). 
 
Quando lidamos com SQL, temos comandos denominados DML, ou linguagem de 
manipulação de dados, como INSERT, UPDATE e DELETE, voltados para a manutenção dos 
dados presentes na tabela, e efetuamos consultas através do comando SELECT, talvez o 
mais relevante do SQL. Para executar comandos DML a partir de um Statement, qual 
método deveria ser utilizado para manipulação de dados? open. createStatement. 
executeQuery. getConnection. executeUpdate. 
ChatGPT 
Para executar comandos DML (Data Manipulation Language) a partir de um Statement no 
SQL, o método correto a ser utilizado para a manipulação de dados é o executeUpdate(). 
Explicação: O método executeUpdate() é usado para executar comandos DML, como 
INSERT, UPDATE e DELETE, que realizam alterações nos dados presentes em uma tabela. 
Esse método retorna o número de linhas afetadas pelas alterações feitas no banco de 
dados. Por outro lado, os métodos open(), createStatement(), executeQuery() e 
getConnection() têm finalidades diferentes: 
 open() não é um método padrão do JDBC (Java Database Connectivity) e não está 
diretamente relacionado à execução de comandos SQL. 
 createStatement() é usado para criar um objeto Statement, que permite executar 
comandos SQL. No entanto, para comandos DML, o método executeUpdate() deve ser 
usado em vez de executeQuery(). 
 executeQuery() é usado para executar comandos SELECT, que retornam um conjunto de 
resultados. Não é adequado para comandos DML. 
 getConnection() é usado para obter uma conexão com o banco de dados, mas não está 
diretamente relacionado à execução de comandos SQL. 
 
Observe a linha de comando a seguir. Statement st = 
Conexao.getConection().createStatement(); Indique qual deve ser o comando seguinte: 
ResultSet rs = st.executeUpdate("select * from ALUNOS"); ResultSet rs = 
st.executeQuery("select * from ALUNOS"); List< Aluno > ls = st.executeQuery("select * from 
ALUNOS"); List ls = st().executeUpdate("select * from ALUNOS"); List< Aluno > ls = 
st.prepareStatement("select * from ALUNOS"); 
ChatGPT 
O comando seguinte correto seria: 
javaCopy code 
ResultSet rs = st.executeQuery( "select * from ALUNOS" ); 
Explicação: 
A linha de comando Statement st = Conexao.getConnection().createStatement(); cria 
um objeto Statement chamado st usando o método createStatement() de um objeto de 
conexão. 
Para executar uma consulta SQL e obter um conjunto de resultados, o método apropriado é 
executeQuery(). Portanto, a opção correta é ResultSet rs = st.executeQuery("select 
* from ALUNOS");, onde rs é o objeto ResultSet que irá armazenar os resultados da 
consulta. 
As outras opções não estão corretas: 
 st.executeUpdate("select * from ALUNOS"); está usando o método executeUpdate(), 
que é usado para executar comandos DML (INSERT, UPDATE, DELETE) que não retornam 
um conjunto de resultados. No entanto, está sendo usado erroneamente para uma consulta 
SELECT. 
 List<Aluno> ls = st.executeQuery("select * from ALUNOS"); está correto em relação 
ao método executeQuery(), mas o tipo de retorno está incorreto. executeQuery() retorna 
um objeto ResultSet e não uma lista de objetos Aluno. 
 List ls = st().executeUpdate("select * from ALUNOS"); está incorreto porque está 
usando executeUpdate() de forma incorreta e não está especificando o tipo de lista a ser 
retornada. 
 List<Aluno> ls = st.prepareStatement("select * from ALUNOS"); está incorreto 
porque está usando prepareStatement() em vez de executeQuery(), o que não é a 
abordagem correta para executar uma consulta direta. 
 
No framework Spring temos um núcleo de execução, também denominado contêiner, que 
é organizado em cinco módulos principais, os quais englobam conjuntos de 
funcionalidades necessárias para a implementação de sistemas, como a recepção de 
mensagens a partir de uma mensageria. Em qual dos módulos temos a API necessária para 
a recepção dessas mensagens? AOP e Instrumentação Web Data Access / Integration Core 
Container Test 
ChatGPT 
No framework Spring, a API necessária para a recepção de mensagens a partir de uma 
mensageria é encontrada no módulo "Core Container" (Contêiner Principal). 
Explicação: O módulo "Core Container" do Spring Framework fornece a base do contêiner 
de execução, que é responsável pela criação, configuração e gerenciamento dos objetos no 
contexto do Spring. Ele inclui recursos fundamentais, como a inversão de controle (IoC) e a 
injeção de dependência (DI). No contexto da recepção de mensagens de uma mensageria, 
o módulo "Core Container" disponibiliza recursos para o tratamento e processamento 
dessas mensagens, como a definição e configuração de beans especializados para o 
consumo de mensagens e a integração com adaptadores e conectores para diferentes 
sistemas de mensageria. 
Os outros módulos mencionados têm as seguintes finalidades: 
 "AOP e Instrumentação" (Aspect-Oriented Programming e Instrumentation) fornecem 
recursos para a implementação e aplicação de aspectos no Spring, que permitem a 
separação de preocupações e a modularização de funcionalidades transversais. 
 "Web" fornece recursos para o desenvolvimento de aplicativos web no Spring, incluindo 
suporte para controle de requisições, gerenciamento de sessões, integração com 
frameworks web, entre outros. 
 "Data Access / Integration" oferece recursos para acesso a dados e integração com 
sistemas de armazenamento de dados, como bancos de dados relacionais, bancos de 
dados NoSQL, serviços web, entre outros. 
 "Test" contém recursos eferramentas para testes unitários e de integração em projetos 
Spring, como anotações para criação de testes, suporte para mock objects, entre outros. 
 
Você foi contratado para criar um sistema baseado no framework Spring, em substituição 
ao sistema atual, construído em PHP, e precisa manter plena compatibilidade com o 
modelo de comunicação original, onde os dados são enviados a partir de formulários 
HTML. Qual anotação deverá ser utilizada para recuperar os dados de cada um dos campos 
de entrada do formulário, ao nível do controlador Spring? RequestParam Transactional 
RequestMapping Autowired PathVariable 
ChatGPT 
A anotação que deve ser utilizada para recuperar os dados de cada um dos campos de 
entrada do formulário ao nível do controlador Spring é a anotação @RequestParam. 
Explicação: A anotação @RequestParam é usada em um método de um controlador Spring 
para vincular um parâmetro da solicitação HTTP a um parâmetro do método. Quando 
aplicada a um parâmetro de método, a anotação @RequestParam indica ao Spring que o 
valor desse parâmetro deve ser extraído dos parâmetros da solicitação HTTP, que 
normalmente são enviados a partir de formulários HTML. 
Ao usar @RequestParam, você pode especificar o nome do parâmetro esperado na 
solicitação HTTP. Por exemplo: 
javaCopy code 
@PostMapping("/submit-form") public String submitForm(@RequestParam("nome") String nome, 
@RequestParam("idade") int idade) { // Lógica do controlador return "success" ; } 
Neste exemplo, os valores dos campos "nome" e "idade" do formulário HTML são 
recuperados e vinculados aos parâmetros nome e idade do método submitForm no 
controlador Spring. 
As outras anotações mencionadas têm as seguintes finalidades: 
 @Transactional é usada para definir o escopo transacional de um método ou de uma 
classe. 
 @RequestMapping é usada para mapear uma solicitação HTTP para um método de um 
controlador Spring. Ela define a rota ou URL a ser associada ao método. 
 @Autowired é usada para realizar a injeção de dependência automaticamente em um 
objeto, permitindo que o Spring resolva e forneça as dependências necessárias. 
 @PathVariable é usada para mapear uma parte da URL da solicitação HTTP a um 
parâmetro de método em um controlador Spring. 
 
Existem dois tipos principais de comunicação em redes: comunicação síncrona e 
comunicação assíncrona. Considerando a comunicação assíncrona entre sistemas (com o 
uso de uma message broker), assinale a alternativa verdadeira: A comunicação assíncrona é 
feita somente sem a utilização do message broker, pois o mesmo serve para intermediar 
mensagens síncronas. O message broker deve conhecer e ser implementado com ambas as 
tecnologias de desenvolvimento do produtor e consumidor de mensagens. Na 
comunicação assíncrona, o consumidor da mensagem deve aguardar o processamento do 
produtor da mensagem para responder à mensagem. Se um serviço quer enviar uma 
mensagem para ser consumida por outro serviço, esta mensagem irá inicialmente para o 
message broker. Na comunicação assíncrona, as tecnologias de desenvolvimento dos 
componentes do produtor de mensagens e do consumidor de mensagens deve ser a 
mesma. 
ChatGPT 
A alternativa verdadeira é: 
 Se um serviço quer enviar uma mensagem para ser consumida por outro serviço, esta 
mensagem irá inicialmente para o message broker. 
Explicação: Na comunicação assíncrona utilizando um message broker, o produtor de 
mensagens envia a mensagem para o message broker, que atua como intermediário. O 
message broker é responsável por receber, armazenar e rotear as mensagens para os 
consumidores adequados. O produtor e o consumidor não se comunicam diretamente 
entre si, mas sim através do message broker. Quando o consumidor está pronto para 
processar a mensagem, ele a recebe do message broker. 
As outras alternativas são incorretas: 
 A comunicação assíncrona pode ser feita com o uso de um message broker. O message 
broker desempenha um papel fundamental na comunicação assíncrona, permitindo o envio 
e o roteamento eficiente de mensagens assíncronas entre os sistemas. 
 Na comunicação assíncrona, o consumidor da mensagem não precisa aguardar o 
processamento do produtor para responder à mensagem. A comunicação assíncrona 
permite que o consumidor processe a mensagem de forma independente do produtor, sem 
esperar por uma resposta imediata. 
 O message broker não requer que as tecnologias de desenvolvimento dos componentes do 
produtor e do consumidor de mensagens sejam as mesmas. O message broker pode ser 
implementado para lidar com diferentes tecnologias e formatos de mensagens, 
proporcionando a interoperabilidade entre sistemas heterogêneos. 
 
Um Message Broker é uma solução inteligente que fornece mecanismos para que 
aplicativos possam se comunicar de forma assíncrona. Considerando o serviço de 
mensageria, apresente uma característica do Message Broker: É um servidor que serve para 
processar e suportar o envio, recebimento e redirecionamento das mensagens trocadas 
pelos sistemas de software. É o local onde as mensagens não entregues são colocadas para 
serem tratadas posteriormente. Comumente implementado em Python, dá suporte 
principalmente ao protocolo JMS. Pode ser desenvolvimento em diversas linguagens de 
programação, mas somente implementa um protocolo de comunicação. Geralmente 
implementado com dois servidores: o primeiro que implementa uma exchange e o 
segundo servidor que implementa e instancia as filas. 
ChatGPT 
A característica correta do Message Broker é: 
 É um servidor que serve para processar e suportar o envio, recebimento e 
redirecionamento das mensagens trocadas pelos sistemas de software. 
Explicação: O Message Broker é um componente central que atua como um intermediário 
entre os sistemas de software que se comunicam de forma assíncrona. Ele é responsável 
por processar e suportar o envio, recebimento e redirecionamento das mensagens. O 
Message Broker gerencia as filas, as trocas de mensagens, os tópicos e outros mecanismos 
de roteamento e entrega, garantindo que as mensagens sejam entregues aos destinatários 
corretos de acordo com as regras de roteamento definidas. 
As outras opções são incorretas: 
 O local onde as mensagens não entregues são colocadas para serem tratadas 
posteriormente é conhecido como dead-letter queue (fila de mensagens não entregues). 
Não é uma característica específica do Message Broker, mas sim um recurso adicional que 
pode ser implementado em um Message Broker. 
 O Message Broker não é comumente implementado em Python e não é exclusivo para dar 
suporte ao protocolo JMS (Java Message Service). Existem diversas implementações de 
Message Broker em diferentes linguagens de programação e com suporte a vários 
protocolos de comunicação, além do JMS. 
 O Message Broker pode ser desenvolvido em diversas linguagens de programação e não se 
limita a apenas implementar um protocolo de comunicação. Ele é responsável por fornecer 
funcionalidades avançadas, como roteamento de mensagens, filtragem, transformação de 
dados, garantia de entrega e escalabilidade, independentemente da linguagem de 
programação utilizada na implementação. 
 Não é necessário que o Message Broker seja implementado com dois servidores distintos. 
A arquitetura e a implementação do Message Broker podem variar, mas não é uma prática 
comum ter um servidor específico para a exchange e outro servidor para as filas. Em muitas 
implementações, todas as funcionalidades são fornecidas por um único servidor de 
Message Broker. 
 
O REST (REpresentaional State Transfer) é um estilo de web service muito utilizado devido à 
sua flexibilidade e simplicidade. Um dos conceitos importantes para trabalhar com REST é a 
utilização correta dos verbos HTML. São exemplos de verbos HTML: SELECT e UPDATE 
SELECT e PUT GET e PUT GET e UPDATE PUT e UPDATE 
ChatGPT 
Os exemplos corretos de verbos HTTP utilizadosem REST são: 
 GET e PUT 
Explicação: O protocolo HTTP é usado como base para comunicação em serviços RESTful. O 
REST utiliza os verbos HTTP para definir as ações a serem realizadas em recursos. Os dois 
verbos mais comuns utilizados em REST são: 
 GET: Utilizado para recuperar informações de um recurso específico. É usado para obter 
dados, sem alterar o estado do recurso no servidor. 
 PUT: Utilizado para atualizar um recurso existente. É usado para substituir completamente 
os dados de um recurso com os novos dados fornecidos. 
Os outros exemplos fornecidos estão incorretos: 
 SELECT e UPDATE: "SELECT" não é um verbo HTTP válido, e "UPDATE" não é comumente 
utilizado em REST. Em vez disso, o verbo HTTP equivalente para atualização em REST é o 
PUT. 
 SELECT e PUT: "SELECT" não é um verbo HTTP válido em REST. O verbo correto para 
recuperar informações de um recurso é o GET. 
 GET e UPDATE: O verbo HTTP equivalente para atualização em REST é o PUT, não o 
UPDATE. 
 PUT e UPDATE: O verbo HTTP equivalente para atualização em REST é o PUT, não o 
UPDATE. Além disso, "UPDATE" não é um verbo HTTP válido. 
 
Um serviço REST usualmente suporta mais de um formato para representação de seus 
recursos, sendo esta uma de suas características principais, já que facilita a inclusão de 
novos clientes e a interoperabilidade entre os projetos. Assinale a alternativa que apresenta 
somente formatos utilizados por um serviço REST. YAML e JSON. XML e C++. JAVA, RUBY 
ON REALS e .NET. JSON, CSS e SQL. JAVA e JAVASCRIPT. 
ChatGPT 
A alternativa correta que apresenta somente formatos utilizados por um serviço REST é: 
 YAML e JSON. 
Explicação: Um serviço REST pode suportar vários formatos para a representação dos 
recursos. Os formatos mais comuns usados em serviços RESTful são: 
 YAML: É um formato de serialização de dados legível por humanos e geralmente é utilizado 
para configuração ou troca de dados estruturados. 
 JSON: É um formato leve e amplamente utilizado para a representação de dados 
estruturados. É amplamente suportado por diferentes linguagens de programação e é o 
formato de escolha para muitos serviços REST. 
As outras alternativas são incorretas: 
 XML e C++: XML é um formato comumente usado para representar dados estruturados, 
mas C++ é uma linguagem de programação e não um formato de representação de dados. 
 JAVA, RUBY ON REALS e .NET: JAVA, Ruby on Rails e .NET são frameworks e tecnologias de 
desenvolvimento de software, não formatos de representação de dados. 
 JSON, CSS e SQL: JSON é um formato de representação de dados estruturados. CSS é uma 
linguagem de estilo utilizada para definir a apresentação visual de documentos HTML. SQL 
é uma linguagem de consulta para bancos de dados relacionais. Embora possam ser usados 
em conjunto com serviços REST, eles não são formatos exclusivos utilizados por um serviço 
REST. 
 JAVA e JAVASCRIPT: JAVA e JavaScript são linguagens de programação, não formatos de 
representação de dados. 
 
O Framework para Linha de Produto de Software (LPS) é uma estrutura para engenharia do 
produto na qual fazem parte todos os conceitos centrais da engenharia de LPS, com o uso 
de plataformas que oferece a capacidade de fornecer personalização em massa. Dois 
processos compõem esse framework e um deles é a Engenharia de Domínio. Assinale a 
alternativa a seguir que descreve a finalidade deste processo: Responsável por estabelecer 
uma comunicação efetiva entre cliente e desenvolvedores Responsável por estabelecer o 
domínio de negócio de cada cliente, para decidir qual produto é o mais adequado 
Responsável por definir quais módulos do produto serão implantados em cada cliente, de 
acordo com suas demandas Responsável por estabelecer a plataforma de reutilização 
definindo o que é comum e o que é variável da linha de produtos Responsável por escolher 
qual ferramenta será utilizada para a modelagem do produto 
ChatGPT 
A alternativa correta que descreve a finalidade do processo de Engenharia de Domínio em 
um Framework para Linha de Produto de Software (LPS) é: 
 Responsável por estabelecer a plataforma de reutilização definindo o que é comum e o que 
é variável da linha de produtos. 
Explicação: A Engenharia de Domínio em um LPS é o processo responsável por identificar e 
definir os elementos essenciais do domínio de aplicação do produto, estabelecendo a 
plataforma de reutilização. Isso envolve identificar as características comuns, os requisitos e 
os componentes reutilizáveis que serão utilizados para construir diferentes produtos da 
linha. A Engenharia de Domínio define o que é fixo (comum) e o que é variável na linha de 
produtos, permitindo personalização em massa ao adaptar o produto para diferentes 
necessidades dos clientes. 
As outras alternativas são incorretas: 
 A Engenharia de Domínio não é responsável por estabelecer uma comunicação efetiva 
entre cliente e desenvolvedores. Embora a comunicação seja importante no processo de 
desenvolvimento de LPS, não é a finalidade específica da Engenharia de Domínio. 
 A Engenharia de Domínio não decide qual produto é o mais adequado para cada cliente. 
Essa decisão é tomada com base nos requisitos e necessidades dos clientes, que são 
considerados na fase de Engenharia de Aplicação, após a definição do domínio. 
 A Engenharia de Domínio não define quais módulos do produto serão implantados em 
cada cliente. Essa decisão é tomada na fase de Engenharia de Aplicação, onde os requisitos 
específicos de cada cliente são considerados. 
 A Engenharia de Domínio não é responsável por escolher a ferramenta de modelagem do 
produto. A escolha da ferramenta é feita no contexto da Engenharia de Aplicação ou do 
desenvolvimento do produto em si. 
 
Uma das 3 atividades essenciais da Engenharia da Linha de Produto de Software é a: Core 
Asset Development (Desenvolvimento de Ativos Principais). Nesse contexto, analise as 
afirmativas a seguir: I. Nessa atividade essencial não há um momento definido para se 
adicionar uma restrição ou novos padrões no desenvolvimento da LPS II. São exemplos de 
ativos-base dessa atividade: a arquitetura e sua documentação, especificações, 
componentes de software, cronogramas e planos de teste III. Um ativo-base pode ser 
construído para ser utilizado integralmente em todos os produtos IV. Adaptações não são 
aceitas nessa atividade para tornar o ativo-base mais utilizáveis em uma linha de produtos 
Assinale a alternativa correta: Apenas as afirmações I, II e III estão corretas Apenas as 
afirmações II e IV estão corretas Apenas as afirmações III e IV estão corretas Apenas as 
afirmações II e III estão corretas Apenas as afirmações I e II estão corretas 
ChatGPT 
A alternativa correta é: 
 Apenas as afirmações II e III estão corretas. 
Explicação: 
I. A afirmação I está incorreta. No desenvolvimento de ativos principais em uma Engenharia 
de Linha de Produto de Software (LPS), é importante considerar restrições e padrões ao 
longo de todo o processo de desenvolvimento. Essas restrições e padrões podem ser 
adicionados em diferentes momentos, conforme necessário. 
II. A afirmação II está correta. Os exemplos mencionados são exemplos comuns de ativos-
base desenvolvidos na atividade de Desenvolvimento de Ativos Principais em uma LPS. 
Esses ativos incluem a arquitetura e sua documentação, especificações, componentes de 
software, cronogramas e planos de teste. 
III. A afirmação III está correta. Um ativo-base pode ser construído para ser utilizado 
integralmente em todos os produtos de uma linha de produtos. Isso permite reutilização 
eficiente e consistência nos produtos desenvolvidos. 
IV. A afirmação IV está incorreta. Adaptações podem ser necessárias na atividade de 
Desenvolvimento de Ativos Principais para tornar os ativos-base mais utilizáveis em uma 
linha de produtos. Essas adaptações podem envolver personalizações, configurações e 
variações para atenderàs necessidades específicas de diferentes produtos na linha. 
Portanto, apenas as afirmações II e III estão corretas. 
 
O Framework para Linha de Produto de Software (LPS) é uma estrutura para engenharia do 
produto na qual fazem parte todos os conceitos centrais da engenharia de LPS, com o uso 
de plataformas que oferece a capacidade de fornecer personalização em massa. Dois 
processos compõem esse Framework e um deles é a Engenharia de Aplicação, que dentro 
dele outros subprocessos são realizados. A seguir, são apresentados os subprocessos. 
Relacione a primeira coluna com a segunda, indicando a descrição correta de cada 
subprocesso: Coluna 1 Coluna 2 A - Engenharia de Requisitos de Aplicação B - Projeto de 
Aplicação C - Realização da Aplicação D - Teste da Aplicação ( ) engloba todas as atividades 
para o desenvolvimento da especificação de requisitos de aplicação ( ) cria a aplicação em 
questão ( ) envolve as atividades para produzir a arquitetura do aplicativo ( ) compreende 
as atividades necessárias para validar e verificar um aplicativo em relação à sua 
especificação Assinale a alternativa correta, que indica a sequência de letras da Coluna 2, de 
acordo com correta descrição dos subprocessos da coluna 1: A - C - B - D A - B - C - D A - 
C - D - B C - A - E - D C - B - A - D 
ChatGPT 
A sequência correta que relaciona os subprocessos da Coluna 1 com suas descrições 
correspondentes na Coluna 2 é: 
A - Engenharia de Requisitos de Aplicação - engloba todas as atividades para o 
desenvolvimento da especificação de requisitos de aplicação B - Projeto de Aplicação - 
envolve as atividades para produzir a arquitetura do aplicativo C - Realização da Aplicação - 
cria a aplicação em questão D - Teste da Aplicação - compreende as atividades necessárias 
para validar e verificar um aplicativo em relação à sua especificação 
Portanto, a alternativa correta é: 
A - C - B - D 
 
Cada sub processo da engenharia de aplicação deve refinar a variabilidade encontrada em 
fases mais iniciais do desenvolvimento, a partir da referencia à variabilidade introduzida 
pelos sub processos correspondentes da engenharia de domínio. O objetivo é a garantia de 
que os requisitos variáveis sejam corretamente construídos. É correto afirmar que: 
Resolução de ligação é o nome que se dá a esse mecanismo e o momento em que é 
executada é frequentemente nomeado de tempo de refino da variabilidade. Resolução de 
similaridade é o nome que se dá a esse mecanismo e o momento em que é executada é 
frequentemente nomeado de tempo de ligação da variabilidade. Dissolução de 
variabilidade é o nome que se dá a esse mecanismo e o momento em que é executada é 
frequentemente nomeado de tempo de resolução da similaridade. Resolução de 
variabilidade é o nome que se dá a esse mecanismo e o momento em que é executada é 
frequentemente nomeado de tempo de otimização da variabilidade. Resolução de 
variabilidade é o nome que se dá a esse mecanismo e o momento em que é executado é 
frequentemente nomeado de tempo de ligação da variabilidade. 
ChatGPT 
A afirmativa correta é: 
Resolução de variabilidade é o nome que se dá a esse mecanismo e o momento em que é 
executado é frequentemente nomeado de tempo de ligação da variabilidade. 
Explicação: 
A resolução de variabilidade é o mecanismo utilizado para refinar a variabilidade 
identificada durante a engenharia de domínio nos sub processos da engenharia de 
aplicação. Esse mecanismo é responsável por garantir que os requisitos variáveis sejam 
corretamente construídos. O momento em que a resolução de variabilidade é executada é 
comumente chamado de tempo de ligação da variabilidade, pois é quando ocorre a 
conexão entre as decisões de variabilidade tomadas na engenharia de domínio e sua 
implementação na engenharia de aplicação. 
 
No mundo real, variabilidade significa a capacidade de mudança que as coisas possuem. Na 
ELPS a variabilidade esta intrinsicamente relacionada à possibilidade de reuso de artefatos 
nas diversas aplicações de uma mesma linha de produtos. Assinale a alternativa que 
relaciona corretamente os conceitos do mundo real com os da ELPS: Um sujeito de 
variabilidade do mundo real relaciona-se com o conceito de objeto de variabilidade na 
ELPS. Um sujeito de variabilidade do mundo real relaciona-se com o conceito de ponto de 
variação na ELPS. Um sujeito de variabilidade do mundo real relaciona-se com o conceito 
de variante na ELPS. Um ponto de variabilidade do mundo real relaciona-se com o conceito 
de objeto de variabilidade na ELPS. Uma variante do mundo real relaciona-se com o 
conceito de variante na ELPS. 
ChatGPT 
A alternativa correta é: 
Um sujeito de variabilidade do mundo real relaciona-se com o conceito de ponto de 
variação na ELPS. 
Explicação: 
Na Engenharia de Linha de Produto de Software (ELPS), um ponto de variação representa 
uma possibilidade de escolha ou variação em um sistema de software. É onde ocorre a 
variabilidade, ou seja, a capacidade de adaptar o software para diferentes requisitos ou 
cenários. No mundo real, um sujeito de variabilidade se relaciona com o conceito de ponto 
de variação na ELPS, pois ambos representam a possibilidade de mudança ou escolha em 
um determinado contexto. 
 
Interfaces são muito utilizadas na implementação de variabilidade, e o projeto de uma 
interface é afetado pelos tipos de variabilidade que deve estar presente nos componentes 
conectados à interface, quer sejam fornecedores ou usuários. Tem efeito no projeto de uma 
interface: Variabilidade em Recursos, que significa que a mesma interface pode ser 
implementada de diferentes maneiras, por diferentes métodos dos objetos das classes. 
Variabilidade em Algoritmos ou Protocolos, que significa que componentes diferentes 
lidam com o mesmo tipo de funcionalidade, mas podem fornecer ou usar quantidades 
diferentes de determinados recursos. Variabilidade em Recursos, que significa que a 
variabilidade está relacionada à configuração do aplicativo, incluindo diferenças de 
hardware e software. Variabilidade em Algoritmos ou Protocolos, que significa que a 
variabilidade está relacionada à configuração do aplicativo, incluindo diferenças de 
hardware e software. Variabilidade na Configuração da Aplicação, que significa que a 
variabilidade está relacionada à configuração do aplicativo, incluindo diferenças de 
hardware e software. 
ChatGPT 
A alternativa correta é: 
Variabilidade em Algoritmos ou Protocolos, que significa que componentes diferentes 
lidam com o mesmo tipo de funcionalidade, mas podem fornecer ou usar quantidades 
diferentes de determinados recursos. 
Explicação: 
A variabilidade em algoritmos ou protocolos refere-se ao fato de que diferentes 
componentes podem lidar com a mesma funcionalidade, mas de maneiras diferentes. Isso 
significa que diferentes implementações de uma interface podem ter algoritmos ou 
protocolos distintos para realizar a mesma tarefa, ou podem fornecer ou usar quantidades 
diferentes de recursos específicos. A variabilidade em algoritmos ou protocolos tem um 
efeito no projeto de uma interface, pois as diferentes implementações podem exigir 
considerações específicas para garantir a interoperabilidade entre os componentes 
conectados a essa interface. 
 
A validação dos artefatos de realização é o foco principal do teste de domínio, e a definição 
de casos de teste é baseada nas entradas oriundas de subprocessos com os quais o teste 
de domínio se relaciona, e visa estabelecer um processo de teste geral eficiente. Neste 
contexto, assinale a alternativa que apresenta uma afirmação correta: No teste de aplicação, 
o MOV é usado para derivar artefatos de teste para os artefatos de domínio. A separação 
entre engenharia de domínio e engenharia de aplicação e a presença de variabilidade 
devem ser tratadas adequadamente pelo teste de domínio, sendo o seu principal desafio. A 
variabilidade da linha de produtose sua relação com os artefatos de domínio são 
documentadas no MOV durante a realização da aplicação. Durante a engenharia de 
domínio são projetados os artefatos variáveis pertencentes a apenas uma ou algumas 
aplicações. Durante a engenharia de domínio são projetados os componentes que são 
necessários apenas para uma aplicação específica. 
ChatGPT 
A alternativa correta é: 
A separação entre engenharia de domínio e engenharia de aplicação e a presença de 
variabilidade devem ser tratadas adequadamente pelo teste de domínio, sendo o seu 
principal desafio. 
Explicação: 
O teste de domínio é responsável pela validação dos artefatos de realização no contexto da 
engenharia de domínio. Uma das principais características da engenharia de domínio é a 
presença de variabilidade, que permite a personalização dos produtos de uma linha de 
produtos de software. O teste de domínio precisa abordar adequadamente essa separação 
entre engenharia de domínio e engenharia de aplicação, bem como lidar com os desafios 
associados à variabilidade. Portanto, a correta afirmação é que a separação entre 
engenharia de domínio e engenharia de aplicação e a presença de variabilidade devem ser 
tratadas adequadamente pelo teste de domínio, sendo o seu principal desafio. 
 
O teste de software é o processo de descoberta de defeitos em sistemas de software, 
sendo também um processo de garantia de qualidade. Deve ser realizado antes da entrega 
de um aplicativo e os defeitos detectados nos testes são reportados à equipe de 
desenvolvimento responsável. Em relação aos testes de software, de domínio e de 
aplicação é correto afirmar: O teste de aplicação cria artefatos de teste reutilizáveis para o 
teste de domínio. Não é possível a reutilização de artefatos de teste de domínio pelo teste 
de aplicativos para a descoberta de defeitos nos aplicativos da linha de produtos, devido à 
especificidade dos componentes. O teste de software inclui depuração e correção de bugs. 
O teste de aplicação descobre a evidência de defeitos em artefatos de domínio. O teste de 
domínio lida com componentes reutilizáveis, enquanto o teste de aplicação lida com 
aplicativos completos. 
ChatGPT 
A afirmação correta é: 
O teste de software inclui depuração e correção de bugs. 
Explicação: 
O teste de software é o processo de descoberta de defeitos em sistemas de software, e faz 
parte do processo de garantia de qualidade. Além de identificar defeitos, o teste de 
software também envolve a depuração e correção desses bugs encontrados. Portanto, o 
teste de software não se limita apenas à descoberta de defeitos, mas também inclui a 
atividade de depuração e correção dos bugs identificados durante o processo de teste. 
As demais afirmações são incorretas: 
 O teste de aplicação não cria artefatos de teste reutilizáveis para o teste de domínio. Cada 
tipo de teste tem seus próprios artefatos e abordagens específicas. 
 A reutilização de artefatos de teste de domínio pelo teste de aplicativos é possível e 
desejável para otimizar o processo de teste. 
 O teste de aplicação não descobre evidências de defeitos em artefatos de domínio. O teste 
de aplicação concentra-se nos aplicativos específicos da linha de produtos, enquanto o 
teste de domínio lida com a variabilidade e os componentes reutilizáveis. 
 Embora o teste de domínio lide com componentes reutilizáveis, o teste de aplicação não se 
limita apenas aos aplicativos completos, mas também pode lidar com componentes 
específicos dentro de um contexto de aplicativo. 
 
A análise de delta tem por objetivo apoiar a decisão dos stakeholders, que definirá se os 
deltas serão ou não realizados na aplicação. Nesse sentido, marque a alternativa correta: A 
introdução de um novo ponto de variação deve ser realizada no caso de delta devido a 
parte da variabilidade externa existente que deve ser modificada Existem três tipos de 
deltas, e um dos tipos é aquele relacionado à parte da variabilidade externa que deve ser 
modificada Uma parte invariável tem que ser transformada em uma parte variável, isso 
pode ser feito pela definição de uma nova variante Uma nova variante deve ser adicionada, 
ou uma variabilidade ou dependência de restrição deve ser modificada no caso do delta 
devido a parte da variabilidade externa existente que deve ser modificada Os deltas do 
modelo de variabilidade são similaridades entre o modelo de variabilidade de domínio e o 
modelo de variabilidade de aplicação 
ChatGPT 
A alternativa correta é: 
Uma nova variante deve ser adicionada, ou uma variabilidade ou dependência de restrição 
deve ser modificada no caso do delta devido a parte da variabilidade externa existente que 
deve ser modificada. 
Explicação: 
A análise de delta envolve a decisão de quais modificações devem ser feitas na aplicação 
em relação à variabilidade existente. Essas modificações podem envolver a adição de novas 
variantes, a modificação de variabilidades ou dependências de restrição, entre outros. O 
objetivo é avaliar os impactos das mudanças propostas e decidir se elas devem ser 
realizadas na aplicação. 
As demais alternativas são incorretas: 
 A introdução de um novo ponto de variação não é necessariamente um requisito para o 
delta. O delta pode envolver várias formas de modificação, além da introdução de novos 
pontos de variação. 
 Não existem três tipos específicos de deltas definidos. O delta refere-se à modificação ou 
adição de variabilidades existentes. 
 Transformar uma parte invariável em uma parte variável é uma ação específica de 
modificação no contexto da variabilidade, mas não é uma definição geral de delta. 
 Os deltas não são necessariamente similaridades entre o modelo de variabilidade de 
domínio e o modelo de variabilidade de aplicação. Eles envolvem modificações específicas 
na variabilidade existente. 
 
Todos os requisitos de aplicação são definidos na especificação de requisitos do aplicativo, 
subprocesso base para os outros subprocessos de engenharia de aplicação. Em relação ao 
que a especificação de requisitos de aplicação inclui, marque a alternativa correta Os deltas 
de requisitos contêm todos os artefatos de requisitos que são reutilizados do domínio O 
modelo de variabilidade de aplicação consiste nas semelhanças e pontos de variação 
vinculados A relação dos artefatos de requisitos de aplicação com as variantes selecionadas 
no modelo de variabilidade do aplicativo captura a rastreabilidade entre os requisitos e as 
variantes selecionadas para o domínio. Os artefatos de requisitos do aplicativo que 
correspondem aos artefatos de requisitos de domínio contêm todos os artefatos de 
requisitos do aplicativo reutilizados com adaptações O modelo de variabilidade de 
aplicação descreve o modelo de variabilidade do aplicativo com as variantes selecionadas 
ChatGPT 
A alternativa correta é: 
A relação dos artefatos de requisitos de aplicação com as variantes selecionadas no modelo 
de variabilidade do aplicativo captura a rastreabilidade entre os requisitos e as variantes 
selecionadas para o domínio. 
Explicação: 
A especificação de requisitos de aplicação é responsável por definir os requisitos 
específicos da aplicação dentro do contexto da linha de produtos. Essa especificação 
descreve os requisitos relacionados às variantes selecionadas no modelo de variabilidade 
do aplicativo. A rastreabilidade entre os requisitos e as variantes é importante para 
entender como as diferentes funcionalidades e configurações são afetadas pelos requisitos 
de aplicação. 
As demais alternativas são incorretas: 
 Os deltas de requisitos não contêm necessariamente todos os artefatos de requisitos 
reutilizados do domínio. Os deltas referem-se a modificações específicas nos requisitos 
existentes. 
 O modelo de variabilidade de aplicação não se trata das semelhanças e pontos de variação 
vinculados. Ele descreve as variantes selecionadas para a aplicação. 
 Os artefatosde requisitos do aplicativo não são necessariamente adaptações dos artefatos 
de requisitos do domínio. Eles são especificamente relacionados à aplicação e podem ter 
requisitos exclusivos. 
 O modelo de variabilidade de aplicação não descreve o modelo de variabilidade do 
aplicativo com as variantes selecionadas. Ele descreve as variantes selecionadas para a 
aplicação em si. 
 
Você precisa implementar um módulo que leia um arquivo RTF (Rich Text Format) e 
converta seu conteúdo em diferentes formatos (ASCII, TeX, HTML etc.). Sabendo que o 
arquivo é composto por diferentes partes (texto, formatação, figuras etc.), qual dos padrões 
seria mais indicado para isolar o conversor das diferentes formas de representação do 
conteúdo gerado? Prototype Factory Method Abstract Factory Builder Singleton 
ChatGPT 
O padrão mais indicado para isolar o conversor das diferentes formas de representação do 
conteúdo gerado nesse caso seria o Abstract Factory. 
O padrão Abstract Factory permite criar famílias de objetos relacionados sem especificar 
suas classes concretas. No contexto da conversão de um arquivo RTF para diferentes 
formatos, a Abstract Factory pode ser utilizada para definir uma interface comum para a 
criação de objetos responsáveis por cada formato de saída desejado (ASCII, TeX, HTML 
etc.). Cada fábrica concreta implementaria essa interface e seria responsável por criar os 
objetos específicos para cada formato. 
Dessa forma, o conversor seria desacoplado das implementações específicas de cada 
formato e dependeria apenas da Abstract Factory para criar os objetos de saída 
correspondentes. Isso permite que o conversor seja flexível e extensível, facilitando a adição 
de novos formatos de saída no futuro sem modificar o código do conversor em si. 
Os outros padrões mencionados também podem ser úteis em diferentes contextos, mas 
não são tão adequados para isolar o conversor de diferentes formas de representação do 
conteúdo gerado. 
 
Analise o propósito a seguir: ''Implementar a instanciação de objetos utilizando uma 
estrutura de herança, em que a superclasse define uma operação de criação de um produto 
genérico, e cada subclasse define a implementação dessa operação, criando um produto 
específico derivado do produto genérico definido na superclasse''. Assinale a alternativa 
com o nome do padrão que possui esse propósito: Factory Method Abstract Factory 
Prototype Singleton Builder 
ChatGPT 
O propósito descrito é característico do padrão Factory Method. 
No padrão Factory Method, uma superclasse define uma operação de criação 
(frequentemente chamada de factory method) que retorna um objeto de um tipo genérico 
(produto genérico). As subclasses dessa superclasse são responsáveis por implementar esse 
factory method para criar objetos específicos (produtos específicos) derivados do produto 
genérico definido na superclasse. 
Dessa forma, o padrão Factory Method permite que as subclasses decidam qual objeto 
específico criar, enquanto a superclasse fornece a estrutura e a lógica comum para a criação 
dos objetos. 
Portanto, no contexto descrito, o padrão Factory Method é o mais apropriado para 
implementar a instanciação de objetos com base em uma estrutura de herança e operações 
de criação definidas nas subclasses. 
 
Assinale a alternativa com dois padrões que possuem uma estrutura de solução muito 
parecida, porém, com propósitos distintos. Composite e Decorator. Adapter e Decorator. 
Adapter e Composite. Proxy e Composite. Proxy e Adapter. 
ChatGPT 
A alternativa correta é: Adapter e Decorator. 
Os padrões Adapter e Decorator possuem estruturas de solução semelhantes, mas com 
propósitos distintos. 
O padrão Adapter tem como propósito converter a interface de uma classe em outra 
interface esperada pelos clientes. Ele permite que classes com interfaces incompatíveis 
possam trabalhar juntas, envolvendo um objeto com uma nova interface adaptada. 
Já o padrão Decorator tem como propósito adicionar responsabilidades adicionais a um 
objeto de forma dinâmica. Ele permite que novos comportamentos ou funcionalidades 
sejam adicionados a um objeto existente sem modificar sua estrutura básica. O Decorator 
age como uma camada de envoltório em torno do objeto original, oferecendo novas 
funcionalidades conforme necessário. 
Ambos os padrões utilizam a composição para alcançar seus objetivos, mas o Adapter é 
mais focado na interoperabilidade entre interfaces incompatíveis, enquanto o Decorator 
visa adicionar funcionalidades extras a um objeto existente. 
 
Conseguir adicionar um novo fornecedor externo de um serviço já utilizado por um 
sistema, apenas adicionando um módulo que seja capaz de converter uma requisição de 
uma interface conhecida pelo sistema para a interface proprietária fornecida pelo 
componente externo é um dos efeitos obtidos com a aplicação de qual padrão? Proxy 
Bridge Adapter Flyweight Facade 
ChatGPT 
O padrão que permite adicionar um novo fornecedor externo de um serviço utilizando um 
módulo de conversão de interface é o padrão Adapter. 
O padrão Adapter é projetado para permitir a comunicação entre duas interfaces 
incompatíveis. Ele atua como um adaptador entre o código existente e a interface fornecida 
pelo novo componente externo. O Adapter converte a interface do novo componente em 
uma interface com a qual o sistema já está familiarizado, permitindo a integração perfeita 
do novo fornecedor externo no sistema existente. 
Portanto, a alternativa correta é o padrão Adapter. 
 
Esse padrão define uma estrutura similar à de um esquema Publisher-Subscriber, pois 
existe um Publisher detentor de um conjunto de informações e registra um conjunto de 
objetos interessados em receber notificações de modificação desse conjunto de 
informações, ou seja, do estado do Publisher. Ao ter o seu estado interno modificado, o 
Publisher notifica os Subscribers que, por sua vez, executam algum procedimento 
específico de tratamento dessa modificação. Assinale a opção com o padrão 
correspondente à descrição acima: Template Method Visitor Strategy Observer State 
ChatGPT 
O padrão correspondente à descrição fornecida é o padrão Observer. 
O padrão Observer é usado para estabelecer uma relação de dependência um-para-muitos 
entre objetos, de modo que quando um objeto (chamado de Publisher ou Subject) sofre 
uma alteração em seu estado, vários outros objetos dependentes (chamados de 
Subscribers ou Observers) são notificados e atualizados automaticamente. 
Na descrição mencionada, o Publisher é o objeto detentor das informações e é responsável 
por notificar os Subscribers sobre as modificações ocorridas. Os Subscribers são os objetos 
interessados em receber as notificações e executar procedimentos específicos de 
tratamento dessas modificações. 
Portanto, o padrão correspondente à descrição é o padrão Observer. 
 
"Esse padrão encapsula uma requisição em um objeto, desacoplando o requisitante e o 
objeto executor. Esse encapsulamento permite registrar o histórico de requisições, 
reproduzir essas requisições em outro ambiente, bem como implementar operações de 
desfazer ou refazer o processamento associado à requisição". Assinale a alternativa com o 
nome do padrão que possui esse propósito: Chain of Responsibility Command Iterator 
Mediator Template Method 
ChatGPT 
O padrão que possui o propósito descrito é o padrão Command. 
O padrão Command encapsula uma requisição em um objeto, tornando-a independente 
do objeto que a realiza. Ele permite que você parametrize os clientes com diferentes 
requisições, enfileire ou registre requisições e implemente operações de desfazer ou 
refazer. O padrão Command desacopla o objeto que faz a requisição (requisitante) do 
objeto que a executa (executor), permitindo uma maior flexibilidade e extensibilidade no 
sistema. 
Portanto, a alternativa correta é o padrão Command. 
 
Assinale a alternativa com a afirmativa CORRETA sobreo padrão Criador. O padrão Criador 
é utilizado para instanciar uma classe de uma família de classes similares. O padrão Criador 
recomenda que a criação de objetos seja feita por meio de clonagem. O padrão Criador 
consiste em criar módulos versáteis que possam cumprir diferentes propósitos. O padrão 
Criador define um conjunto de condições para que uma classe A seja responsável por 
instanciar objetos de uma classe B. O padrão Criador recomenda a criação de uma classe 
intermediária responsável por instanciar outros objetos. 
ChatGPT 
A afirmativa correta sobre o padrão Criador é: 
O padrão Criador define um conjunto de condições para que uma classe A seja responsável 
por instanciar objetos de uma classe B. 
O padrão Criador, também conhecido como Factory Method, é um padrão de criação que 
tem como objetivo delegar a responsabilidade de instanciação de objetos para subclasses, 
seguindo um conjunto de condições ou regras definidas pela classe pai. A classe pai, 
conhecida como Criador, define a interface comum para a criação dos objetos, enquanto as 
subclasses concretas são responsáveis por implementar a lógica de criação específica para 
cada tipo de objeto. 
Portanto, a alternativa correta é a que menciona que o padrão Criador define um conjunto 
de condições para que uma classe A seja responsável por instanciar objetos de uma classe 
B. 
 
Uma classe X contém o seguinte conjunto de métodos: Fechar arquivos Fechar conexão 
com banco de dados Finalizar tarefas em execução em segundo plano Liberar buffers de 
armazenamento temporário Finalizar operação, que é um método executado na finalização 
do sistema e que chama todos os métodos anteriores. Assinale a alternativa com o tipo de 
coesão da classe X: Coesão Coincidente Coesão Temporal Coesão Funcional Coesão 
Sequencial Coesão Lógica 
ChatGPT 
O tipo de coesão da classe X é Coesão Sequencial. 
A coesão sequencial ocorre quando os métodos de uma classe estão organizados em uma 
sequência específica de execução, onde cada método depende do resultado do método 
anterior. No caso da classe X, os métodos estão definidos em uma sequência lógica, onde o 
método "Finalizar operação" chama os métodos anteriores em uma ordem específica. 
Portanto, a alternativa correta é Coesão Sequencial. 
 
A arquitetura MVC (Model, View e Controller) é utilizada de forma ampla, na criação de 
sistemas cadastrais, e caracteriza-se pela divisão do sistema em três camadas, com 
objetivos específicos. Considerando a divisão utilizada pelo MVC, a interface de usuário e o 
componente DAO estariam, respectivamente, nas camadas: Model e Controller View e 
Controller Controller e Model View e Model Model e View 
ChatGPT 
A interface de usuário está na camada View e o componente DAO (Data Access Object) está 
na camada Model. 
Na arquitetura MVC, a camada View é responsável pela apresentação dos dados ao usuário 
e interação com ele, ou seja, é onde a interface de usuário é implementada. Por outro lado, 
a camada Model é responsável pela lógica de negócio e manipulação dos dados, incluindo 
o acesso ao banco de dados. O componente DAO é comumente utilizado na camada 
Model para encapsular a lógica de acesso aos dados. 
Portanto, a alternativa correta é: View e Model. A interface de usuário está na camada View 
e o componente DAO está na camada Model. 
 
Ao trabalhar com um aplicativo corporativo, segundo a arquitetura MVC, ocorre uma 
divisão natural das camadas, em termos dos projetos internos, ficando a camada View sob 
responsabilidade do projeto com terminador "war". A interface padrão, conforme o próprio 
terminador indica, é um aplicativo Java Web, sendo comum a implementação de um 
padrão de desenvolvimento para centralizar o tratamento das requisições, bem como 
redirecionar para a visualização correta, após efetuar as chamadas para a camada 
Controller. De qual padrão estamos falando, e qual o componente deve implementá-lo? 
Padrão de desenvolvimento Facade e componente do tipo EJB Padrão de desenvolvimento 
Front Controller e componente do tipo Servlet Padrão de desenvolvimento DAO e 
componente do tipo JPA Padrão de desenvolvimento Service Locator e componente do 
tipo JNDI Padrão de desenvolvimento Flyweight e componente do tipo EJB 
ChatGPT 
O padrão de desenvolvimento mencionado é o Front Controller, e o componente que deve 
implementá-lo é do tipo Servlet. 
O padrão Front Controller é utilizado para centralizar o tratamento das requisições em um 
aplicativo web. Ele atua como um controlador central que recebe todas as requisições do 
cliente e direciona para o processamento adequado, geralmente envolvendo a camada 
Controller do padrão MVC. 
No contexto de um aplicativo Java Web, o componente que implementa o Front Controller 
é o Servlet. Os Servlets são classes Java que recebem as requisições HTTP e podem realizar 
diversas tarefas, como autenticação, validação, processamento dos dados da requisição e 
encaminhamento para a camada View correta. 
Portanto, a alternativa correta é: Padrão de desenvolvimento Front Controller e 
componente do tipo Servlet.

Outros materiais