Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Qualidade de Software Ementa 1 MÉTRICAS DE SOFTWARE Prof. ª Maria Augusta Vieira Nelson Prof.ª Poliana A. Corrêa de Oliveira Pontifícia Universidade Católica de Minas Gerais (PUC Minas) Qualidade de Software Ementa 2 MOTIVAÇÃO � “Quando puder medir aquilo de que está falando e expressar em números, você saberá algo a respeito.” (LORD KELVIN) � “Não se pode gerenciar o que não se pode medir”. (TOM DE MARCO) � “Se você não sabe para onde você quer ir, qualquer caminho você pode seguir. Se você não sabe onde você está, um mapa não vai ajudar!”. (ROGER PRESSMAN) Qualidade de Software Ementa 3 O QUE SÃO MÉTRICAS DE SOFTWARE? � Métricas são critérios usados para quantificar um atributo (propriedade ou característica) de uma determinada entidade (produto, processo ou recursos) � Representa o que pode ser medido em um software � Visa tratar adequadamente a influência de fatores subjetivos no julgamento da qualidade de um produto � Exemplos de métricas � Tamanho do produto de software (dado em número de linhas de código) � Número de pessoas necessárias para implementar um caso de uso � Número de defeitos encontrados por fase de desenvolvimento � Tempo e custo para a realização de uma tarefa Qualidade de Software Ementa 4 MÉTRICAS DE SOFTWARE � O QUE USAR COMO BASE? � Tamanho � Funcionalidade � Tempo � Custo � POR QUE MEDIR? � Para caracterizar � Para avaliar � Para estimar � Para controlar � Para melhorar � O QUE MEDIR? � processo � projeto � produto Medir O que? Pra que? Usar o que? Qualidade de Software Ementa 5 MITOS E VERDADES SOBRE MÉTRICAS DE SOFTWARE � ... coletar medida é difícil... � ... demora muito... � ... é uma tarefa política ... � ... não serei capaz de provar nada ... “Qualquer coisa que você precisa quantificar pode ser medido de alguma forma que é uma medida melhor do que medida nenhuma” Qualidade de Software Ementa 6 PROPRIEDADES DESEJÁVEIS DE MÉTRICAS DE SOFTWARE � Fácil de computar, compreender e testar � Empíricas e intuitivas � Consistentes e objetivas � Repetível � Passível de análise estatística � Possibilita automação � Independente do observador ou da linguagem de programação � Indicativa o suficiente para apontar estratégias de melhoria 2 Qualidade de Software Ementa 7 PROPRIEDADES DESEJÁVEIS DE MÉTRICAS DE SOFTWARE � Uma métrica deve ser � Válida: quantifica o que se quer medir � Confiável: produz os mesmos resultados para as mesmas condições � Prática: barata, fácil de computar e de interpretar Qualidade de Software Ementa 8 TIPOS DE MÉTRICAS MÉTRICAS DE PROCESSO MÉTRICAS DE PROJETO MÉTRICAS DE PRODUTO Qualidade de Software Ementa 9 MÉTRICAS DE PROCESSO � O foco está na qualidade obtida como consequência de um processo repetível e gerenciado � Análise estatística de dados obtidos nas atividades de garantia da qualidade do software � Categorização e análise de erros � Exemplos � Eficiência na remoção de defeitos � Dados sobre reutilização � Produtividade por período Qualidade de Software Ementa 10 MÉTRICAS DE PROJETO � Estão relacionadas com medidas de esforço/tempo por tarefa da engenharia de software � Exemplos � Erros revelados por hora de revisão � Datas de marcos planejadas versus reais � Número de mudanças e suas características � Distribuição do esforço nas tarefas de engenharia de software Qualidade de Software Ementa 11 MÉTRICAS DE PRODUTO � Refletem a qualidade dos artefatos a serem entregues � Exemplos � medições para o modelo de análise • Funcionalidade entregue, tamanho do sistema, qualidade da especificação � medições da complexidade do projeto • Complexidade interna do algoritmo, complexidade arquitetural, complexidade do fluxo de dados, complexidade do componente, complexidade do projeto de interfaces � medições de código-fonte • Tamanho do sistema, complexidade de lógica por função � medições da eficiência do processo • Eficiência da remoção de defeitos Qualidade de Software Ementa 12 CATEGORIAS DE MÉTRICAS � Métricas diretas (fundamentais ou básicas) � As medidas são feitas em atributos observáveis (normalmente determinada pela contagem de valores) � Exemplo: custo, esforço, número de linhas de código, capacidade de memória, número de páginas, número de diagramas, etc. � Métricas indiretas (derivadas) � As medidas são obtidas a partir de outras métricas � Exemplo: complexidade, eficiência, confiabilidade, facilidade de manutenção 3 Qualidade de Software Ementa 13 DIRETRIZES PARA AS MÉTRICAS � Use o bom senso ao interpretar dados de métricas � Forneça feedback regularmente aos indivíduos e as equipes que trabalham na coleta de dados para medições � Não use as métricas para vangloriar indivíduos, nem para pressionar pessoas � Trabalhe com desenvolvedores e equipes para estabelecer metas claras e métricas que serão usadas para alcançá-las � Dados de métricas que indicam problemas não devem ser considerados “negativos”, os dados são apenas indicadores para melhorias no processo � Não fique obcecado com uma única métrica e ignore outras métricas importantes Qualidade de Software Ementa 14 NORMALIZAÇÃO DAS MÉTRICAS � Normalização orientada por tamanho � abordagem linhas de código � Normalização orientada por função � abordagem pontos de função Qualidade de Software Ementa 15 NORMALIZAÇÃO DAS MÉTRICAS � Métricas orientadas por tamanho � Medidas diretamente sobre o tamanho dos artefatos de software associados ao processo por meio do qual o software é desenvolvido � Uma boa métrica de tamanho deve poder ser deduzida dos requisitos do software � Ter boa correlação com o esforço de desenvolvimento � Ser contável através de um procedimento bem definido � Ser facilmente mensurável quando o trabalho está completo para comparar valores estimados e valores reais Qualidade de Software Ementa 16 NORMALIZAÇÃO DAS MÉTRICAS � Métricas orientadas por tamanho � Exemplos � erros por KLOC (thousand lines of code) � defeitos por KLOC � $ por LOC � página de documentação por KLOC � erros por pessoa-mês � LOC por pessoa-mês � $ por página de documentação Qualidade de Software Ementa 17 NORMALIZAÇÃO DAS MÉTRICAS � Métricas orientadas por função � Medidas do ponto de vista do usuário, determinando de forma consistente com o tamanho e a complexidade do software � Independente de linguagem de programação � Usa características contáveis do domínio do problema � Não penaliza implementações criativas que usam menos linhas de código Qualidade de Software Ementa 18 NORMALIZAÇÃO DAS MÉTRICAS � Métricas orientadas por função � Exemplos � erros por ponto de função � defeitos por ponto de função � $ por ponto de função � páginas de documentação por ponto de função � ponto de função por pessoa-mês 4 Qualidade de Software Ementa 19 ANÁLISE DO DOMÍNIO DO PROBLEMA FONTE: (PRESSMAN, 2006, p. 358) Qualidade de Software Ementa 20 CALCULANDO PONTOS DE FUNÇÃO � Estabelecer a contagem para o domínio de entrada e interfaces do sistema � Atribuir um peso (ou nível de complexidade) para cada contagem � Dar nota a fatores externos como reutilização, concorrência, sistema operacional... � Pontos de função = (somatório (contagem x peso)) x C onde C = multiplicador de complexidade (0,65 + 0,01 x N) Analisar o domínio da aplicação e fazer as contagens Atribuir pesos para a complexidade de cada contagem Investigar a influência de fatores externos que afetam a aplicação Calcular pontos de função Qualidade de Software Ementa 21 CONSIDERANDO A COMPLEXIDADE� Os fatores são graduados em uma escala de 0 (nada importante) a 5 (muito importante) � comunicação de dados � funções distribuídas � taxa de transações � entrada de dados on-line � eficiência do usuário final � atualização on-line � processamento complexo � facilidade de instalação � facilidade de operação � facilidade de mudanças Qualidade de Software Ementa 22 MEDINDO A QUALIDADE � Funcionalidade � Grau de relação entre o projeto e a implementação � Exemplos: número de funções projetadas x número de funções implementadas, número de funções validadas com base nos requisitos � Manutenibilidade � Grau até onde o programa é passível de sofrer mudanças � Exemplos: Pontos de função, linhas de código, linhas de documentação, número de módulos, número de parâmetros de entrada por módulo, número de interfaces (telas), número de arquivos externos acessados Qualidade de Software Ementa 23 MEDINDO A QUALIDADE � Usabilidade � Grau até onde o programa é fácil de usar � Exemplo: tempo gasto por testador para aprender a usar uma funcionalidade, tempo gasto por testador para executar uma tarefa, número de consultas ao sistema de ajuda, número de problemas de compreensão e padronização durante os testes, número de operações que não podem ser desfeitas, etc. � Confiabilidade � Grau de manter um determinado nível de desempenho quando usado em contexto não projetado � Exemplo: número de falhas identificadas durante os testes, número de falhas corrigidas, tempo médio entre falhas Qualidade de Software Ementa 24 MEDINDO A QUALIDADE � Correção � Grau até onde o programa opera de acordo com a especificação � Exemplos: número de funcionalidades conformes versus número de funcionalidades do sistema, número de não-conformidades � Integridade � Grau até onde o programa é resistente a ataques externos � Exemplo: número de ataques � Portabilidade � Grau até onde o programa pode ser alterado para plataformas diferentes 5 Qualidade de Software Ementa 25 MEDINDO A QUALIDADE � Eficiência na remoção de erros � ERE = (erros / (erros + defeitos) ) � Erros são problemas encontrados antes da entrega do software � Defeitos são problemas encontrados após a entrega do software � O ideal é que o ERE seja próximo de 1 Qualidade de Software Ementa 26 MÉTRICAS EM ORIENTAÇÃO A OBJETOS � Número de scripts de cenário � Número de classes principais � Número de classes de suporte � Número de subsistemas � Tamanho das classes � Métodos por classe � Profundidade da herança � Acoplamento entre objetos (colaborações entre classes ou mensagens passadas entre objetos) Qualidade de Software Ementa 27 MEDIÇÕES COM GQM � GQM (Goal Question Metric) � Método simples para planejar e definir medições em artefatos de software através de métricas significativas baseadas em objetivos específicos “Especificar objetivos é por si próprio um tópico importante, pois, sem objetivos, há o risco de coleta de dados sem relação e sem importância” (BRASILI) Qualidade de Software Ementa 28 MEDIÇÕES COM GQM � Define um conjunto de metas de medição através de objetivos e questões/perguntas específicas � Abordagem top-down das metas em medidas através de perguntas no contexto específico � Interpretação bottom-up dos dados coletados com relação a meta � Envolvimento ativo de toda a equipe � Organiza o planejamento de uma medição de software em etapas Qualidade de Software Ementa 29 METODOLOGIA GQM 1) Identifica-se os interessados na medição 2) Os principais objetivos da medição para a organização, o projeto ou uma tarefa específica são estabelecidos pelos interessados � Exemplo: reduzir defeitos, aumentar produtividade, etc. 3) Com base nos objetivos são concebidas perguntas cujas respostas dirão se os objetivos foram ou não alcançados � Exemplo: Qual a taxa de defeito atual? Qual a taxa de defeito após a implantação do novo processo? 4) Só a partir das perguntas as métricas são definidas � Exemplo: Quais dados serão necessários? Em quais formatos? Como serão coletados? Onde serão armazenados? Como serão utilizados? Qualidade de Software Ementa 30 METODOLOGIA GQM OBJETIVO 1 OBJETIVO 2 QUESTÃO 1 QUESTÃO 2 QUESTÃO 3 QUESTÃO 4 MÉTRICA 1 MÉTRICA 2 MÉTRICA 3 MÉTRICA 4 MÉTRICA 5 6 Qualidade de Software Ementa 31 METODOLOGIA GQM � OBJETIVOS � Estabelecidos de acordo com as necessidades dos interessados � Os objetivos devem ser fixados em função dos requisitos de software e associados a um período de tempo � Exemplo: controlar a ocorrência de erros no software � QUESTÕES � Definidas para realizar o trabalho de medição � Atua como uma ponte entre objetivos e métricas � “Perguntas que se espera responder com o estudo” � “As respostas devem trazer informação útil para melhorar o produto” � Exemplo: Que aspectos do projeto da interface afetam a facilidade de uso? Qualidade de Software Ementa 32 METODOLOGIA GQM � CATEGORIAS � Particionam o conjunto de dados obtidos � Exemplo: na avaliação de interface do software vários aspectos podem ser levantados, como quantidade de janelas, distribuição dos campos, etc. � FORMULÁRIOS � Conduzem o trabalho dos avaliadores � Define o formato de documentos para anotação dos dados � A padronização facilita a análise dos dados Qualidade de Software Ementa 33 METODOLOGIA GQM � Níveis do GQM FONTE: http://www.devmedia.com.br/artigo-engenharia-de-software-21-metricas-de-software/15776 Qualidade de Software Ementa 34 METODOLOGIA GQM Desenvolvimento de plano de mensuração Coleta de dados Análise e Interpretação Capturar experiências Estudo prévio Identificação de meta Desenvolvimento de plano GQM Qualidade de Software Ementa 35 EXEMPLO 1 Meta: Analisar o produto de software a fim de caracterizá-lo com respeito as taxas de erro introduzidas ao longo do processo de desenvolvimento do ponto de vista da organização Como os erros são distribuídos por fase de desenvolvimento do software? Número total de erros encontrados D EF IN IÇ Ã O IN TE R P R ET A Ç Ã O Q1 Q2 Q3 M1 M2 M3 Número de erros encontrados em cada fase Qualidade de Software Ementa 36 EXEMPLO 2 Meta: Analisar o produto de software a fim de caracterizá-lo com respeito as taxas de erro introduzidas no desenvolvimento do ponto de vista do desenvolvedor Quais são as taxas de erro por projeto? Número de erros / KLOC D EF IN IÇ Ã O IN TE R P R ET A Ç Ã O Q1 Q2 Q3 M1 M2 M3 Número de erros / caso de uso 7 Qualidade de Software Ementa 37 EXEMPLO 3 Meta: Assegurar que todos os defeitos críticos encontrados são corrigidos antes do software ser liberado para uso. Quantos defeitos temos atualmente? Número de defeitos D EF IN IÇ Ã O IN TE R P R ET A Ç Ã O Q1 Q2 Q3 M1 M2 M3 Número de defeitos por status Número de casos de testes planejados x executados Número de requisitos testados Qualidade de Software Ementa 38 EXEMPLO 4 Meta: Controlar mudanças nos requisitos. Qual é o percentual de novos requisitos no período? Nº de requisitos novos/Nº de requisitos alocados D EF IN IÇ Ã O IN TE R P R ET A Ç Ã O Q1 Q2 Q3 M1 M2 M3 Requisitos novos (PFs)/Requisitos alocados (PFs) Qual é o percentual de requisitos alterados no período? Qual é o percentual de requisitos excluídos no período? Qual é o volume total de mudanças? Total/taxa de mudanças nos requisitos Qualidade de Software Ementa 39 AGORA É COM VOCÊS! � ATIVIDADE EM GRUPO (MÁXIMO 4 PESSOAS) � Entregar no final da aula (17/09/2014) � Aplicaçãodo método GQM � PROBLEMA: A empresa em que você trabalha está implantando a atividade de Revisão Técnica. Um dos objetivos do uso das revisões técnicas de especificações de requisitos é a de reduzir, ao máximo, os erros relacionados com a especificação e que acabam sendo encontrados durante as baterias de testes. Há, portanto, uma necessidade de acompanhar o desempenho de tais revisões técnicas. � O método GQM deverá ser utilizado para identificar as métricas mais apropriadas para avaliar os resultados das revisões técnicas. (Mínimo: 2 metas, 4 questões e 6 métricas). Qualidade de Software Ementa 40 BIBLIOGRAFIA � Pressman, Roger S. Engenharia de Software. 6a ed. Rio de Janeiro: McGraw Hill. 2006. Capítulo 15. � Pfleeger, Shari Lawrence. Engenharia de Software: Teoria e Prática. 2a ed. São Paulo: Prentice Hall. 2004. Capítulo 6. � KOSCIANSKI, André. Qualidade de software. 2ª edição. Novatec. 2007. Capítulo 12. Qualidade de Software Ementa 41 DÚVIDAS
Compartilhar