Baixe o app para aproveitar ainda mais
Prévia do material em texto
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! O design pattern intitulado Modelo Visão e Controle (MVC), do inglês model, view, controller, é um padrão que auxilia na divisão do código dos componentes em unidades menores, chamadas entidades. Esta estrutura propicia a criação de código estruturado e sua simplificação, já que, por meio de conceitos da orientação a objetos, utilizam-se as classes, métodos e atributos para centralizar e manter a responsabilidade sobre cada elemento. O modelo corresponde à estrutura de dados; a visão, por sua vez, apresenta as interfaces e o controle, a lógica de negócio. Sobre o uso de padrões no contexto da engenharia de software aplicada no desenvolvimento de aplicações web, assinale a alternativa correta: Alternativas: Os padrões de projeto, ou design pattern ,permitem a criação de código mais limpo e organizado, favorecendo a comunicação entre os membros da equipe e, ao final, facilitam a manutenção. CORRETO Os padrões de projeto, ou design pattern, permitem padronizar o processo de desenvolvimento, contudo, acabam ampliando a complexidade de desenvolvimento. É responsabilidade do analista somente a identificação e definição dos padrões arquiteturais e de desenvolvimento que serão adotados. Os padrões de projeto, ou design pattern, apesar de favorecerem a criação de produtos de software com maior qualidade, acabam por dificultar o desenvolvimento, já que cada membro da equipe de desenvolvimento pode adotar um padrão diferente. Os padrões de projeto, ou design pattern, só podem ser aplicados se os stakeholders possuírem domínio sobre o padrão a ser adotado. Código da questão: 58348 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 manutenção, o software sofre manutenção no sentido de ser validado, verificado e testado, logo após a etapa de projeto. 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 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. Código da questão: 58341 Resolução comentada: os padrões de projeto, ou design pattern, são adotados para facilitar a comunicação dos membros das equipes, garantindo a padronização do código e sua organização. Apesar de mais de um poder ser adotado, já que existem padrões arquiteturais, de desenvolvimento, entre outros, a escolha ocorre de acordo com todos os membros da equipe, visto que, ao selecionar muitos padrões, esta adoção resultaria em aumento da complexidade e dificuldades de comunicação. Ao final, a aplicação dos padrões também facilita a manutenção, já que um código organizado permitirá a identificação e modificação de modo mais fácil. Resolução comentada: 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. 2/5 3) 4) 5) A engenharia de software surgiu como uma disciplina da área da tecnologia da informação para suprir as necessidades das indústrias de software que não conseguiam desenvolver soluções de qualidade, mediante o aumento de complexidade no desenvolvimento de tais soluções, a acompanhar a evolução do hardware. Sobre a engenharia de software, assinale a alternativa correta. Alternativas: A engenharia de software se preocupa com todos os aspectos da produção de um software, com objetivo de se obter uma solução de qualidade e bem-sucedido. CORRETO A engenharia de software objetiva atender a todos os aspectos de desenvolvimento de sistemas computacionais. Apesar de importante, as abordagens ad hoc são mais efetivas do que as abordagens da engenharia de software nas etapas de concepção de software. Os quatro pilares da engenharia de software são: análise, projeto desenvolvimento e testes A engenharia de software não se preocupa com a aplicação de tecnologias e práticas de gerência de projetos, economia, ética e outras áreas. Código da questão: 58340 Dentre as metodologias para gerenciamento de equipes de desenvolvimento, destaca-se a metodologia ágil Scrum. Sobre esta metodologia, considere as seguintes afirmações: ( ) O Scrum provê uma alteração de foco no contexto do gerenciamento de equipes. ( ) A relação entre as partes, tanto entre membros internos do projeto quanto com os stakeholders (partes envolvidas), é primada. ( ) Sprint é o período de uma a quatro semanas em que ocorrem o desenvolvimento e testes dos artefatos. ( ) Ao final da Sprint, é realizada uma reunião que valida o artefato desenvolvido. Se aprovado, segue-se para a seleção de novas histórias do Sprint Backlog ou, se reprovado, retorna para o Product Backlog. ( ) Durante todos os dias da Sprint, reuniões rápidas são realizadas para identificar como se encontram as atividades que cada membro da equipe assumiu e se há dificuldades que precisam ser resolvidas, estas reuniões são chamadas daily meeting. Assinale a alternativa que contenha a sequência correta: Alternativas: V – V – V – F – V. CORRETO V – F – F – V – F. V – V – F – V – F. V – F – F – V – V. F – V – F – V – F. Código da questão: 58351 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 Resolução comentada: A engenharia de software, ao contrário da engenharia de sistemas, que se preocupa tanto com software e hardware, tem seu foco somente em software, aplicando e desenvolvendo métodos que possam ser adotados nas cinco principais etapas de concepção de software: análise, projeto, desenvolvimento, teste e manutenção. Seu objetivo é obter um software de qualidade e bem-sucedido, ou seja, que atenda a todas as demandas das partes envolvidas. Resolução comentada: é verdade que o Scrum provê uma alteração de foco no contexto do gerenciamento de equipes, que as relação entre as partes, tanto entre membros internos do projeto quanto com os stakeholders (partes envolvidas), é primadae que a Sprint é o período de uma a quatro semanas em que ocorrem o desenvolvimento e testes dos artefatos. Ao final da Sprint, é realizada uma reunião que valida o artefato desenvolvido. Se aprovado, segue-se para a seleção de novas histórias do Product Backlog e não do Sprint Backlog, que refere- se às histórias que foram extraídas do Product Backlog e separadas para o desenvolvimento. Finalmente, é verídico que, durante todos os dias da Sprint, reuniões rápidas são realizadas para identificar como se encontram as atividades que cada membro da equipe assumiu e se há dificuldades que precisam ser resolvidas, estas reuniões são chamadas daily meeting. 3/5 6) 7) 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: I – III – IV. I – IV – V. III – V. II – III – IV. I – II – IV. CORRETO Código da questão: 58346 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 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 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, 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 em cascata, as etapas são executadas fora de ordem. Código da questão: 58362 Boas ferramentas e recursos digitais (sites) para a criação de jogos digitais auxiliam na redução de custos e esforços na concepção de tais softwares. Sobre ferramentas e sites adotados no desenvolvimento de jogos digitais, leia e associe as duas colunas: 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, 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: 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. 4/5 8) 9) Assinale a alternativa que traz a associação correta entre as duas colunas: Alternativas: I – C; II – B; III – A. I – A; II – B; III – C. I – B; II – A; III – C. CORRETO I – B; II – C; III – A. I – C; II – A; III – B. Código da questão: 58352 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 – C; II – B; III – A. I – B; II – A; III – C. CORRETO I – A; II – B; III – C. I – B; II – C; III – A. I – C; II – A; III – B. Código da questão: 58345 A metodologia ágil vem ao encontro da necessidade de dinamizar o processo de desenvolvimento, das etapas de implementação de um software no contexto da engenharia de software. Considerando os quatro pilares que norteiam os métodos ágeis, assinale a alternativa correta. Alternativas: Resolução comentada: Blender é uma ferramenta de modelagem de elementos gráficos 3-D. Os modelos nele criados são importados no Unity, que é a ferramenta em que o jogo será programado. As texturas aplicadas tanto nos modelos 3-D quanto nos cenários são criadas no Gimp, um editor de imagens de código aberto e gratuito. 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. 5/5 10) O pilar mais importante é o que indica que é fundamental ter um software em testes mais que documentação abrangente. É considerado um dos pilares da metodologia ágil seguir um plano mais do que responder a mudanças. Dá-se maior atenção aos indivíduos e interações mais que a processos e ferramentas. CORRETO É considerado um dos pilares a negociação de contratos mais que a colaboração com o cliente. É considerado um dos pilares a colaboração com o cliente mais que responder a mudanças. Código da questão: 58355 Um jogo digital é uma atividade voluntária, com ou sem interesse material, com propósitos sérios ou não, sendo composta por regras e objetivos bem definidos, que são capazes de engajar os jogadores na resolução de algum conflito, variando e quantificando resultados, sendo gerenciada por um software e executada em hardware. Sobre a implementação de jogos digitais, assinale a alternativa correta. Alternativas: Jogos digitais envolvem diferentes equipes de desenvolvimento, visto que integram vários artefatos que compõem o produto final. CORRETO Jogos digitais não passam pela etapa de testes. Os padrões dificultam o desenvolvimento de jogos digitais, já que definem especificações que resultam em aumento da complexidade. Um jogo digital não sofrerá manutenção após a sua finalização. A complexidade no desenvolvimento de jogos digitais é, em sua maioria, a mesma do desenvolvimento de software convencional. Código da questão: 58349 Resolução comentada: os quatro pilares que embasam a metodologia ágil são indivíduos e interações mais que processos e ferramentas, software em funcionamento mais que documentação abrangente, colaboração com o cliente mais que negociação de contratos e responder a mudanças mais que seguir um plano. Logo, não há um pilar que preconiza colaboração com o cliente mais que responder amudanças, que indica que é fundamental ter um software em testes mais que documentação abrangente, que valoriza mais a negociação de contratos, que a colaboração com o cliente e que indica seguir um plano mais do que responder a mudanças. Resolução comentada: a complexidade no desenvolvimento de jogos digitais é, em sua maioria, maior que o desenvolvimento de software convencional, pois envolvem diferentes equipes que integram variados artefatos. Para reduzir a complexidade, o uso de padrões facilita o desenvolvimento destes jogos, que, como todos os softwares, passam pela etapa de testes e podem sofrer manutenções após a finalização.
Compartilhar