Buscar

LINGUAGENS DE PROGRAMAÇÕES AO2

Prévia do material em texto

LINGUAGENS DE PROGRAMAÇÕES
AO2
Pergunta 1
0,6 / 0,6 pts
“Arquitetura baseada em componentes descreve uma abordagem da engenharia de software para estrutura e desenvolvimento de sistemas. 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 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 falsas.
 
Correto!
  
As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
 
Esta alternativa está correta, pois 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 “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.
 
 
Pergunta 2
0,6 / 0,6 pts
“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?
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.
Correto!
  
I e II, apenas.
 
Esta alternativa está correta, pois apenas as afirmações I e II estão corretas.
Os projetos que utilizem 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.
  
I, II e III.
 
  
I e III, apenas.
 
  
II e III, apenas.
 
  
II, apenas.
 
 
Pergunta 3
0,6 / 0,6 pts
“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 software.
  
I, II e III.
 
  
II, apenas.
 
Correto!
  
I e II, apenas.
 
Alternativa Correta.
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.
  
I e III, apenas.
 
  
II e III, apenas.
 
 
Pergunta 4
0,6 / 0,6 pts
“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.
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:
 
Correto!
  
A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
 
Alternativa correta, 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.
  
As asserções I e II são proposições falsas.
 
  
As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
 
  
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
 
 
Pergunta 5
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?
Correto!
  
O paradigma declarativo é baseadoapenas na lógica e suas funcionalidades.
 
Alternativa correta.
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 é utilizado apenas em linguagens de baixo nível.
 
  
O paradigma declarativo são linguagens apenas de marcação.
 
  
O paradigma declarativo é uma linguem de script na Web.
 
  
O paradigma declarativo é baseado ações.
 
 
Pergunta 6
0,6 / 0,6 pts
“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_imperativaLinks to an external site.. 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.
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:
Correto!
  
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.
  
II e III e IV.
  
I e III.
  
I e II e IV.
 
Pergunta 7
0 / 0,6 pts
“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?
Resposta correta
  
SOA é uma arquitetura que organiza a capacidade de distribuir serviços expondo e consumindo funcionalidades como um serviço.
Você respondeu
  
SOA é um padrão de projeto que representa um conjunto de Web Services.
Alternativa incorreta.
SOA não é apenas um conjunto de Web Services, é uma arquitetura e um conceito que envolve diferentes tecnologias de aplicação.
É correto afirmar que 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.
  
SOA é um estilo arquitetural baseado na divisão de tarefas para uma aplicação ou sistema em reutilização individual e objetos autossuficientes.
  
O SOA é uma metodologia é pouco utilizada por empresas que precisam disponibilizar serviços pela Web.
  
É um estilo de arquitetura procedural, que não podem disponibilizar os serviços de forma acoplada, apenas servem para negócios interoperáveis.
 
Pergunta 8
0,6 / 0,6 pts
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 de desenvolvimento. O ponto mais reforçado pelo solicitante do projeto, é que o desenvolvimento precisa ser muito rápido, para que 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.
  
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 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.
 
Correto!
  
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 Incremental, onde o trabalho é agrupado em módulos, que serão priorizados e desenvolvidos, passando por pequenos cascatas.
 
 
Pergunta 9
0,6 / 0,6 pts
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
  
distribuído, cliente servidor, três camadas, SOA e web servisse.
 
  
requisitos, cascata, design, construção, prototipagem e teste.
 
  
definição de objetivos, análise de riscos, desenvolvimento, validação e planejamento da próxima fase.
 
  
cascata, incremental, evolutivo, RAD, prototipagem e espiral.
 
Correto!
  
requisitos, design, construção, teste e manutenção de software, assim como a área de qualidade.
 
Alternativa correta. 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çãoe 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.
 
Pergunta 10
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:
  
II apenas
 
Correto!
  
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.
  
I e II apenas.
 
  
II e III apenas
 
  
I e III apenas