Prévia do material em texto
Prof. MSc. Claudio Furquim UNIDADE II Qualidade de Software O gerenciamento de defeitos, também conhecido como gestão de bugs ou falhas, é o processo de identificar, registrar, priorizar, corrigir e acompanhar defeitos encontrados em um software durante seu ciclo de vida. Defeitos ou bugs podem ser qualquer desvio ou inadequação em relação aos requisitos estabelecidos, ou ao comportamento esperado do software. Por outro lado, a rastreabilidade é a capacidade de documentar e acompanhar a origem, a evolução e o destino de cada requisito, componente ou mudança em um sistema de software. Qualidade de Software – Gerenciamento de defeitos e rastreabilidade Identificação e registros de defeitos possibilita uma comunicação clara entre as equipes de desenvolvimento e testes sobre o problema encontrado. Qualidade de Software – Gerenciamento de defeitos e rastreabilidade Para entender melhor como funciona o registro de defeitos, vamos analisar um documento de registro. Qualidade de Software – Gerenciamento de defeitos e rastreabilidade Observações adicionais Observações que o analista de teste pode querer colocar Resultado Esperado e o observado Passos para a reprodução O que foi feito para o erro acontecer Classificação Prioridade e severidade Descrição Uma breve descrição Identificação do defeito Um código para identificar o defeito A análise de causa raiz é um processo crítico na engenharia de software, especialmente quando se trata de garantir a qualidade e a confiabilidade dos sistemas. Esse processo envolve investigar profundamente os defeitos identificados para descobrir as razões fundamentais que os causaram. Ao entender essas causas subjacentes, as equipes podem implementar soluções duradouras que resolvam o problema atual, bem como previnam sua recorrência no futuro. Qualidade de Software – Análise de causa raiz e resolução Qualidade de Software – Análise de causa raiz e resolução Fonte: https://www.accept.pt/wp- content/uploads/2023/07/diagrama -espinha-de-peixe-1024x447.jpg CAUSA CAUSA CAUSA CAUSA CAUSA CAUSA Diagrama de Ishikawa Qualidade de Software – Análise de causa raiz e resolução Técnica dos cinco porquês Problema: Um artigo não foi entregue no prazo. 1. Por quê? Porque o responsável não conseguiu escrever. 2. Por quê? Porque existiam outras demandas como prioridade. 3. Por quê? Porque surgiram demandas de urgência. 4. Por quê? Porque o colaborador era o único que conseguia resolver. 5. Por quê? Porque a equipe é reduzida e surgiram muitas demandas, atrasando a entrega do artigo. Contramedida: Contratar um novo funcionário para auxiliar com as demandas. Fonte: Adaptado de: https://mereo.com/wp- content/uploads/2022/02/exemplo_5_p orques_infografico-01-897x1024.png A rastreabilidade de requisitos é uma prática essencial no desenvolvimento de software que visa acompanhar e documentar a vida útil dos requisitos desde sua concepção até sua implementação e manutenção. Essa prática possibilita compreender como cada requisito está relacionado aos outros e como cada um deles influencia o projeto como um todo. Qualidade de Software – Rastreabilidade de requisitos Por que precisamos registrar os erros? a) Para possibilitar uma comunicação clara entre as equipes de testes e desenvolvimento. b) Para automatizarmos os testes. c) Para entregar ao usuário com a documentação de requisitos. d) Para entregar ao patrocinador do projeto com a documentação de requisitos. e) Nenhuma das alternativas está correta. Interatividade Por que precisamos registrar os erros? a) Para possibilitar uma comunicação clara entre as equipes de testes e desenvolvimento. b) Para automatizarmos os testes. c) Para entregar ao usuário com a documentação de requisitos. d) Para entregar ao patrocinador do projeto com a documentação de requisitos. e) Nenhuma das alternativas está correta. Resposta O gerenciamento da qualidade de software é um pilar fundamental para o sucesso de qualquer projeto de desenvolvimento. A implementação de métricas específicas possibilita a avaliação da eficiência e eficácia dos processos, bem como identificação de áreas que necessitam de melhorias. Qualidade de Software – Métricas e gerenciamento da qualidade O Modelo Construtivo de Custo (COCOMO) é uma métrica amplamente reconhecida e utilizada para a estimativa de esforço, tempo e custo necessários para o desenvolvimento de software. Existem três versões principais do modelo COCOMO: básico, intermediário e detalhado. O modelo básico oferece, de forma rápida, uma visão geral, utilizando poucas variáveis para calcular uma estimativa aproximada. Já o modelo intermediário introduz mais variáveis relacionadas às características do software e ao ambiente de desenvolvimento, possibilitando uma estimativa mais precisa. Por fim, o modelo detalhado leva em consideração aspectos ainda mais granulares, incluindo atributos específicos das fases do projeto e tarefas individuais. Qualidade de Software – Métrica: COCOMO C O C O M O Básico Intermediário Detalhado Para calcular o esforço em pessoa-mês (PM), use a fórmula do COCOMO básico com base nos parâmetros fornecidos. A fórmula fundamental é: Em que: KLOC: Quantidade de linhas necessárias para desenvolver o software. A: Está relacionado ao esforço para desenvolver o software. B: Está relacionado à sensibilidade do esforço em relação ao tamanho do código. Obs.: Valores menores que 1 indicam que o esforço é menos sensível ao tamanho do código enquanto valores maiores que 1 indicam sensibilidade ao tamanho do código. Qualidade de Software – Métrica: COCOMO Exemplo: Suponha que será necessário desenvolver um aplicativo móvel simples, mas que contenha 5000 linhas de código, de baixa complexidade e que a equipe possui experiência mediana no desenvolvimento desse tipo de aplicativo. Além disso, todas as ferramentas e processos que a equipe tem são bons para a construção desse aplicativo e que os parâmetros A e B sejam 2,8 e 1,20 para um projeto de software de baixa complexidade. PM = 2,8 x (5)1,20 PM = 2,8 x 7,543, logo, PM≈21,15 hrs de uma pessoa/mês Qualidade de Software – Métrica: COCOMO O tempo médio entre falhas (MTBF, do inglês Mean Time between Failures) é um indicador fundamental na área de manutenção e confiabilidade de sistemas, sendo utilizado para avaliar a confiabilidade de equipamentos, componentes ou sistemas em geral. MTBF = (tempo total de operação – tempo de manutenção) / número de falhas. Qualidade de Software – Métrica: Tempo médio entre falhas (MTBF) Exemplo: Um software operou por 525.600 minutos (aproximadamente um ano) e teve 6 falhas durante esse tempo com um tempo total de manutenção de 170 minutos, o MTBF seria calculado como: MTBF = (525.600 - 170) / 6 MTBF = 87.571,67 min. Resultando em aproximadamente 60 dias entre falhas. Qualidade de Software – Métrica: Tempo médio entre falhas (MTBF) Qual a sigla em inglês para a métrica tempo médio entre falhas? a) COCOMO. b) PF. c) MTFB. d) TMF. e) Nenhuma das alternativas está correta. Interatividade Qual a sigla em inglês para a métrica tempo médio entre falhas? a) COCOMO. b) PF. c) MTFB. (Mean Time between Failures). d) TMF. e) Nenhuma das alternativas está correta. Resposta A usabilidade de software é a medida na qual os usuários podem interagir com um sistema de software. Portanto, uma métrica de usabilidade é uma técnica para avaliar e medir essa qualidade. Pode-se aplicar uma variedade de métricas de usabilidade a um sistema de software, cada uma das quais se concentra em aspectos específicos da experiência do usuário. As métricas mais usadas incluem: Qualidade de Software – Métrica: Usabilidade de sistemas Pode-se aplicar uma variedade de métricas de usabilidade a um sistema de software, cada uma das quais se concentra em aspectos específicos da experiênciado usuário. As métricas mais usadas incluem: Qualidade de Software – Métrica: Usabilidade de sistemas Usabilidade Facilidade de uso As interfaces do usuário de alta qualidade Eficiência O tempo de resposta Consumo de recursos A manutenibilidade de um software mede a facilidade com que um sistema de software pode ser modificado, corrigido e adaptado ao longo do tempo, mantendo sua qualidade e desempenho. São algumas delas: Índice de manutenibilidade. Complexidade ciclomática. Qualidade de Software – Métrica: Manutenabilidade O índice de manutenibilidade de um software mede a facilidade de manutenção do software, considerando a complexidade, estrutura e quantidade de comentários do código. A fórmula para calcular o índice de manutenabilidade é: IM = 171- 5.2 * Ln(V) – 0.23 * C -16.2 * Ln(L) Quanto mais próximo do 100, melhor é a manutenabilidade, quanto mais vai se afastando do 100, a manutenabilidade vai piorando. Em que: V: é o número de operadores e operandos no código. C: número de chamadas de funções. L: número de linhas de código. Qualidade de Software – Métrica: Manutenabilidade Exemplo: Após a análise de um software para encontrarmos a sua manutenabilidade, chegamos aos seguintes valores: V = 1200 C = 30 L = 5000 Utilizando a fórmula, teremos: IM = 171- 5.2 * Ln(1200) – 0.23 * 30 -16.2 * Ln(5000) IM = -10,74 -> Com isso, nosso software é considerado de péssima manutenção. Qualidade de Software – Métrica: Manutenabilidade A complexidade ciclomática mede a complexidade do fluxo de controle do software, sendo um indicador da dificuldade de compreender e manter o código. A fórmula para calcular a complexidade ciclomática é: V(G) = P + 1, em que P é o número de nós-predicados. Obs.: Nós-predicados são considerados comandos de fluxo como if, else, while, switch, for etc. (estruturas condicionais ou de loops). Qualidade de Software – Métrica: Manutenabilidade Exemplo: Considere o código python abaixo: def exemplo(x,y) if x>y: return x else: return y Utilizando a fórmula, teremos: V(G) = P + 1 V(G) = 2 + 1 V(G) = 3 Com isso, nosso software é considerado de boa manutenção. Qualidade de Software – Métrica: Manutenabilidade Qual métrica de software leva em consideração a quantidade de comentários no cálculo? a) COCOMO. b) Complexidade ciclomática. c) MTFB. (Mean Time between Failures). d) Índice de manutenabilidade. e) Nenhuma das alternativas está correta. Interatividade Qual métrica de software leva em consideração a quantidade de comentários no cálculo? a) COCOMO. b) Complexidade ciclomática. c) MTFB. (Mean Time between Failures). d) Índice de manutenabilidade. e) Nenhuma das alternativas está correta. Resposta A métrica de ponto de função (function point, em inglês) é uma técnica de medição usada na engenharia de software para quantificar o tamanho funcional de um sistema de software, com base nas funcionalidades fornecidas aos usuários finais. Desenvolvida por Allan Albrecht, na IBM, na década de 1970, a métrica de ponto de função se tornou uma ferramenta valiosa para estimar o tamanho e a complexidade de um projeto de desenvolvimento de software. Qualidade de Software – Métrica: Ponto de função A ideia principal por trás da métrica de ponto de função é medir a funcionalidade entregue pelo software, em vez de medir diretamente o tamanho do código, ou o número de linhas de código. Isso significa que a métrica de ponto de função se concentra nas características do sistema que são visíveis aos usuários finais e que agregam valor ao negócio. Qualidade de Software – Métrica: Ponto de função Para calcular os pontos de função, são identificadas as diferentes funcionalidades do sistema, como entradas de dados, consultas ao banco de dados, interfaces com o usuário e relatórios gerados pelo sistema. Cada funcionalidade é classificada com base em sua complexidade, e a ela é atribuída uma pontuação em pontos de função. Essas pontuações são então somadas para obter o tamanho total do sistema em pontos de função. Cada função identificada é classificada com base em sua complexidade. Desse modo, existem três tipos de funções: Entradas Externas (EE), Saídas Externas (SE) e Consultas Externas (CE). Qualidade de Software – Métrica: Ponto de função Para calcular os pontos de função, são identificadas as diferentes funcionalidades do sistema. Qualidade de Software – Métrica: Ponto de função Fonte: Adaptado de: https://app.bnb.gov.br/documents/45078/8409425/11+-+Anexo+XI+- +Guia+de+Contagem+em+Pontos+de+Fun%C3%A7%C3%A3o.pdf/b71dbb14-2230-c23f-466a-c86ee6d49a86 Documentação do software Pontos de função (números) Abstração orientada a dados Usuários Aplicação Outras Aplicações Transações (EEs, CEs, SEs) Dados Internos (ALIs) Dados Externos (AIEs) Mapeando em números Identificação dos itens da APF Exemplo: Considere a construção do seguinte sistema: Suponha que você está estimando o tamanho funcional de um sistema de gerenciamento de biblioteca com as seguintes funcionalidades: Cadastro de livros, cadastro de usuários, empréstimo de livros, devolução de livros, geração de relatórios de empréstimos, busca de livros no catálogo. Qualidade de Software – Métrica: Ponto de função Passo 1: Identificar os tipos e contar as ocorrências. Qualidade de Software – Métrica: Ponto de função Funções de entrada Funções de saída Funções de consulta Cadastro de livro Cadastro de usuário Empréstimo de livro Devolução de livro Geração de relatório Busca de livros no catálogo Passo 2: Atribuir os pontos segundo a tabela. Sendo assim, temos: PF = (2 x 4) + (3 x 5) + (1x 4) = 27 Obs.: Não existe uma tabela padrão de pontos a serem atribuídos, cada empresa, com base na experiência de desenvolvimento, vai desenvolvendo a sua. Qualidade de Software – Métrica: Ponto de função Funções de entrada Funções de saída Funções de consulta 4 5 4 Passo 3: Transformando pontos de função em horas trabalhadas. Se para cada ponto de função temos 8 horas de trabalho, logo, teremos: HTF = 27 x 8 = 216 horas Obs.: Não existe uma tabela padrão de horas de trabalho x PFs a serem atribuídos, cada empresa, com base na experiência de desenvolvimento, vai desenvolvendo a sua. Qualidade de Software – Métrica: Ponto de função “Se não consegue medir, não conseguirá gerenciar” (Peter Drucker). Qualidade de Software – Métrica: Ponto de função Fonte: https://neilpatel.com/wp- content/uploads/2023/03/peter-drucker.jpg O que mede a métrica de ponto de função? a) Contagem de linhas. b) Complexidade das funções do sistema. c) Quantidade de ciclos. d) Tempo sem problemas em produção. e) Nenhuma das alternativas está correta. Interatividade O que mede a métrica de ponto de função? a) Contagem de linhas. b) Complexidade das funções do sistema. c) Quantidade de ciclos. d) Tempo sem problemas em produção. e) Nenhuma das alternativas está correta. Resposta BARTIÉ, Alexandre. Garantia da qualidade de software – adquirindo maturidade organizacional. Rio de Janeiro: Ed. Campus, 2002. DEMING, W. Edwards. Saia da crise. São Paulo: Ed. Marques Saraiva, 1990. ENGHOLM, Hélio Jr. Engenharia de software na prática. São Paulo: Ed. Novatec, 2010. PROJECT MANAGEMENT INSTITUTE. Um Guia do Conhecimento em Gerenciamento de Projetos (Guia PMBOK®). 5. ed. [S.l.]: Project Management Institute, 2013. Referências ATÉ A PRÓXIMA!