Buscar

AO2_ Paradigmas de Linguagens de Programação

Prévia do material em texto

AO2
Entrega 26 de jun de 2021 em 23:59
Pontos 6
Perguntas 10
Disponível 21 de jun de 2021 em 0:00 - 26 de jun de 2021 em 23:59
Limite de tempo Nenhum
Instruções
Este teste não está mais disponível, pois o curso foi concluído.
Histórico de tentativas
Tentativa Tempo Pontuação
MAIS RECENTE Tentativa 1 100 minutos 3,6 de 6
 As respostas corretas estão ocultas.
Pontuação deste teste: 3,6 de 6
Enviado 22 de jun de 2021 em 16:34
Esta tentativa levou 100 minutos.

Pergunta 1
0,6 / 0,6 pts
Importante:
Caso você esteja realizando a atividade através do aplicativo "Canvas Student", é necessário que você clique
em "FAZER O QUESTIONÁRIO", no final da página.
“Programação imperativa é um paradigma de programação que descreve a computação como ações,
enunciados ou comandos que mudam o estado (variáveis) de um programa. Muito parecido com o
comportamento imperativo das linguagens naturais que expressam ordens, programas imperativos são uma
sequência de comandos para o computador executar. O nome do paradigma Imperativo, está ligado ao tempo
verbal imperativo, onde o programador diz ao computador: faça isso... Este paradigma de programação se
destaca pela simplicidade, uma vez que todo ser humano, ao se programar, o faz imperativamente, baseado na
ideia de ações e estados, quase como um programa de computador.”
 
Disponível em: https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_imperativa
(https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_imperativa) . Acesso em: 04/06/2020
 
Considerando as informações apresentadas, avalie as afirmações a seguir:
 
I. A programação imperativa possui três aspectos elementares: tipos, variáveis e valores.
II. A ordem dos comandos determina a sequência de tempo no programa.
A+
A
A-
https://famonline.instructure.com/courses/15500/quizzes/59688/history?version=1
https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_imperativa
https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_imperativa
https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_imperativa
https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_imperativa
 II e III e IV.
 I e III.
 I e II e IV.
 I, II, III e IV.
Alternativa correta, pois as afirmações I, II, III e IV estão corretas.
Na programação imperativa, há três aspectos elementares: tipos, variáveis e valores. A ordem dos comandos
determina a sequência de tempo no programa, programa tem uma sequência, porém a cada if (ou condição)
que tiver no programa, um caminho diferente será percorrido dentro do programa, em outras palavras, os ramos
no programa são decididos por condições através de variáveis.
 I, II e III.

Pergunta 2
0,6 / 0,6 pts
 O SOA é uma metodologia é pouco utilizada por empresas que precisam disponibilizar serviços pela Web.
 
SOA é uma arquitetura que organiza a capacidade de distribuir serviços expondo e consumindo funcionalidades como um
serviço.
Alternativa correta.
SOA é uma arquitetura que organiza a capacidade de distribuir serviços expondo e consumindo funcionalidades
como um serviço. Os serviços podem ser disponibilizados por muitos domínios, o importante é a maneira que
serão disponibilizados esses serviços, no caso, do SOA é feito com Web Services. São soluções modulares e
fracamente acopladas.
 
É um estilo de arquitetura procedural, que não podem disponibilizar os serviços de forma acoplada, apenas servem para
negócios interoperáveis.
 
SOA é um estilo arquitetural baseado na divisão de tarefas para uma aplicação ou sistema em reutilização individual e objetos
autossuficientes.
III. Os ramos no programa são decididos por condições através de variáveis.
IV. O programa tem uma sequência, porém a cada if (ou condição) que tiver no programa, um caminho diferente
será percorrido dentro do programa.
 
É correto o que se afirma apenas em:
“SOA é uma filosofia de TI que visa facilitar a integração entre sistemas, orientando a criação e a
disponibilização de soluções modulares e fracamente acopladas baseadas no conceito de serviços”.
CORDEIRO, Eduardo B. Arquitetura Orientada a Serviços. Disponível em: http://blog.iprocess.com.br/2012/10/soa-arquitetura-
orientada-a-servicos/. Acessado em 17 de outubro de 2019. Adaptado.
 
Qual dessas opções descrevem melhor o entendimento da arquitetura SOA?
A+
A
A-
 SOA é um padrão de projeto que representa um conjunto de Web Services.

Pergunta 3
0,6 / 0,6 pts
 I e II apenas.
 I, II e III.
Alternativa correta, pois as asserções I, II e III, são verdadeiras. Segundo o PMBOK, projeto é um
empreendimento único com datas de início e fim definidas, que tem como objetivo criar um produto ou serviço
também únicos. Apresenta como processos de gestão de projetos os processos de Inicialização, de
Planejamento, de Execução, de Controle e de Encerramento. E finalmente, foi organizado em 10 áreas de
conhecimento: escopo, tempo, custo, risco, recursos humanos, qualidade, aquisições, integração,
comunicações e partes interessadas.
 II apenas
 I e III apenas
 II e III apenas

Pergunta 4
0,6 / 0,6 pts
O Project Management Body of Knowledge (PMBOK) é um guia, que contém um conjunto de práticas para
gestão de projetos reconhecido internacionalmente. Foi organizado pelo instituto Project Management Institute
(PMI). É o guia mais utilizado no mundo, quando o assunto é gestão de projetos.
 
Considerando as informações apresentadas, avalie as afirmações a seguir:
 
I. Segundo o PMBOK, projeto é um empreendimento único com datas de início e fim definidas, que tem como
objetivo criar um produto ou serviço também únicos.
II. O PMBOK apresenta 5 grupos de processos: Processos de Inicialização, de Planejamento, de Execução, de
Controle e de Encerramento.
III. O PMBOK é organizado em 10 áreas de conhecimento: escopo, tempo, custo, risco, recursos humanos,
qualidade, aquisições, integração, comunicações e partes interessadas.
 
É correto o que se afirma em:
Leia o texto:
 
Você foi designado para gerir um novo projeto da sua empresa.
O projeto implementará um produto pioneiro no mercado, sendo que os requisitos do projeto ainda não estão
bem definidos, porém, você já foi informado que não poderá gastar muito tempo no levantamento de tais
requisitos. Pelo que você conversou com o solicitante, aparentemente, os módulos serão bem independentes
entre si. A boa notícia, é que o usuário estará disponível para atuar no projeto de forma muito próxima à equipe
A+
A
A-
 
O ciclo de vida a ser selecionado é o RAD que é um ciclo de vida incremental, iterativo, com forte paralelismo de atividades e
incrementos desenvolvidos ao mesmo tempo, por equipes diferentes.
Alternativa correta, pois o RAD é um ciclo de vida incremental, iterativo, com forte paralelismo de atividades e
incrementos desenvolvidos ao mesmo tempo, por equipes diferentes. É geralmente utilizado quando o projeto
implementará um produto pioneiro no mercado, com requisitos que não estão bem definidos, mas que o usuário
pode estar próximo à equipe de desenvolvimento. Neste ciclo de vida há uma compressão nas fazes de
requisitos e implantação. Só é possível utilizar este ciclo de vida quando os módulos são independentes entre
si, assim como quando é possível ter equipes trabalhando paralelamente no mesmo projeto.
 
O ciclo de vida a ser selecionado é o Espiral que faz uma abordagem cíclica das fases do processo, e cada iteração ou volta é
dedicada a uma fase do processo de vida de um software.
 
O ciclo de vida a ser selecionado é o Cascata que é uma sequência das fases, em que cada fase só começa quando a anterior
termina.
 
O ciclo de vida a ser selecionado é a Prototipagem que gera um exemplar do sistema com base no entendimento dos requisitos
levantados com o cliente.
 
O ciclo de vida a ser selecionado é o Incremental, onde o trabalho é agrupado em módulos, que serão priorizados e
desenvolvidos, passando por pequenos cascatas.

IncorretaPergunta 5
0 / 0,6 pts
de desenvolvimento. O ponto mais reforçado pelo solicitante do projeto, é que o desenvolvimento precisa ser
muito rápido, paraque não se perca o timing de lançamento do produto. Outra boa notícia, é que não há
restrições quanto ao tamanho da equipe, foi informado que você poderá criar até mais de uma equipe para
atuar no projeto.
 
A primeira coisa que você precisará fazer é definir o ciclo de vida a ser utilizado no desenvolvimento do projeto.
Considerando as informações acima, e os conteúdos vistos, assinale a opção correta.
“Quem já trabalha com BPMN pode exportar o seu modelo para BPEL fazendo algumas alterações no modelo,
como a definição dos serviços externos ou internos para cada uma das atividades. A especificação BPEL define
a sintaxe e semântica da linguagem BPEL, que contém uma variedade de construções de fluxo de processo.”
DEVMEDIA. Introduzindo Business Process Execution Language (BPEL). Disponível em: https://www.devmedia.com.br/introduzindo-
business-process-execution-language-bpel/28679. Acesso em 17 de outubro de 2019. Adaptado.
 
Há muitas situações em que a engenharia de software precisa identificar erros ou melhorar os processos de
negócio que envolve software, alguns projetos de software utilizam BPEL (Business Process Execution
Language) e outros BPMN (Business Process Model and Notation), sendo que a ferramenta mais adequada
seria:
I. Implementar Socket, sendo uma ferramenta de fácil uso para o desenvolvedor e todos envolvidos na equipe e
não é considerada complexa como BPMN.
A+
A
A-
 As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
 As asserções I e II são proposições falsas.
 A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
 As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I
Alternativa incorreta, a asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
O BPEL é utilizado para especificação de processo de negócios, assim como BPMN é uma linguagem para a
especificação de processos de negócios executáveis. Porém, é considerado uma linguagem mais complexa,
requer um conhecimento técnico maior que o BPMN.
 A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.

IncorretaPergunta 6
0 / 0,6 pts
 definição de objetivos, análise de riscos, desenvolvimento, validação e planejamento da próxima fase.
Alternativa incorreta, as alternativas referem-se às fases do ciclo de vida espiral.
É correto afirmar que as áreas de conhecimento da Engenharia de Software são: requisitos, design, construção,
teste e manutenção, qualidade, processo e gerência da Engenharia de Software, assim como gerencia de
configuração e ferramentas / métodos. Porém, aquelas que estão diretamente ligadas ao desenvolvimento do
software são: requisitos, design, construção, teste e manutenção de software, assim como a área de qualidade
de Software.
 cascata, incremental, evolutivo, RAD, prototipagem e espiral.
 distribuído, cliente servidor, três camadas, SOA e web servisse.
PORQUE
II. Utilizar BPMN para ter um modelo de mapeamento de processo parcial ou completo do sistema, assim
adaptando ou reformulando o software se necessário.
 
A respeito das asserções, assinale a opção correta:
 
Leia o Texto:
Engenharia de Software é a criação e a utilização de sólidos princípios de engenharia a fim de obter softwares
econômicos, confiáveis e que trabalhem eficientemente. É também a aplicação de uma abordagem sistemática,
disciplinada e quantificável para o desenvolvimento, operação e manutenção de software. Utiliza uma estrutura
em camadas que deve se apoiar em um compromisso organizacional com a qualidade. A engenharia de
software compreende processo, técnicas de gestão, técnicas de modelagem e o uso de ferramentas e
principalmente, pessoas.
 
O Swebok aborda a Engenharia de Software por meio de 10 áreas de conhecimento. Destas 10 áreas, pode-se
dizer que estão diretamente relacionadas ao desenvolvimento efetivo do software as áreas
A+
A
A-
 requisitos, design, construção, teste e manutenção de software, assim como a área de qualidade.
 requisitos, cascata, design, construção, prototipagem e teste.

IncorretaPergunta 7
0 / 0,6 pts
 O paradigma declarativo é baseado ações.
Alterativa incorreta.
 O paradigma declarativo é baseado em outros princípios além da lógica, e cálculos matemáticos e possui
características exclusivas para o programador.
O paradigma declarativo é um tipo de programação funcional, lógica e restritiva. A programação é levada a um
nível mais alto de abstração, onde o programador pode concentrar-se em descrever o resultado o que deve ser
computado, e não necessariamente como esse resultado deve ser computado.
 O paradigma declarativo é uma linguem de script na Web.
 O paradigma declarativo é baseado apenas na lógica e suas funcionalidades.
 O paradigma declarativo são linguagens apenas de marcação.
 O paradigma declarativo é utilizado apenas em linguagens de baixo nível.

Pergunta 8
0,6 / 0,6 pts
“Como a programação declarativa é baseada em dados imutáveis, ela expressa a lógica de uma computação
sem descrever exatamente seu fluxo de controle. Dentro do paradigma declarativo, podemos identificar outros
paradigmas, como o funcional, o lógico e a programação restritiva. ”
VIEIRA, Leandro F. Paradigmas de Programação: Uma Abordagem Comparativa. Disponível em: https://leandromoh.gitbooks.io/tcc-
paradigmas-de-programacao/2_paradigmas_imperativo_e_declarativo/22_paradigma_declarativo.html. Acesso em: 12 de outubro de
2019.
 
Qual dessas definições explica melhor o paradigma declarativo?
“O middleware é o software que se encontra entre o sistema operacional e os aplicativos nele executados.
Funcionando de forma essencial como uma camada oculta de tradução, o middleware permite a comunicação e
o gerenciamento de dados para aplicativos distribuídos. Muitas vezes, o middleware é chamado de
“encanamento”, uma vez que ele conecta dois aplicativos para que os dados e bancos de dados possam ser
facilmente transportados através do “cano”.
AZURE, Microsoft. O que é middleware? Disponível em: https://azure.microsoft.com/pt-br/overview/what-is-middleware/. Acesso em:
17 de outubro de 2019. Adaptado
 
Em um projeto de software, a escolha de linguagens de programação envolve diretamente as necessidades do
projeto, requisitos e regras de negócios. Imagine que nesse projeto será preciso utilizar duas tecnologias
distintas, provavelmente duas linguagens de programação diferentes para desenvolver um software distribuído,
especificamente na Web.
O que seria mais importante considerar na tomada dessa decisão?
A+
A
A-
 I, II e III.
 II e III, apenas.
 II, apenas.
 I e III, apenas.
 I e II, apenas.
Esta alternativa está correta, pois apenas as afirmações I e II estão corretas.
Os projetos que utilizam sistemas distribuídos muitas vezes necessitam trocar informações com outras
tecnologias, como Java com C. Porém, às vezes há diversos tipos de linguagens e, para esse propósito, o
middleware deve ser adotado, sendo possível a integração de tecnologias.

IncorretaPergunta 9
0 / 0,6 pts
Avalie as afirmações abaixo:
 
I. A primeira questão são os requisitos do projeto, se for algo obrigatório a tecnologia precisa suportar e
executar, por algum meio, a troca de informações. Por exemplo utilizar um middleware ou algo que satisfaça.
 
II. Nesse caso, a integração das tecnologias é essencial para que o projeto tenha sucesso, recursos como
middleware seria ideal.
 
III. O projeto precisa utilizar uma tecnologia capaz de interagir com uma plataforma e linguagem de
programação, normalmente não há um meio de troca de dados com diferentes tecnologias.
Selecione a opção correta.
“O SWEBOK apresenta a Engenharia de Software como um conjunto de áreas de conhecimentos necessários
para se trabalhar com desenvolvimento de software, desde a codificação em si até a gestão de projetos. ”
FARNESE, Augusto Campos. Entenda o SWEBOK, principal referência na Engenharia de Software. Disponível em:
http://igti.com.br/blog/swebok-referencia-na-engenharia-de-software/.Acesso em: 18 de outubro de 2019. Adaptado.
Qual desses guias podem ser considerados de uso essencial ao criar projetos de software?
 
I. SWEBOK, guia para engenharia de software. Os processos e modelos são abordados nesse guia voltado
para o processo de desenvolvimento de projetos.
 
II. PMBOK, guia utilizado para projetos em geral. É considerado essencial para o gerenciamento no geral, onde
aborda as áreas de conhecimentos necessárias para projetos e pode ser utilizado junto com outros guias.
 
III. BABOK, guia de conhecimento para análise de negócio. É considerado essencial em todos os projetos de
software que envolva um produto comercial, é um dos principais guias utilizado no desenvolvimento de
A+
A
A-
 I e III, apenas.
 II, apenas.
 II e III, apenas.
 I e II, apenas.
 I, II e III.
Alternativa Incorreta.
As afirmações I e II estão corretas, pois os guias essenciais são o SWEBOK que é especializado em
engenharia de software, e o PMBOK que é o guia de gerenciamento de projetos em geral.
A afirmação III está incorreta, pois o BABOK apesar de ser um guia ótimo e, pode fazer parte de projeto, não é
essencial.

Pergunta 10
0,6 / 0,6 pts
 As asserções I e II são proposições falsas.
 A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
 As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
 As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
Esta alternativa está correta. As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I, pois
o desenvolvimento baseado em componentes permite que o sistema final seja tratado como vários
software.
“Arquitetura baseada em componentes descreve uma abordagem da engenharia de software para estrutura e
desenvolvimento de sistemas. Apesar de uma certa complexidade para gerir esse tipo de ambiente, na
arquitetura baseada em componentes o foco está na decomposição da estrutura da funcionalidade individual ou
componente lógico dele expondo a interface de comunicação contendo seus métodos, eventos e propriedades.
Isso provê um alto nível de abstração, estrutura principal da orientação a objetos, não focando em questões de
protocolos de comunicação e compartilhamento de estado.”
BACCARO, Marco. Arquitetura baseada em Componentes. Disponível em:
https://marcobaccaro.wordpress.com/2010/10/05/arquitetura-baseada-em-componentes/. Acesso em 17 de outubro de 2019.
Adaptado.
Considerando o texto acima e o conteúdo visto sobre componentes, avalie as seguintes asserções e a relação
proposta entre elas:
 
I. A utilização de componentes permite que o sistema final seja tratado como vários “minissistemas”.
 
PORQUE
 
II. A utilização de componentes diminui a complexidade do sistema, permitindo que cada componente tenha
como foco uma única funcionalidade.
A+
A
A-
“minissistemas”, isso diminui a complexidade, permitindo que cada componente empregado seja focado em
apenas uma funcionalidade ou um conjunto de funcionalidades semelhantes.
 A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
Pontuação do teste: 3,6 de 6
A+
A
A-

Continue navegando