Baixe o app para aproveitar ainda mais
Prévia do material em texto
FPC-SEMANA 03 Pergunta 1 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 - V - V - V . b. V - F - V - V. c. F - F - V - V. d. F - V - F - V. e. V - F - V - F. Pergunta 3 1. O software é considerado um produto intangível, e seu desenvolvimento é uma espécie de fluxo totalmente novo nos negócios mundiais — há, portanto, pouca experiência na construção de produtos de software. A maioria dos produtos de software, por sua vez, é feita sob medida para atender a requisitos de clientes. O mais importante é a tecnologia subjacente mudar e avançar com tanta frequência e rapidez que a experiência de um produto pode não ser aplicada ao outro. Todas essas restrições de negócios e ambientais trazem riscos no desenvolvimento de software, portanto é essencial gerenciar projetos de software com eficiência e seus processos incluídos. Sobre conceitos de projeto e processo, avalie as afirmações a seguir. I. Ao implementar um projeto, o objetivo é realizar mudanças, muitas vezes drásticas, e incorporá-las aos processos do dia a dia da empresa. II. Um processo é definido por ciclos e, como um projeto, também tem começo, meio e fim, se repetindo, porém, durante um período médio de tempo. III. Os projetos têm escopo e prazo definidos, por exemplo, a criação de um site para uma empresa ou o esforço para integrar funcionários. IV. A execução de um processo aponta a um resultado exclusivo, o qual nenhum outro processo, nem sua repetição, gerará posteriormente. Está correto o que se afirma em: a. I e II, apenas b. I, II e IV, apenas c. I, II e III, apenas d. II e III, apenas e. I, III e IV, apenas Pergunta 3 1. O software é uma sequência de instruções escritas para serem interpretadas por um computador, com o objetivo de executar tarefas específicas. É a parte lógica de sistemas computacionais que utilizam os recursos de hardware por meio de suas instruções. Nas mais variadas situações da vida, os softwares estão lá, como em prontuários eletrônicos que registram a vida clínica de pacientes, ou em um sistema de organização do mapa de localização de produtos em um centro de distribuição logístico. Assinale qual das alternativas abaixo apresenta a composição de um software: a. Programas, documentos e estrutura de dados. b. Programas, documentos e banco de dados. c. Componentes, documentos e estrutura de dados. d. Componentes, documentos e banco de dados. e. Programas, componentes e banco de dados. Pergunta 4 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. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa para a I. c. As asserções I e II são proposições verdadeiras, e a II é uma justificativa para a I. d. A asserção I é uma proposição verdadeira, enquanto a II é falsa. e. A asserção II é uma proposição verdadeira, enquanto a I é falsa. Pergunta 5 1. O software é considerado um produto intangível, e seu desenvolvimento é uma espécie de fluxo totalmente novo nos negócios mundiais — há, portanto, pouca experiência na construção de produtos de software. A maioria dos produtos de software, por sua vez, é feita sob medida para atender a requisitos de clientes. O mais importante é a tecnologia subjacente mudar e avançar com tanta frequência e rapidez que a experiência de um produto pode não ser aplicada ao outro. Todas essas restrições de negócios e ambientais trazem riscos no desenvolvimento de software, portanto é essencial gerenciar projetos de software com eficiência e seus processos incluídos. Sobre conceitos de projeto e processo, avalie as afirmações a seguir. I. Ao implementar um projeto, o objetivo é realizar mudanças, muitas vezes drásticas, e incorporá-las aos processos do dia a dia da empresa. II. Um processo é definido por ciclos e, como um projeto, também tem começo, meio e fim, se repetindo, porém, durante um período médio de tempo. III. Os projetos têm escopo e prazo definidos, por exemplo, a criação de um site para uma empresa ou o esforço para integrar funcionários. IV. A execução de um processo aponta a um resultado exclusivo, o qual nenhum outro processo, nem sua repetição, gerará posteriormente. Está correto o que se afirma em: a. II e III, apenas b. I e II, apenas c. I, II e IV, apenas d. I, III e IV, apenas e. I, II e III, apenas Pergunta 6 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-V; 2-IV; 3-II; 4-I; 5-III. b. 1-I; 2-IV; 3-III; 4-V; 5-II. c. 1-II; 2-I; 3-IV; 4-III; 5-V. d. 1-IV; 2-II; 3- I; 4-V; 5-III. e. 1-II; 2-IV; 3-V; 4-III; 5-I. Pergunta 7 1. De acordo com Maxim e Pressman (2016), uma metodologia de processo cria a base para um processo de engenharia de software completo, por meio da identificação de um pequeno número de atividades metodológicas aplicáveis a todos os projetos de software, independentemente de tamanho ou complexidade. PRESSMAN, R. S; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. Avalie as afirmações a seguir, em relação às cinco atividades genéricas de uma metodologia de processo, e as relacione adequadamente aos termos às quais se referem. 1 – Entrega. 2 – Construção. 3 – Modelagem. 4 – Planejamento. 5 – Comunicação. I.Compreende os objetivos dos envolvidos e define o escopo e os recursos do projeto. II.Esboça e prototipa, para que todos os envolvidos no projeto entendam melhor as necessidades do software a ser desenvolvido. III.É avaliada pelo cliente que analisa o que foi apresentado em relação ao escopo definido e acertado entre os envolvidos, sendo que após essa análise, o cliente deve retornar o aceite ou não. IV.Define um mapa que guia a equipe do projeto, descrevendo tarefas, riscos e recursos. V.Engloba os testes que são realizados pela equipe do projeto antes de apresentar para o cliente. Assinale a alternativa que correlaciona adequadamente os dois grupos de informação: a. 1-V; 2-III; 3-I; 4-IV; 5-II. b. 1-V; 2-II; 3-III; 4-IV; 5-I. c. 1-V; 2-III; 3-II; 4-IV; 5-I. d. 1-III; 2-V; 3-II; 4-IV; 5-I. e. 1-I; 2-V; 3-II; 4-IV; 5-III. Pergunta 8 1. Segundo Maxim e Pressman (2016), a engenharia de software abrange um processo, um conjunto de práticas e um leque de ferramentas que possibilitam aos profissionais desenvolverem um software de altíssima qualidade. PRESSMAN, R. S; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. Portanto, a engenharia de software é definida em quatro camadas distintas, conforme ilustra a figura abaixo: Fonte: PRESSMAN; MAXIM (2016), p.16. Referência completa: PRESSMAN, R. S; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. Sobre isso, analise as asserções a seguir e as relações propostas entre elas. I. A base da engenharia de software é a camada de processos PORQUE II. é a cultura de qualidade que leva ao desenvolvimento de abordagens cada vez mais eficazes na engenharia de software, sendo o foco em qualidade a pedra fundamental que sustenta a engenharia de software. Analisando as asserções anteriores, conclui-se que: a. A primeira asserção é falsa e a segunda é verdadeira. b. A primeira asserção é verdadeira e a segunda é falsa. c. As duas asserções são falsas. d. As duas asserções são verdadeiras e a segunda não justifica a primeira. e. As duas asserções são verdadeiras e a segunda justifica a primeira. Pergunta 9 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. As asserções I e II são proposições falsas. b. A asserção II é uma proposição verdadeira, enquanto a I é falsa. c. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa para a I. d. A asserção I é uma proposição verdadeira, enquanto a II é falsa. e. As asserções I e II são proposições verdadeiras, e a II é uma justificativa para a I. Pergunta 10 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 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 verdadeiras, mas a II não é uma justificativa para a I 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 falsas
Compartilhar