Prévia do material em texto
PERGUNTA 1 1. Leia o trecho a seguir, retirado da obra de SOMMERVILLE, chamada Engenharia de Software: “Na prática, a aplicação da Programação Extrema como proposta originalmente se provou mais difícil do que o previsto. Na XP os requisitos são expressos em cenários (chamados de histórias do usuário) implementados diretamente como uma série de tarefas. Os programadores trabalham em pares e desenvolvem testes para cada tarefa antes de escreverem o código. Todos os testes devem ser executados com sucesso quando o novo código é integrado ao sistema, já que há um curto intervalo de tempo entre os lançamentos (releases) do sistema.” (SOMMERVILLE, 2019, p. 62) Fonte: SOMMERVILLE, I. Engenharia de software. 10. ed. São Paulo: Pearson, 2019. p. 62. Com base na prática chamada de programação extrema, associe os conceitos a seguir com as respectivas descrições mais adiante. (1) Integração contínua. (2) Programação em pares. (3) Lançamentos pequenos. (4) Refatoração. (5) Propriedade coletiva. I. Os pares de desenvolvedores trabalham em todas as áreas do sistema, de modo que não se desenvolvam “ilhas de conhecimento” e todos assumam a responsabilidade por todo código. II. Assim que o trabalho numa tarefa é completo, é integrado ao sistema completo. Após qualquer integração desse tipo, todos os testes de unidade do sistema devem ter sucesso. III. Esse processo deve ser feito por todos os desenvolvedores no código de forma contínua, logo sejam encontradas possíveis melhorias para ele. Isso mantém o código simples e de fácil manutenção. IV. Forma de trabalho da equipe de desenvolvimento cujo objetivo é realizar a conferência de trabalhos de modo geral entre os próprios membros da equipe, oferecendo apoio para um resultado sempre satisfatório. V. Relacionado à maneira por meio da qual sistemas são disponíveis, a fim de agregar valor ao negócio, desenvolvido em primeiro lugar. É necessária uma frequência que acrescente funcionalidades à primeira versão de forma incremental. A sequência correta, de cima para baixo, da associação entre item e descrição é: a. 1-II; 2-IV; 3-V; 4-III; 5-I. b. 1-II; 2-I; 3-IV; 4-III; 5-V. c. 1-I; 2-IV; 3-III; 4-V; 5-II. d. 1-IV; 2-II; 3- I; 4-V; 5-III. e. 1-V; 2-IV; 3-II; 4-I; 5-III. PERGUNTA 2 1. Os processos de desenvolvimento de “software dirigidos por planos que especificam completamente os requisitos e depois projetam, constroem e testam um sistema não são voltados para o desenvolvimento rápido de software. À medida que os requisitos mudam ou que problemas de requisitos são descobertos, o projeto ou a implementação do sistema precisam ser retrabalhados e testados novamente. Como consequência, um processo convencional em cascata ou baseado em especificação normalmente é demorado e o software final é entregue ao cliente muito depois do prazo originalmente estipulado” (SOMMERVILLE, 2019, p. 58). SOMMERVILLE, I. Engenharia de software. 10. ed. São Paulo: Pearson, 2019. Baseando-se no conceito de desenvolvimento ágil, analise as asserções a seguir e a relação proposta entre elas. I. O sistema é desenvolvido numa série de entregas em que usuários finais e clientes em geral são incluídos em desenvolvimento e avaliação de cada uma. POIS II. As abordagens ágeis de desenvolvimento de software apontam projeto, comunicação e implementação como as principais atividades no processo de software. A respeito dessas asserções, assinale a alternativa correta. a. As asserções I e II são proposições falsas. b. A asserção I é uma proposição verdadeira, enquanto a II é falsa. c. A asserção II é uma proposição verdadeira, enquanto a I é falsa. d. As asserções I e II são proposições verdadeiras, e a II é uma justificativa para a I. e. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa para a I. PERGUNTA 3 1. O estágio de implementação no desenvolvimento de software “é o processo de elaborar um sistema executável para ser entregue ao cliente” (SOMERVILLE, 2019, p. 41). Por vezes envolve diferentes atividades, nomeadamente projeto (design) e programação de software. No entanto, “com as metodologias de desenvolvimento ágil, o design e a implementação são intercalados, e nenhuma documentação de design formal é produzida durante o processo. É claro que o software ainda é projetado, mas o design é documentado informalmente em um quadro branco ou em anotações feitas pelos programadores” (SOMERVILLE, 2019, p. 41). SOMMERVILLE, I. Engenharia de software. 10. ed. São Paulo: Pearson, 2019. Considerando o apresentado, avalie as asserções a seguir e a relação proposta entre elas. I. O planejamento do projeto de software é uma tarefa realizada antes do início da produção do software, ajudando na produção de software, mas não envolvendo nenhuma atividade concreta que tenha qualquer ligação direta com a produção de software. POIS II. O planejamento do projeto de software é um conjunto de múltiplos processos (o que facilita a produção de software) cujas atividades em processos de projeto variam, dependendo do tipo de sistema que está sendo desenvolvido. Com base nas asserções e em sua aplicabilidade no desenvolvimento de software, marque a alternativa correta. a. A asserção II é uma proposição verdadeira, enquanto a I é falsa b. A asserção I é uma proposição verdadeira, enquanto a II é falsa c. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa para a I d. As asserções I e II são proposições falsas e. As asserções I e II são proposições verdadeiras, e a II é uma justificativa para a I PERGUNTA 4 1. Projetos de desenvolvimento de software têm especificidades inerentes à área da programação e outras tecnologias envolvidas, assim como projetos de engenharia para a construção de prédios ou projetos para a criação de um novo produto cosmético também apresentam suas características particulares inerentes ao produto ou serviço a ser desenvolvido. Considere que um novo software precisa ser desenvolvido para a gestão de armazéns de grãos de soja e milho. Assinale a alternativa que apresenta o melhor conjunto de características e habilidades para contratar o gerente desse projeto: a. Graduado em engenharia agronômica, capacidade de liderança, persistente e com visão de curto prazo. b. Graduado em análise e desenvolvimento de sistemas, capacidade de liderança, eficiente na comunicação e com visão de longo prazo. c. Graduado em engenharia agronômica, capacidade de desenvolver equipes, eficiente na comunicação e com visão de curto prazo. d. Graduado em engenharia agronômica, volúvel, eficiente na comunicação e com visão de longo prazo. e. Graduado em análise e desenvolvimento de sistemas, capacidade de liderança, eficiente na comunicação e com visão de curto prazo. PERGUNTA 5 1. O protótipo é uma versão “inicial de um sistema utilizado para demonstrar conceitos, experimentar opções de projeto e descobrir mais sobre o problema e suas possíveis soluções. O desenvolvimento rápido e interativo do protótipo é essencial para que os custos sejam controlados e os stakeholders do sistema possam experimentar o protótipo no início do processo de desenvolvimento do software” (SOMMERVILLE, 2019, p. 47-48). SOMMERVILLE, I. Engenharia de software. 10. ed. São Paulo: Pearson, 2019. Assim sendo, analise as afirmativas a seguir. I. Os protótipos de sistema possibilitam a observação do sistema por parte de usuários para abstrair até onde ele pode ajudar seu trabalho. II. A especificação do sistema não pode ser modificada, mesmo com a mudança na compreensão dos requisitos. III. A prototipação rápida com envolvimento do usuário final é uma forma consistente para que se desenvolva adequadamente a interface do/com usuário. IV. O tratamento e o gerenciamento deerros são ações possíveis de serem ignoradas na prototipação, salvo casos para estabelecer interface com usuário. Está correto o que se afirma em: a. I, II e IV, apenas b. II e III, apenas c. I, III e IV, apenas d. I e II, apenas e. I e III, apenas PERGUNTA 6 1. Conforme sentencia o PMBOK (2017), “um projeto é um esforço temporário que tem como finalidade um resultado único e possui recursos delimitados”. PMI. Um guia do conhecimento em gerenciamento de projetos. Guia PMBOK, 6. ed. EUA: Project Management Institute, 2017. Levando em consideração as características inerentes a um projeto de qualquer natureza, identifique se são (V) verdadeiras ou (F) falsas as afirmativas a seguir. I. ( ) Deve ter data de início, pausa e fim definidas. II. ( ) Tem a intenção de criar um novo produto ou serviço, ou ainda aprimorar algo já existente. III. ( ) Precisa ter um escopo inicial bem detalhado, para que as datas de início e fim sejam cumpridas sem alterações. IV. ( ) Deve ter estimativas dos custos e recursos que serão utilizados, como profissionais, materiais e infraestrutura. Assinale a alternativa que apresenta a sequência CORRETA. a. V - F - V - F. b. F - V - F - V. c. F - V - V - V. d. V - V - V - V. e. F - F - F - V. PERGUNTA 7 1. De acordo com Sommerville (2019, p. 31), os modelos genéricos de processos de software “são descrições mais gerais e abstratas dos processos de software, e podem ser utilizados para explicar as diferentes abordagens ao desenvolvimento de software. Você pode encará-los como estruturas de processo que podem ser ampliadas e adaptadas para criar processos de engenharia de software mais específicos”. Fonte: SOMMERVILLE, I. Engenharia de software. 10. ed. São Paulo: Pearson, 2019. Sobre os modelos genéricos, analise as afirmações a seguir. I. O modelo clássico em cascata divide o ciclo de vida num conjunto de fases que considera que cada uma só pode ser iniciada após a conclusão da fase anterior. II. O desenvolvimento incremental interpõe atividades baseadas em especificação, desenvolvimento e avaliação de software, com uma série de versões a serem entregues. III. A metodologia ágil é uma estrutura de gerenciamento de projetos que divide os projetos em várias fases dinâmicas, comumente conhecidas como sprints, concentrando-se na comunicação com o usuário. IV. Integração e configuração representam os requisitos de gerenciamento do software, o ambiente em que será utilizado e o tipo de software que a equipe responsável está desenvolvendo. Está correto o que se afirma em: a. I, II e IV, apenas. b. I e III, apenas. c. I, III e IV, apenas. d. I e II, apenas. e. II e III, apenas. PERGUNTA 1 1. Os processos de software são complexos e, como processos intelectuais e criativos, dependem da tomada de decisão e do julgamento das pessoas. Um modelo de processo ou modelo de ciclo de vida é um modelo descritivo que fornece as melhores práticas para realizar o desenvolvimento de software (ou seja, para realizar o processo de software). Considerando o apresentado, avalie as asserções a seguir e a relação proposta entre elas. I. O desenvolvimento profissional de software necessita ser gerenciado, baseado num planejamento que deve ser aplicado a todos os processos. POIS II. Ainda que não exista um padrão universal de processo de software, sempre há espaço para que se melhorem os processos presentes nas muitas organizações. A respeito dessas asserções, assinale a alternativa correta. a. A asserção I é uma proposição verdadeira, enquanto a II é falsa. b. A asserção II é uma proposição verdadeira, enquanto a I é falsa. c. As asserções I e II são proposições falsas. d. As asserções I e II são proposições verdadeiras, e a II é uma justificativa para a I. e. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa para a I. PERGUNTA 2 1. Os processos de software são “um conjunto de atividades relacionadas que levam à produção de um sistema de software” (SOMMERVILLE, 2019, p. 30). Existem diversos modelos para guiar um processo de desenvolvimento de software, e Sommerville aponta que “os processos de software são complexos e, como processos intelectuais e criativos, dependem da tomada de decisão e do julgamento das pessoas. Uma vez que não existe um processo universal que valha para todos os tipos de software, a maioria das empresas produtoras de software concebeu seus próprios processos de desenvolvimento” (SOMMERVILLE, 2019, p. 30). SOMMERVILLE, I. Engenharia de software. 10. ed. São Paulo: Pearson, 2019. Observe a figura a seguir. Fonte: Adaptado de Sommerville (2019, p. 35). O tipo de desenvolvimento descrito na figura, que se baseia na ideia de desenvolver uma implementação inicial, em obter feedback de usuários ou terceiros e em fazer o software evoluir através de várias versões, é conhecido como: a. cascata. b. espiral. c. integrado. d. ágil. e. incremental. PERGUNTA 4 1. O papel do gerente de projeto envolve planejamento, monitoramento e controle de pessoas e processos que ocorrem conforme evolui o desenvolvimento do software (produto). Além disso estabelece objetivos do projeto e busca, por meio de ambiente propício e equipe motivada, alcançá-los dentro de prazo e custo previamente estabelecidos. É responsável, ainda, por intermediar a comunicação, buscando sempre proteger a equipe e mantê-la unida, como um verdadeiro time. Considerando o apresentado, avalie as afirmações a seguir. I. O gerente de projeto de software reúne os recursos e desenho relacionado a todo o projeto, onde serão definidos escopo, recursos necessários, cronograma, procedimento para execução etc. II. A pessoa que gerencia projetos de software supervisionará a execução bem- sucedida de cada etapa do projeto, incluindo monitoramento de progresso, realização de check-ins frequentes de equipe e criação de relatórios. III. Os gerentes de projeto podem usar uma variedade de ferramentas e métodos para planejar projetos, desenvolvendo uma compreensão clara dos objetivos do projeto e identificando as etapas para atingi-los. IV. O gerenciamento de projetos de software incentiva o teste constante do produto para descobrir e corrigir erros com antecedência, ajustar o produto final às necessidades do cliente e manter o projeto no alvo. Está correto o que se afirma em: a. II e III, apenas. b. I e III, apenas. c. I e II, apenas. d. I, II, III e IV. e. I, II e IV, apenas. PERGUNTA 5 1. Segundo Sommerville (2011), o processo de software é entendido como um conjunto de atividades responsáveis pela especificação, projeto, implementação e testes. Para o desenvolvimento de software, é aconselhável tratá-lo como projeto, no qual, comumente, as etapas são divididas em: início, organização, execução e fim. SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson, 2011. Levando em consideração os distintos tipos de ciclos de vida de um projeto de desenvolvimento de software, identifique se são (V) verdadeiras ou (F) falsas as afirmativas a seguir. I. ( ) Os ciclos de vida preditivos determinam claramente o escopo, prazo e custo do projeto. Normalmente, são organizados em fases sequenciais, com enfoque em subprodutos distintos. II. ( ) Os ciclos de vida iterativos repetem atividades do projeto em fases, e em cada uma delas a equipe do projeto aumenta seu entendimento do produto. Essas iterações tendem a melhorar os entregáveis, ou ainda criar novos, em que o produto final será a acumulação de funcionalidades construída nessas iterações. III. ( ) Os ciclos de vida preditivos servem para gerenciar objetivos pouco definidos ou de alta complexidade, ou ainda quando a entrega parcial do produtoé algo fundamental para a consolidação das ideias e o consenso de sucesso do projeto. IV. ( ) Os ciclos de vida adaptativos são similares aos iterativos, porém com delimitações muito claras das iterações e seus objetivos – que podem ser centrados no fluxo ou no incremento de funcionalidades. V. ( ) Os ciclos de vida adaptativos são mais adequados que os ciclos preditivos para projetos em que o escopo do produto ou serviço a ser entregue está bem definido e existe pleno conhecimento de como se deve desenvolver a solução. Assinale a alternativa que apresenta a sequência CORRETA. a. V - V - F - V - V. b. F - V - V - V - F. c. F - F - F - F - V. d. V - V - F - V - F. e. V - F - V - F - F. PERGUNTA 6 1. No livro clássico “How to solve it”, George Polya descreveu em linhas gerais a essência da solução de problemas e, consequentemente, a essência da prática da engenharia de software: 1. Compreender o problema (comunicação e análise). 2. Planejar uma solução (modelagem e projeto de software). 3. Executar o plano (geração de código). 4. Examinar o resultado para ter precisão (testes e garantia da qualidade). Mas a prática da engenharia e o desenvolvimento de software são bem mais complexos do que seguir um passo a passo, pois antes de iniciar o desenvolvimento de um software, é fundamental que seu propósito esteja bem claro para todos os envolvidos (cliente, patrocinador e equipe do projeto), assim como outros princípios devem ser considerados durante todo o ciclo de vida do projeto. Levando em consideração os sete princípios da prática de engenharia de software propostos por David Hooker, identifique se são (V) verdadeiras ou (F) falsas as afirmativas a seguir. I. ( ) Um projeto de software precisa ser simples e descomplicado, pois simplificar diminui o número de iterações necessárias e torna a entrega do projeto mais ágil. II. ( ) Um projeto de software deve ser especificado para os implementadores, projetado para os usuários e codificado para que sejam viáveis a manutenção e a evolução por outros programadores. III. ( ) Um projeto de software que investe mais tempo em análise do que na execução, na maioria das vezes, produz melhores resultados. IV. ( ) Um projeto de software que contempla em seu planejamento a reutilização de código reduz o custo e aumenta o valor tanto dos componentes reutilizáveis quanto dos sistemas aos quais eles serão incorporados. Assinale a alternativa que apresenta a sequência CORRETA. a. V - F - V - F. b. F - F - V - V. c. V - F - V - V. d. F - V - F - V. e. V - V - V - V .