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