Prévia do material em texto
ED 1) Assinale a função correta de engenharia de requisitos: c) Ajudar os engenheiros de software a compreender melhor o problema que eles vão trabalhar para resolver. Resposta: A engenharia de requisitos é um processo que engloba todas as atividades quecontribuem para a produção de um documento de requisitos e sua manutenção aolongo do tempo 2) No processo de desenvolvimento de um sistema de controle de materiais (matérias-primas) para uma metalúrgica, a equipe de projeto, responsável pelo mapeamento dos requisitos, desenvolveu seus trabalhos seguindo os quatro subprocessos da engenharia de requisitos. Inicialmente, foram feitas a análise e a avaliação para se verificar se o sistema seria útil ao negócio. Em um segundo momento, os requisitos foram identificados e analisados e, logo em seguida, foram documentados. Finalmente, foi verificado se os requisitos identificados atendiam às demandas dos usuários. Tendo sido executado esse procedimento, uma empresa independente de auditoria, após análise, identificou dois problemas no processo: a documentação dos requisitos (formulários e padrões utilizados) estava inadequada e não possibilita o entendimento correto dos requisitos; o processo de checagem entre as demandas dos usuários e as especificações relatadas não foi bem conduzido e seus resultados eram insatisfatórios. Considerando o relatório da auditoria independente, quais foram as duas fases do de engenharia de requisitos que apresentaram problemas? d) Especificação e validação. Resposta: A especificação de requisitos do usuário e a validação, que é a analise derequisitos, não foram feitas devidamente. A validação deve ser realizada atravésde um checklist, analisando validade, consistência, verificabilidade e etc. 3) Requisitos de um sistema são frequentemente classificados como funcionais, não-funcionais e de domínio. Qual a definição que melhor descreve requisitos não-funcionais? d) São requisitos que não estão diretamente relacionados com as funções específicas do sistema. Resposta: Em engenharia de sistemas de software, um requisito não funcional desoftware é aquele que descreve não o que o sistema fará, mas como ele fará.Assim, por exemplo, têm-se requisitos de desempenho, requisitos da interfaceexterna do sistema, restrições de projeto e atributos da qualidade. A avaliaçãodos requisitos não funcionais é feita, em parte, por meio de testes, enquanto queoutra parte é avaliada de maneira subjetiva. 4) Engenharia de Software inclui um grande número de teorias, conceitos, modelos, técnicas e métodos. Analise as seguintes definições. I) No planejamento de projetos de software, há várias técnicas que podem ser usadas para estimativa de custo e esforço. A técnica de Pontos por Função é uma técnica de estimativa que, embora não seja relacionada diretamente a linhas de código, é utilizada também para a obtenção de métricas de produtividade e qualidade do desenvolvimento de software; II) CMMI (Capability Maturity Model Integration) é um modelo estabelecido pelo Software Engineering Institute (SEI) que propõe níveis de competência organizacional relacionados à qualidade do processo de desenvolvimento de software; III) Engenharia Reversa é o processo de inferir ou reconstruir um modelo de mais alto nível (projeto ou especificação) a partir de um documento de mais baixo nível (tipicamente um código fonte); Levando-se em conta as três afirmações I, II e III acima, identifique a única alternativa válida: e) As afirmações I, II e III estão corretas Resposta: Todas as afirmações estão corretas. 1º Existem diversas técnicas que ajudam desenvolvedores na estimativa de software: de Planning Poker, vinda dos métodos ágeis, até a Estimativa por Analogia. 2º O “Capability Maturity Model®Integration” (CMMI) é uma abordagem de melhoria de processos que fornece às organizações elementos essenciais de processos eficazes. Pode ser usado para guiar a melhoria de processo em um projeto, divisão ou em uma organização inteira. 3º Engenharia reversa é o processo de descobrir os princípios tecnológicos e o funcionamento de um dispositivo, objeto ou sistema, através da análise de sua estrutura, função e operação. Objetivamente a engenharia reversa consiste em, por exemplo, desmontar uma máquina para descobrir como ela funciona. 5) Analise estas afirmativas relacionadas à gerência de configuração de software: I. Os artefatos que fazem parte de uma linha-base somente podem ser alterados mediante procedimentos formais de controle de modificação. II. A identificação dos itens de configuração é processo integrante da gerência de configuração. III. Controle de mudanças e controle de versões têm o mesmo significado no contexto da gerência de configurações. A partir dessa análise, pode-se concluir que d) apenas as afirmativas I e II estão corretas. Resposta: Única afirmação incorreta é a 3. Controle de mudanças e gerência deconfigurações não tem o mesmo significado, enquanto uma quer compreender eaprovar “o que” está sendo mudado em relação ao planejamento inicial, a outrase preocupa mais com “como” e “quando” essas mudanças serão inseridas nofluxo de trabalho. 6) São axiomas em risco c) É impossível testar um programa completamente. Teste de software é um exercício baseado em risco. Quanto mais bugs forem encontrados, mais bugs existirão. Resposta: A crença de que um software pode ser verificado completamente é um mitosimplesmente porque é praticamente impossível verificar todas as possibilidadesde um software. 7) O Fluxo de Análise das ameaças e riscos, na ordem apresentada, consiste de e) identificação das ameaças, determinação das probabilidades dos riscos, determinação dos pesos dos riscos, avaliação do risco, estabelecimento de prioridades de proteção, adoção de medidas de proteção. Resposta: Risco é a “exposição à chance de perdas ou danos”. Embora exista tambémuma chance de alguma coisa sair melhor do que o esperado, o risco geralmentecostuma ser associado a possíveis perdas ou danos. O conceito de risco resulta daincerteza quanto a eventos futuros e é parte de todas as atividades dedesenvolvimento. Para fazer a analise das ameaças e riscos é seguido a seguintesequência: identificação das ameaças, determinação das probabilidades dosriscos, determinação dos pesos dos riscos, avaliação do risco, estabelecimento deprioridades de proteção, adoção de medidas de proteção. 8) Analise as seguintes afirmativas sobre Engenharia de Software: I) Os modelos de maturidade têm o objetivo de avaliar a qualidade dos processos de software aplicados em uma organização (empresa ou instituição). Um exemplo de modelo de maturidade muito conhecido é o Capability Maturity Model Integration (CMMI) do Software Engineering Institute (SEI). II) Refactoring é o processo de modificar um sistema de software para melhorar seu comportamento externo, minimizando alterações na estrutura interna do código. III) Programação extrema (eXtreme Programming), ou simplesmente XP, é uma metodologia ágil para equipes pequenas e médias que irão desenvolversoftware com requisitos vagos e em constante mudança. Para isso, adota a estratégia de constante acompanhamento e realização de vários pequenos ajustes durante o desenvolvimento de software. São VERDADEIRAS as afirmativas: b) i e iii Resposta: Única afirmação incorreta é a 2º. Refactoring é o ato de reescrever um códigode forma mais elegante, mais clara, mais performante sem alterar afuncionalidade do código (comportamento externo). 9) A construção de sistemas é difícil devido à sua complexidade. Um fator crucial para gerenciar esta complexidade é o processo adotado para o desenvolvimento. O conjunto básico de atividades e a ordem em que são realizadas neste processo definem o que é também denominado de ciclo de vida do software. Analise as seguintes afirmações sobre processos de software: I) Um modelo de processo de software é uma representação abstrata de um processo; Exemplos de modelo de processos de software genéricos são o modelo waterfall (cascata) e o spiral (espiral); II) O modelo de processowaterfall ainda é hoje em dia um dos mais difundidos e tem por característica principal a codificação de uma versão executável do sistema desde as fases iniciais do desenvolvimento, de modo que o sistema final é incrementalmente construído, daí a alusão à idéia de “cascata” (waterfall); III) Em um processo de software incremental, o desenvolvimento do sistema é iterativo e partes de suas funcionalidades (denominadas “incrementos”) são entregues na medida em que são desenvolvidas; assim, estas entregas parciais tentam priorizar as necessidades mais urgentes do usuário e podem auxiliar a revisão e a uma melhor definição das partes ainda não entregues; Levando-se em conta as três afirmações I, II e III acima, identifique a única alternativa válida: c) Apenas a I e a III estão corretas; Resposta: Única afirmação incorreta é a 2º. O modelo de processo waterfall é utilizado principalmente quando os requisitos de um determinado problema são bem compreendidos. Uma forma de utilizar o modelo cascata é quando precisamos fazer adaptações ou aperfeiçoamentos em um sistema já existente MODULO 2 (10) 2) Qual das alternativas abaixo não corresponde a um fator da qualidade de software, segundo McCALL? B)Derivação. Resposta: Os fatores de qualidade de software de McCALL incluem aspectos como corretude, confiabilidade, reusabilidade e integridade. "Derivação" não é um dos fatores definidos nesse modelo (11) 3) NÃO é uma atividade do grupo de Garantia de Qualidade de Software (SQA): d) Corrigir e verificar se as correções foram feitas dentro do padrão estabelecido. Resposta: A função da Garantia de Qualidade de Software (SQA) é focar na prevenção de defeitos e na auditoria dos processos, em vez de realizar correções. A correção de defeitos é tipicamente uma responsabilidade da equipe de desenvolvimento (12) 9) A garantia de qualidade de software é uma atividade de guarda-chuva que é aplicada ao longo de todo o processo de engenharia de software, que abrange: I. métodos e ferramentas de análise, projeto, codificação e testes; II. revisões técnicas formais que são aplicadas durante cada fase de engenharia de software; III. uma estratégia de teste de múltiplas fases; IV. controle da documentação de software e das mudanças feitas nela; V. um procedimento para garantir a adequação aos padrões de desenvolvimento de software (quando aplicáveis); VI. mecanismos de medicação e divulgação. Quais itens estão corretos? E I, II, III, IV, V e VI. Resposta: Todos os itens listados são componentes importantes da garantia de qualidade de software MODULO 3 (13) 1) O gerenciamento de configuração de software (GCS) é uma atividade que deve ser realizada para identificar, controlar, auditar e relatar as modificações que ocorrem durante todo o desenvolvimento ou mesmo durante a fase de manutenção, depois que o software for entregue ao cliente. O GCS é embasado nos chamados itens de configuração, que são produzidos como resultado das atividades de engenharia de software e que ficam armazenados em um repositório. Com relação ao GCS, analise as duas asserções apresentadas a seguir. No GCS, o processo de controle das modificações obedece ao seguinte fluxo: começa com um pedido de modificação de um item de configuração, que leva à aceitação ou não desse pedido e termina com a atualização controlada desse item no repositório porque o controle das modificações dos itens de configuração baseia-se nos processos de check-in e check-out que fazem, respectivamente, a inserção de um item de configuração no repositório e a retirada de itens de configuração do repositório para efeito de realização das modificações. Acerca dessas asserções, assinale a opção correta. B) As duas asserções são proposições verdadeiras, e a segunda não é uma justificativa correta da primeira. Resposta: Primeira asserção: É verdadeira. O processo de controle das modificações no gerenciamento de configuração de software realmente começa com um pedido de modificação, que pode ser aceito ou não, e termina com a atualização controlada do item no repositório. Segunda asserção: Também é verdadeira. Ela descreve corretamente os processos de check-in e check-out, que são fundamentais para a gestão das modificações dos itens de configuração. (14) 2) Analise estas afirmativas relacionadas à gerência de configuração de software: I. Os artefatos que fazem parte de uma linha-base somente podem ser alterados mediante procedimentos formais de controle de modificação. II. A identificação dos itens de configuração é processo integrante da gerência de configuração. III. Controle de mudanças e controle de versões têm o mesmo significado no contexto da gerência de configurações. A partir dessa análise, pode-se concluir que: D) Apenas as afirmativas I e II estão corretas. Resposta: III: Falsa. Controle de mudanças e controle de versões não têm o mesmo significado; controle de mudanças se refere ao processo de gerenciar alterações, enquanto controle de versões se refere ao gerenciamento das diferentes versões de um artefato. (15) 3) O processo de Gerência de Configuração de Software é definido por quatro funções básicas, a saber C) Identificação, Documentação, Controle e Auditoria. Resposta: Essas quatro funções básicas são fundamentais no processo de Gerência de Configuração de Software (GCS) e envolvem: Identificação: Definir e classificar os itens de configuração. Documentação: Manter registros dos itens de configuração e suas mudanças. Controle: Gerenciar e controlar as mudanças nos itens de configuração. Auditoria: Verificar e validar a conformidade dos itens de configuração em relação ao que foi definido. (16) 4) Considere as seguintes assertivas sobre a Gerência de Configuração de Software: I- Um baseline somente pode ser alterado por processos formais de controle de alteração. II-O controle de versões pode ser descrito pelo grafo de evolução do software. III-A inserção de um objeto no repositório (check-in) necessariamente invoca o mecanismo de controle de versão. As assertivas corretas são: E) I, II e III Resposta: I: Correta. Um baseline só pode ser alterado por meio de processos formais de controle de alteração, garantindo a integridade do sistema. II: Correta. O controle de versões pode, de fato, ser representado por um grafo de evolução, que mostra como o software muda ao longo do tempo. III: Correta. A inserção de um objeto no repositório (check-in) normalmente invoca o mecanismo de controle de versão para registrar essa nova versão do objeto. (17) 9) Assinale a alternativa falsa A gestão de configuração de software visa garantir que: C) todas as alterações em itens das linhas de base sejam controladas, mas não checadas Resposta: No contexto da gestão de configuração de software, todas as alterações em itens das linhas de base devem ser controladas e checadas. O controle envolve não apenas a autorização das mudanças, mas também a verificação da implementação correta e a manutenção da integridade do sistema. Portanto, a afirmação de que as alterações não são checadas é incorreta. (18) 11) Não é uma atividades do Grupo de Gestão de Configuração de Software: D) administração das bibliotecas de configurações, excluindo a manutenção, análise de integridade, emissão de relatórios gerenciais e realização de cópias de segurança Resposta: A administração das bibliotecas de configurações deve incluir a manutenção, análise de integridade, emissão de relatórios gerenciais e realização de cópias de segurança. Excluir essas atividades contradiz os princípios da gestão de configuração, que visa garantir a integridade e a disponibilidade dos itens de configuração MODULO 4 (19) 4) Determinado órgão público deseja analisar, quantitativamente, alguns riscos de seus projetos de software. Que técnica é apropriada para atingir tal objetivo? B) Monte Carlo. Resposta: A Simulação de Monte Carlo é uma técnica estatística que utiliza amostragens aleatórias para modelar e quantificar riscos em projetos. Ela permite a análise de incertezas e variáveis em um projeto,ajudando a prever a probabilidade de diferentes resultados e a identificar riscos potenciais. (20) 5) Na especificação dirigida a riscos, a compreensão da probabilidade de ocorrência de um risco e das consequências potenciais, se um acidente ou incidente, associado com este risco, ocorrer, é da competência do processo de E) análise e classificação de riscos. Resposta: A análise e classificação de riscos envolve a identificação, avaliação e priorização dos riscos, considerando tanto a probabilidade de ocorrência quanto as consequências potenciais desses riscos. Esse processo é fundamental para a gestão de riscos em projetos de software e para a criação de estratégias de mitigação eficazes.