Buscar

Evolução dos softwares - aplicação da Engenharia de Software em sistemas emergentes

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 5 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

Prévia do material em texto

29/02/2024, 08:57 Cosmos · Cosmos
https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2949078/7190638 1/5
Evolução dos softwares: aplicação da Engenharia de Software em
sistemas emergentes
Professor(a): Anderson da Silva Marcolino (Doutorado)
1)
2)
Prepare-se! Chegou a hora de você testar o conhecimento adquirido nesta disciplina. A Avaliação Virtual (AV) é composta por questões objetivas e
corresponde a 100% da média final. Você tem até cinco tentativas para “Enviar” as questões, que são automaticamente corrigidas. Você pode
responder as questões consultando o material de estudos, mas lembre-se de cumprir o prazo estabelecido. Boa prova!
Sobre os principais processos definidos e apoiados pela engenharia de software na implementação de produtos de software, considere as
seguintes afirmações e classifique-as em verdadeiras (V) ou falsas (F):
( ) O processo de desenvolvimento abrange as atividades de programação do produto de software, considerando o projeto arquitetural.
( ) O processo de análise é apoiado por métodos como o de prototipação e diagramas da UML, para o levantamento de requisitos.
( ) O processo de projeto define, considerando diagramas da UML e abordagens e métodos da engenharia de sistemas, a arquitetura do
software a ser desenvolvido.
( ) No processo de manutenção, são identificadas novas demandas para a evolução do software ou até mesmo identificação de problemas a
serem corrigidos.
( ) No processo de testes, os requisitos são testados para, posteriormente, seguirem para o desenvolvimento.
Assinale a alternativa que contenha a sequência correta:
Alternativas:
F – V – V – F – F.
V – F – F – F – V.
F – V – V – F – V.
V – V – F – V – F.  CORRETO
V – F – F – V – F.
Código da questão: 58337
Considerando o apoio da engenharia de software nos processos de desenvolvimento e validação, podemos afirmar que:
I. Na etapa de desenvolvimento, costumam-se adotar abordagens de desenvolvimento baseados em reúso que adotam o paradigma de
orientação a objetos.
II. Na etapa de desenvolvimento, o engenheiro de software auxilia na adoção de padrões que garantirão melhor qualidade ao código que será
escrito nesta etapa.
III. Na etapa de testes, podem-se adotar técnicas diversas provenientes de dois grandes grupos de técnicas: as estruturais, ou de caixa-preta e
as funcionais, ou caixa-branca.
IV. As técnicas de testes auxiliam na identificação de falhas de software e erros causados, geralmente, pelo programador. Neste sentido, o uso
de técnicas de caixa-branca ou estruturais são mais indicadas, pois permitirá testes diretamente no código-fonte do produto de software.
V. Técnicas de caixa-preta não podem ser executadas pelos usuários do produto de software, uma vez que necessitam de conhecimento
técnico (programação) para que possam ser executados.
São verdadeiras:
Alternativas:
II – III – IV.
I – II – IV.  CORRETO
I – IV – V.
I – III – IV.
III – V.
Resolução comentada:
o processo de projeto, tal como os demais, utiliza abordagens e métodos da engenharia de software. No contexto do processo de
testes, não são os requisitos que são testados, mas sim o que foi desenvolvido no processo de desenvolvimento, seguindo então para
correções no processo anterior, ou seguindo para implantação/instalação em ambiente de produção.
Resolução comentada:
a afirmação III é falsa, pois as técnicas de caixa-preta são conhecidas como técnicas funcionais; já as técnicas de caixa-branca são
conhecidas como estruturais. Nestas últimas, testa-se o código programado, necessitando, assim, de mais conhecimento técnico
(programação), o que comprova a veracidade da afirmação IV. Já nas técnicas de caixa-preta, o software é testado em termos de
funcionalidades dos usuários, não necessitando de conhecimento técnico de programação, mas sim operacional. Logo, isso possibilita
que usuários do produto possam executar testes de caixa-preta, indicando que a afirmação V é falsa. Quanto à afirmação I, esta é
verdadeira, pois, dentre as diferentes abordagens de desenvolvimento, as de reúso são as mais adotadas, sendo estas,
29/02/2024, 08:57 Cosmos · Cosmos
https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2949078/7190638 2/5
3)
4)
Código da questão: 58346
As plataformas móveis ou os sistemas operacionais móveis especificam o tipo de tecnologia que será adotada para o desenvolvimento de
aplicativos móveis nativos ou que pacotes devem ser integrados no desenvolvimento de aplicativos não nativos ou genéricos. Sobre
aplicativos móveis e as plataformas móveis, leia e associe as duas colunas:
Assinale a alternativa que traz a associação correta entre as duas colunas:
Alternativas:
I – A; II – B; III – C.
I – C; II – B; III – A.
I – C; II – A; III – B.
I – B; II – C; III – A.
I – B; II – A; III – C.  CORRETO
Código da questão: 58345
Sobre os principais processos da concepção de um software – análise, projeto, desenvolvimento, testes e manutenção –, assinale a
alternativa correta.
Alternativas:
No processo de desenvolvimento, o software é programado, ou seja, codificado com base no documento de requisitos e resultados dos
testes.
No processo de testes, o software é testado para verificar se possui falhas que possam comprometer a sua disponibilização em posterior
ambiente de produção.
No processo de análise, o software é verificado para que não sejam encontrados erros, podendo, assim, ser disponibilizado em ambiente
de produção.
No processo de projeto, os requisitos funcionais e não funcionais são transformados em diagramas de mais baixo nível, servindo como
modelos para que possam ser desenvolvidos na próxima etapa.  CORRETO
No processo de manutenção, o software sofre manutenção no sentido de ser validado, verificado e testado, logo após a etapa de projeto.
consequentemente, implementadas considerando o paradigma orientado a objetos. Tanto a aplicação de tais abordagens quanto o
auxílio ao desenvolvedor na adoção de padrões para garantir melhor qualidade ao código e, ao final, no produto de software como um
todo é responsabilidade do engenheiro de software. Logo, a alternativa II também é verdadeira.
Resolução comentada:
Android e iOS são plataformas móveis ou sistemas operacionais móveis. Os seus fabricantes disponibilizam kits de desenvolvimento
com bibliotecas e linguagens de programação específicas para a criação dos chamados aplicativos nativos, ou seja, que são
desenvolvidos única e exclusivamente utilizando tais tecnologias. Logo, os chamados aplicativos genéricos, não nativos, são
implementados considerando apenas as bibliotecas, ou seja, um pacote com funcionalidades específicas, da respectiva plataforma em
que deverá ser instalado e executado.
Resolução comentada:
29/02/2024, 08:57 Cosmos · Cosmos
https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2949078/7190638 3/5
5)
6)
Código da questão: 58341
O termo engenharia de software foi cunhado pela primeira vez em 1968, durante a crise do software.
Sobre os motivos que levaram à criação e ao uso da engenharia de software em tal período, assinale a alternativa correta.
Alternativas:
A engenharia de software surge como meio de reduzir a complexidade no desenvolvimento de software, que, com o surgimento de novos
componentes de hardware, resultou no aumento da complexidade de tais soluções.  CORRETO
A engenharia de software surge como meio de reduzir a complexidade no desenvolvimento de hardware, que, com o surgimento de
novos componentes de software, resultou no aumento da sua complexidade.
A engenharia de software surge como meio de formalizar a profissão de engenheiro na área de construção de produtos de hardware.
A engenharia de sistemas surge como meio de reduzir a complexidade no desenvolvimento de software, que, com o surgimento de novos
componentes de hardware, resultou no aumento da complexidade dos softwares.
A engenharia de software surge como meio de formalizar a profissão de engenheiro na área de construção de produtos de software.
Código da questão: 58335
Aplicações Android podem ser escritas na linguagemde programação Java. A ferramenta Android SDK compila, então, o código, além de
todos os dados e recursos, em um Android package (APK), um arquivo com extensão .apk. Um APK contém todo o conteúdo da aplicação e é
utilizado pelo sistema Android para instalá-la. Considerando o desenvolvimento e as tecnologias de um aplicativo móvel nativo e híbrido,
assinale a alternativa correta:
Alternativas:
Um aplicativo nativo é desenvolvido considerando tecnologias compatíveis com a plataforma na qual será executado, o que acaba por
resultar em aplicativos mais lentos.
Diz-se um aplicativo nativo aquele que é desenvolvido considerando tecnologias fornecidas pelo mantenedor ou criador da plataforma
em que a aplicação será executada.  CORRETO
Um aplicativo híbrido é desenvolvido considerando requisitos funcionais apenas, o que torna o aplicativo final lento devido ao não
atendimento dos requisitos não funcionais.
Um aplicativo será desenvolvido de modo nativo ou híbrido de acordo com as necessidades do cliente. Sendo a escolha da tecnologia
decorrente dos resultados da etapa de testes.
Um aplicativo híbrido é desenvolvido com a tecnologia fornecida pelo mantenedor ou criador da plataforma em que a aplicação será
executada.
Código da questão: 58347
o primeiro processo é o de análise, que fornece o documento de requisitos funcionais e não funcionais ao processo de projeto, que,
após criar diagramas de mais baixo nível, os repassa para a equipe de desenvolvedores no processo de desenvolvimento. O software,
após ser desenvolvido, passa para o processo de testes, em que é verificado, validado e testado, podendo, então, ser disponibilizado
em ambiente de produção, e ainda, seguir ou não para manutenções que possam corrigir falhas não identificadas no processo de testes
ou levar a modificações para atender a novas demandas dos clientes.
Resolução comentada:
A engenharia de software não tem como objetivo formalizar a profissão de engenheiro de software. Ela surge como meio de reduzir os
problemas da crise de software. Os produtos desenvolvidos já não tinham mais a qualidade esperada, dificultando o acompanhamento
da evolução do hardware. Para reduzir a complexidade e garantir melhoria na qualidade de tais software, a engenharia de software
busca concentrar métodos e definir processos para a implementação com qualidade de produtos.
Resolução comentada:
um aplicativo será desenvolvido de modo nativo ou híbrido de acordo com as necessidades do cliente. A escolha pela tecnologia será
baseada na arquitetura adotada, bem como nas especificidades e indicações do próprio cliente durante a fase de análise. Um aplicativo
nativo é desenvolvido considerando tecnologias fornecidas pelo mantenedor ou criador da plataforma em que a aplicação será
executada, sendo, em alguns casos, mais rápidos que os híbridos, que são desenvolvidos com tecnologias de terceiros. Contudo, nota-
se que a questão de velocidade tem sido reduzida na medida em que o hardware dos dispositivos móveis evolui.
29/02/2024, 08:57 Cosmos · Cosmos
https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2949078/7190638 4/5
7)
8)
9)
Os modelos de processo de software definem a sequência e como as diferentes etapas de implementação podem ser organizadas. Estas
etapas, por sua vez, podem ser utilizadas no contexto de metodologias ágeis, DevOps e outras. Considerando os modelos de processo de
software, assinale a alternativa correta.
Alternativas:
No modelo em cascata, o processo de desenvolvimento se concentra principalmente na integração de componentes, gerando um produto
final.
No modelo incremental, também chamado revolucionário, várias versões são desenvolvidas até que o produto de software esteja
concluído.
No modelo incremental, somente quando todos os requisitos não funcionais tiverem sido implementados no produto de software, o
produto final será implantado em ambiente de produção.
No modelo em cascata, as etapas são executadas fora de ordem.
No modelo baseado em componentes, a prática de reúso é realizada por meio da utilização de componentes já desenvolvidos, reduzindo
o tempo de implementação e finalização do produto.  CORRETO
Código da questão: 58362
O DevOps é uma mudança cultural para integração de áreas de desenvolvimento e operações. Nesta perspectiva, assinale a alternativa
correta que apresenta os pilares desta prática.
Alternativas:
Compartilhamento, medição, cultura, automação e fluxo.  CORRETO
Compartilhamento, medição, cultura, automação e robustez.
Compartilhamento, medição, cultura, autoconhecimento e fluxo.
Compartilhamento, medição, cultura, pipelines e feedback.
Feedback, colaboração, ferramentas, processos enxutos e métricas.
Código da questão: 58361
Os pilares do DevOps são os que garantem o sucesso de sua adoção nas empresas de software. Considerando tais pilares, leia e associe as
duas colunas:
Resolução comentada:
no modelo em cascata, as etapas são executadas ordenadamente, não concentrando o processo de desenvolvimento em componentes.
Já o modelo incremental é também conhecido como evolucionário, gerando várias versões do produto, até que este esteja concluído. É
neste modelo que, somente quando todos os requisitos (funcionais e não funcionais) tiverem sido implementados, que o software
poderá ser implantado em ambiente de produção. Finalmente, o modelo baseado em componentes objetiva o reúso de componentes
já desenvolvidos, o que reduz o tempo de finalização.
Resolução comentada:
o DevOps se baseia em cinco pilares, sendo estes: cultura, que preza pela colaboração dos times; automação, que se baseia em
ferramentas e pipelines; medição, que integra métricas e monitoramento das entregas, qualidade e cronograma; fluxo, que refere-se à
identificação do interesse que gera valor dos clientes; e compartilhamento, que refere-se a difusão das experiências, dificuldades,
abordagens e responsabilidades entre os integrantes do projeto.
29/02/2024, 08:57 Cosmos · Cosmos
https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2949078/7190638 5/5
10)
Assinale a alternativa que traz a associação correta entre as duas colunas:
Alternativas:
I – B, II – A, III – C.
I – C, II – A, III – B.  CORRETO
I – A, II – C, III – B.
I – A, II – B, III – C.
I – B, II – C, III – A.
Código da questão: 58359
O documento de desenho do jogo, do termo em inglês game design document, é um artefato essencial para a condução das diferentes
etapas para a implementação de um jogo digital. Sobre os principais itens documentados neste artefato, assinale a alternativa correta.
Alternativas:
Esse documento recebe as especificações principais para a criação de um jogo, bem como a definição das tecnologias adotadas, padrões
de desenvolvimento, arquiteturais e, principalmente, os elementos específicos integrados a um produto de software de jogo digital.
O documento de desenho de jogos pode ser substituído pelo diagrama de atividades da UML.
O cronograma das atividades da criação do jogo digital é definido e mantido no item que discorre sobre história e personagens do jogo
digital.
O item de visão geral do jogo especifica, em conjunto com os diagramas de casos de uso da UML, quais são os elementos que serão
traduzidos para requisitos funcionais e não funcionais.  CORRETO
Gameplay e mecânicas de jogo é o único item que requer gerenciamento e equipe de desenvolvimento específica.
Código da questão: 58354
Resolução comentada:
nos pilares da cultura e mensuração, preza-se pelo estabelecimento de interações que aproximem os times da área de desenvolvimento
e operações; e tanto estes quanto as atividades realizadas por eles são medidas com o uso de diferentes métricas, respectivamente. Já
nos pilares de automação e fluxo, preza-se, respectivamente, pela redução de trabalhos manuais, e busca-se entender o valor dos
negócios do cliente para que possa ser direcionado o fluxo para se atingir tal valor. Finalmente, no pilar do compartilhamento, os erros
e acertos do time podem ajudar a propor melhorias, assim, as suas responsabilidadese ações devem ser compartilhadas.
Resolução comentada:
o documento de desenho do jogo recebe não apenas as especificações principais de um jogo, mas todas elas. Como é essencial para o
desenvolvimento de produtos de software de qualidade, não pode ser substituído por um diagrama de atividades da UML, contudo,
recomenda-se que tal diagrama seja parte integrante deste documento. Adicionalmente, este servirá para guiar o gerenciamento das
equipes dos diferentes artefatos de software a serem desenvolvidos. Eles não se restringem apenas ao gameplay e mecânicas do jogo.
Finalmente, o cronograma das atividades é mantido no gerenciamento, e tal como todas as demais partes do documento de desenho
do jogo, leva em consideração a visão geral do jogo que, juntamente com modelos UML, designam quais são os elementos que serão
traduzidos para requisitos funcionais e não funcionais.
Arquivos e Links