Prévia do material em texto
<p>Estimativas e Métricas de Software Avaliação final obj –</p><p>Individual</p><p>1</p><p>O método de Pontos de Caso de Uso surge devido à falsa noção de que a Análise de</p><p>Pontos de Função (APF) não era adequada para medir sistemas orientados a objetos no</p><p>início dos anos 1990. No entanto, essa noção baseava-se em um desconhecimento</p><p>prático da APF, que mede o software em termos de sua funcionalidade relacionada aos</p><p>fluxos operacionais do negócio, independentemente da tecnologia ou abordagem de</p><p>desenvolvimento utilizada. Com a disseminação dos sistemas orientados a objetos e a</p><p>adoção da UML e dos casos de uso como padrões da indústria de software, esse</p><p>fenômeno se repete 20 anos depois com as Histórias do Usuário.</p><p>Fonte: adaptado de: O QUE são Pontos de Caso de Uso (ou Use Case Points).</p><p>FATTOCS, c2024. Disponível em: https://www.fattocs.com/blog/o-que-sao-pontos-de-</p><p>caso-de-uso-ou-use-case-points/. Acesso: 25 jan. 2024.</p><p>Com base nas informações apresentadas, avalie as asserções a seguir e a relação</p><p>proposta entre elas:</p><p>I. O processo de contagem de Pontos de Função envolve, dentre outros passos, reunir a</p><p>documentação do software.</p><p>PORQUE</p><p>II. A documentação captura a visão do usuário, descrevendo as necessidades do negócio</p><p>de forma compreensível tanto para os usuários quanto para os desenvolvedores.</p><p>A respeito dessas asserções, assinale a opção correta:</p><p>A</p><p>A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.</p><p>B</p><p>As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.</p><p>C</p><p>A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.</p><p>D</p><p>As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.</p><p>2</p><p>Conforme indicado por Henry (1981), também podemos utilizar métricas de software</p><p>em combinação com funções de gerenciamento para simplificar seus projetos,</p><p>projetando procedimentos mais eficientes, fazendo planos de manutenção de software e</p><p>mantendo as equipes de produção informadas sobre os problemas que precisam ser</p><p>corrigidos. Muitos indicadores estão interligados ao longo do processo de</p><p>desenvolvimento de software. As quatro funções de gerenciamento são equivalentes às</p><p>métricas de software: planejamento, organização, controle e melhoria.</p><p>Fonte: adaptado de: HENRY, S. D. K. Software structure metrics based on information</p><p>flow. IEEE Transactions on Software Engineering, [s. l.], v. 7, n. 5, p. 510-518, maio</p><p>1981.</p><p>Conforme o exposto, para otimizar o desenvolvimento e a manutenção de software,</p><p>pode ser usada essa métrica: eliminar a taxa de falhas durante o desenvolvimento, o</p><p>padrão de teste de chegada de defeitos e o tempo que leva para uma operação fixa ser</p><p>concluída são exemplos. Assinale a alternativa correta que corresponde a essa métrica:</p><p>A</p><p>Métricas do produto.</p><p>B</p><p>Métricas de testes.</p><p>C</p><p>Métricas do design.</p><p>D</p><p>Métricas de processo.</p><p>3</p><p>As ferramentas de métricas de software desempenham um papel essencial na análise e</p><p>avaliação da qualidade do código de um programa. Elas permitem identificar e analisar</p><p>diferentes problemas e características do software, contribuindo para uma melhor</p><p>compreensão de sua estrutura e possibilitando a tomada de decisões embasadas em</p><p>dados objetivos. Dentre os principais problemas analisados por essas ferramentas,</p><p>destacam-se a complexidade ciclomática, o código duplicado, vulnerabilidades e bugs,</p><p>padronização/estilo, débito técnico e a cobertura de testes. Cada uma dessas métricas</p><p>fornece informações valiosas sobre o código, permitindo que os desenvolvedores</p><p>adotem ações corretivas e preventivas para aprimorar a qualidade do software.</p><p>Fonte: adaptado de: BARRADAS, T. Análise contínua de qualidade do software.</p><p>Medium, 2019. Disponível em: https://medium.com/thiagobarradas/an%C3%A1lise-</p><p>cont%C3%ADnua-de-qualidade-do-software-bb7b03518bcc. Acesso: 25 jan. 2024.</p><p>Conforme o exposto, assinale a alternativa correta quanto à complexidade ciclomática e</p><p>sua importância na avaliação da qualidade do código de um software:</p><p>A</p><p>A complexidade ciclomática mede o esforço necessário para corrigir problemas em um</p><p>software e é um indicador de sua confiabilidade e segurança.</p><p>B</p><p>A complexidade ciclomática mensura a complexidade de partes do software contando</p><p>os possíveis caminhos independentes que podem ser executados.</p><p>C</p><p>A complexidade ciclomática avalia a quantidade de testes realizados no software e sua</p><p>cobertura de casos lógicos.</p><p>D</p><p>A complexidade ciclomática verifica se o código está escrito de forma padronizada,</p><p>seguindo as boas práticas de codificação.</p><p>4</p><p>O Programa MPS.BR é um programa mobilizador, de longo prazo, criado em dezembro</p><p>de 2003, coordenado pela Associação para Promoção da Excelência do Software</p><p>Brasileiro (SOFTEX), com apoio do Ministério da Ciência, Tecnologia e Inovação</p><p>(MCTI), Financiadora de Estudos e Projetos (FINEP), Serviço Brasileiro de Apoio às</p><p>Micro e Pequenas Empresas (SEBRAE) e Banco Interamericano de Desenvolvimento</p><p>(BID/FUMIN). O objetivo do programa MPS.BR é o aumento da competitividade das</p><p>organizações pela melhoria de seus processos.</p><p>Fonte: adaptado de: SOFTEX. MPS.BR - Guia Geral MPS de Software. 2016.</p><p>Disponível em: https://www.softex.br/wp-</p><p>content/uploads/2018/11/MPS.BR_Guia_Geral_Software_2016-com-ISBN.pdf. Acesso</p><p>em: 23 jan. 2024.</p><p>Conforme o exposto, sobre os processos presentes no nível F do MPS.BR, analise as</p><p>opções a seguir:</p><p>I. Avaliação, reutilização e riscos.</p><p>II. Gerência de portfólio de projetos e medição.</p><p>III. Aquisição, garantia de qualidade e gerência de configuração.</p><p>É correto o que se afirma em:</p><p>A</p><p>III, apenas.</p><p>B</p><p>I, apenas.</p><p>C</p><p>II e III, apenas.</p><p>D</p><p>I e III, apenas.</p><p>Revisar Conteúdo do Livro</p><p>5</p><p>O Modelo de Melhoria de Processo de Software Brasileiro (MPS.BR) é um modelo de</p><p>referência para melhoria e avaliação do processo de software. Ele está estruturado em</p><p>níveis de maturidade que representam um caminho evolutivo e previsível para a</p><p>melhoria do processo de software. O nível F (conhecido como "Nível de Gestão") é</p><p>caracterizado pelo estabelecimento e uso de um processo de software definido e</p><p>integrado à gestão do negócio da organização.</p><p>Fonte: adaptado de: SOFTEX. MPS.BR-Guia Geral MPS de Software. 2016.</p><p>Disponível em: https://www.softex.br/wp-</p><p>content/uploads/2018/11/MPS.BR_Guia_Geral_Software_2016-com-ISBN.pdf. Acesso</p><p>em: 24 jan. 2024.</p><p>Com base em seus conhecimentos acerca do Nível F do MPS.BR, quanto ao nível de</p><p>maturidade das práticas desse nível, analise as afirmativas a seguir:</p><p>I. A organização tem um processo estabelecido para gerenciar subcontratações.</p><p>II. A organização estabelece e mantém procedimentos para evitar a repetição de</p><p>problemas anteriores.</p><p>III. A organização possui uma política para a melhoria contínua do processo de software</p><p>que é periodicamente revisada.</p><p>IV. A organização garante que todos os projetos usem um processo de software definido</p><p>que inclui a integração de processos de software, de gerenciamento de projetos e de</p><p>negócios da organização.</p><p>É correto o que se afirma em:</p><p>A</p><p>III e IV, apenas.</p><p>B</p><p>I, II e III, apenas.</p><p>C</p><p>II e IV, apenas.</p><p>D</p><p>I, II, III e IV.</p><p>Revisar Conteúdo do Livro</p><p>6</p><p>As ferramentas de análise estática de código permitem a detecção precoce de</p><p>vulnerabilidades e defeitos, melhorando a qualidade do código e aumentando a</p><p>segurança do software. No entanto, elas podem apresentar limitações, como falsos</p><p>positivos e falsos negativos, dificuldades em lidar com linguagens complexas e</p><p>consumo de tempo.</p><p>Fonte: adaptado de: DEWHURST, R. et al. Static Code Analysis. Owasp, c2024.</p><p>Disponível em: https://owasp.org/www-community/controls/Static_Code_Analysis.</p><p>Acesso em: 25 jan. 2024.</p><p>Conforme o exposto, assinale a alternativa correta que apresenta algumas das limitações</p><p>das ferramentas de análise estática de código:</p><p>A</p><p>Detecção precoce de vulnerabilidades e defeitos.</p><p>B</p><p>Dificuldades em lidar</p><p>com linguagens complexas.</p><p>C</p><p>Execução de testes caixa-branca no software.</p><p>D</p><p>Garantia da conformidade com as diretrizes internas de desenvolvimento.</p><p>7</p><p>A otimização da produtividade com relação aos custos é o cerne da Estimativa de</p><p>Custos. Esse processo busca determinar o máximo de eficiência que pode ser alcançado</p><p>dentro de um orçamento estabelecido, visando a atingir os objetivos do projeto. Ao</p><p>estimar os custos, é fundamental considerar não apenas os gastos diretos, como mão de</p><p>obra e matéria-prima, mas também os custos indiretos e os possíveis imprevistos.</p><p>Embora as estimativas não sejam precisas, representam uma importante ferramenta para</p><p>planejar e gerenciar recursos financeiros. A correta avaliação dos custos de produção é</p><p>crucial para evitar desvios orçamentários e garantir a viabilidade do projeto ao longo do</p><p>tempo.</p><p>Fonte: adaptado de: VARGAS, R. V. Gerenciamento de Projetos: estabelecendo</p><p>diferenciais competitivos. 8. ed. São Paulo: Brasport, 2016.</p><p>Existem cinco tipos principais de custos que compõem o custo total do projeto. Analise</p><p>as afirmativas a seguir quanto aos seus conteúdos:</p><p>I. Os custos diretos são custos mais fáceis de estimar com precisão.</p><p>II. Os custos indiretos em um projeto são aqueles que dão suporte ao projeto.</p><p>III. Os custos fixos são aqueles que incluem custos de instalação e custos de aluguel.</p><p>IV. Os custos de sequência absoluta ¿¿são variáveis ¿¿por natureza e podem incluir</p><p>salários de mão de obra por hora, materiais.</p><p>É correto o que se afirma em:</p><p>A</p><p>I, II, III e IV.</p><p>B</p><p>III e IV, apenas.</p><p>C</p><p>II e IV, apenas.</p><p>D</p><p>I, II e III, apenas.</p><p>8</p><p>As ferramentas de análise estática de código e as métricas de software são elementos</p><p>cruciais no processo de desenvolvimento de software, contribuindo para a qualidade,</p><p>segurança, manutenibilidade e eficiência do código. As ferramentas de análise estática</p><p>de código examinam o código-fonte sem executá-lo. Elas identificam padrões, práticas</p><p>recomendadas, possíveis bugs e violações de padrões de codificação.</p><p>Fonte: adaptado de: DEWHURST, R. et al. Static Code Analysis. Owasp, c2024.</p><p>Disponível em: https://owasp.org/www-community/controls/Static_Code_Analysis.</p><p>Acesso em: 25 jan. 2024.</p><p>As ferramentas de análise estática de código desempenham um papel fundamental na</p><p>detecção precoce de problemas no código-fonte, contribuindo para aprimorar a</p><p>qualidade e a segurança do software desenvolvido. Com base nas informações</p><p>apresentadas, analise as afirmativas a seguir:</p><p>I. As ferramentas de análise estática de código analisam a sintaxe da escrita do código.</p><p>II. As ferramentas de análise estática de código são utilizadas exclusivamente na</p><p>execução do programa.</p><p>III. As ferramentas de análise estática de código são usadas apenas para otimizar o</p><p>desempenho do software.</p><p>IV. As ferramentas de análise estática de código visam identificar vulnerabilidades,</p><p>erros e inconsistências no código-fonte.</p><p>É correto o que se afirma em:</p><p>A</p><p>II e IV, apenas.</p><p>B</p><p>I, II, III e IV.</p><p>C</p><p>IV, apenas.</p><p>D</p><p>I, II e III, apenas.</p><p>9</p><p>As métricas são extremamente importantes para um software de qualidade e com uma</p><p>maior precisão no seu processo de construção. É vital lembrar que a lista de métricas</p><p>deve ser definida caso a caso antes de começarmos. É uma perda absurda de tempo e</p><p>esforço apenas rastrear o que quer que uma ferramenta de gerenciamento de projeto</p><p>forneça ou uma estrutura/modelo de desenvolvimento de software recomende, ou</p><p>duplicar cegamente as métricas fornecidas por outro projeto. Segundo Pandian (2004), é</p><p>interessante evitar métricas que não respondam a perguntas específicas das partes</p><p>interessadas do projeto ou que não tenham nenhum impacto possível no processo do</p><p>projeto. Um sistema de processamento em tempo real, por exemplo, colocará forte</p><p>ênfase nas medições de desempenho, mas um sistema assíncrono distribuído colocará</p><p>forte ênfase na disponibilidade.</p><p>Fonte: adaptado de: PANDIAN, C. Software Metrics: a guide planning, analysis and</p><p>aplication. Boca Raton: Auerbach Publications, 2004. 312 p.</p><p>Considerando o que pode ser medido na questão de desempenho da medição e que terá</p><p>um impacto direto no processo do projeto, analise as opções a seguir:</p><p>I. Qualidade do código.</p><p>II. Satisfação do usuário.</p><p>III. Qualidade do processo.</p><p>IV. Qualidade da solução entregue.</p><p>É correto o que se afirma em:</p><p>A</p><p>II e IV, apenas.</p><p>B</p><p>III e IV, apenas.</p><p>C</p><p>I, II, III e IV.</p><p>D</p><p>I, II e III, apenas.</p><p>10</p><p>O método GQM (Goal-Question-Metric) é uma abordagem sistemática utilizada no</p><p>campo da engenharia de software para medir e avaliar a qualidade de processos,</p><p>produtos e projetos. Desenvolvido por Victor Basili e seus colaboradores, o GQM se</p><p>baseia em três elementos fundamentais: metas (Goals), perguntas (Questions) e métricas</p><p>(Metrics). Inicialmente, estabelecem-se metas de qualidade específicas, alinhadas aos</p><p>objetivos organizacionais. Em seguida, são formuladas perguntas que ajudam a entender</p><p>como essas metas podem ser atingidas. Por fim, são definidas métricas concretas para</p><p>quantificar e monitorar o desempenho. Esse método fornece uma estrutura clara e</p><p>abrangente para guiar a melhoria contínua, permitindo uma abordagem sistemática na</p><p>coleta e análise de dados. Ao aplicar o GQM, as organizações conseguem estabelecer</p><p>uma conexão direta entre os objetivos estratégicos e as atividades operacionais,</p><p>facilitando a tomada de decisões.</p><p>Fonte: adaptado de: PAULA FILHO, W. de P. Engenharia de Software - Projetos e</p><p>Processos. Rio de Janeiro: LTC, 2019.</p><p>Com base nas informações apresentadas, avalie as asserções a seguir e a relação</p><p>proposta entre elas:</p><p>I. O método GQM é útil para ajudar as organizações a identificar e se concentrar nas</p><p>métricas mais pertinentes para avaliar o sucesso dos seus objetivos estratégicos.</p><p>PORQUE</p><p>II. O método GQM permite que as organizações evitem sobrecarga de dados,</p><p>fornecendo um processo estruturado para determinar quais dados são realmente</p><p>necessários.</p><p>A respeito dessas asserções, assinale a opção correta:</p><p>A</p><p>As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.</p><p>B</p><p>A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.</p><p>C</p><p>A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.</p><p>D</p><p>As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.</p>