A02 – PARADIGMAS DE LINGUAGEM
DE PROGRAMAÇÃO
Pergunta 1
"SOA é uma filosofia de
Tl 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?
É um estilo de arquitetura procedural, que não
podem disponibilizar os serviços de forma acoplada, apenas servem para negócios
interoperáveis.
SOA é uma metodologia é pouco utilizada por
empresas que precisam disponibilizar serviços pela Web.
SOA é um estilo arquitetural
baseado na divisão de tarefas para uma aplicação ou sistema em reutilização
individual e objetos autossuficientes.
SOA é uma arquitetura que organiza a capacidade de distribuir serviços
expondo e consumindo funcionalidades como um serviço.
SOA é um padrão de projeto que representa um
conjunto de Web Services.
Pergunta 2
"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
a 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.
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:
I, II, III e IV.
II e III e IV.
I e III.
I, II e III.
l e ll e IV.
Pergunta 3
"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.
O As asserções l e ll são
proposições verdadeiras, mas a Il não é uma justificativa da I.
A asserção l é uma proposição
falsa, e a Il é uma proposição verdadeira.
As asserções l e ll são proposições verdadeiras, e a Il é uma
justificativa da I.
A asserção l é uma proposição
verdadeira, e a Il é uma proposição falsa.
As asserções I e II são
proposições falsas.
Pergunta 4
"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:
1. 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:
As asserções I e II são
proposições verdadeiras, e a Il é uma justificativa da l.
As asserções I e Il são
proposições verdadeiras, mas a Il não é uma justificativa da I
A asserção l é uma proposição falsa, e a Il é uma proposição
verdadeira.
As asserções I e II são
proposições falsas.
A asserção l é uma proposição
verdadeira, e a Il é uma proposição falsa.
Pergunta 5
"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 paradigma declarativo é uma
linguem de script na Web.
O paradigma declarativo é baseado apenas na lógica e suas
funcionalidades.
O paradigma declarativo é
utilizado apenas em linguagens de baixo nível.
O paradigma declarativo é
baseado ações.
O paradigma declarativo são
linguagens apenas de marcação.
Pergunta 6
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:
1. 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:
l e Il apenas.
I, II e III.
ll e Ill apenas
Il apenas
l e III apenas
Pergunta 7
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 Incremental, onde o trabalho é agrupado em módulos, que serão
priorizados e desenvolvidos, passando por pequenos cascatas.
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 é 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 é 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 RAD que é um ciclo de vida
incremental, iterativo, com forte paralelismo de atividades e incrementos
desenvolvidos ao mesmo tempo, por equipes diferentes.
Pergunta 8
"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.
l e II, apenas.
I, II e III.
L e III, apenas.
ll e III, apenas.
II, apenas.
Pergunta 9
"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.
I, II e III.
l e III, apenas.
II, apenas.
l e II, apenas.
II e III, apenas.
Pergunta 10
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
O distribuído, cliente
servidor, três camadas, SOA e web servisse.
O definição de objetivos,
análise de riscos, desenvolvimento, validação e planejamento da próxima fase.
O requisitos, cascata, design,
construção, prototipagem e teste.
O cascata, incremental,
evolutivo, RAD, prototipagem e espiral.
O requisitos, design, construção, teste e manutenção de software, assim
como a área de qualidade.