Métricas de Software Competência: Compreender as métricas de Software Agenda • Métricas nos Domínios do Processo e do Projeto. • Métricas de Processo e aperfeiçoamento do processo de Software. • Métricas de Projeto. Métricas nos Domínios do Processo e do Projeto • A medida é comum no mundo da engenharia. • Medimos consumo de energia, peso, dimensões físicas, temperatura, voltagem, relação entre sinal e ruído. • Porém na Engenharia de Software a medição é menos comum. Métricas nos Domínios do Processo e do Projeto • Temos dificuldades em “concordar quanto ao que medir” e dificuldade em “avaliar as medidas que são coletadas”. Métricas nos Domínios do Processo e do Projeto • Métricas devem ser coletadas de modo que os indicadores de processo e de produto possam determinados. Métricas nos Domínios do Processo e do Projeto • Indicadores de processo permitem à organização de engenharia de Software ter idéia da eficácia de um processo existente (i.e, o paradigma, as tarefas de engenharia de software; os produtos de trabalho e os marcos de tempo). Eles permitem aos gerentes e profissionais avaliarem “o que funciona e o que não funciona”. Métricas nos Domínios do Processo e do Projeto • Métricas de Processo são coletadas ao longo de todos os projetos durante longos períodos. • Seu objetivo é fornecer indicadores que levem a aperfeiçoamentos do processo de software a longo prazo. Métricas nos Domínios do Processo e do Projeto Indicadores de projeto permitem ao gerente de projeto: 1. Avaliar o status de um projeto em andamento; 2. Acompanhar riscos potenciais; 3. Descobrir áreas-problema antes que elas se tornem “críticas”; Métricas nos Domínios do Processo e do Projeto 4. Ajustar fluxo de trabalho ou tarefas; 5. Avaliar a capacidade da equipe de projeto de controlar a qualidade dos produtos do trabalho de software. Métricas nos Domínios do Processo e do Projeto • Métricas devem ser coletadas de modo que os indicadores de processo e de produto possam determinados. • Indicadores de processo permitem à organização de engenharia de Software ter idéia da eficácia de um processo existente (i.e, o paradigma, as tarefas de engenharia de software; os produtos de trabalho e os marcos de tempo). Eles permitem aos gerentes e profissionais avaliarem “o que funciona e o que não funciona”. Métricas de Processo e aperfeiçoamento do processo de Software O único modo racional para aperfeiçoar qualquer processo é medir os atributos específicos, desenvolver um conjunto de métricas significativas, baseadas nesses atributos, e depois usar as métricas para fornecer indicadores, que levarão a uma estratégia de aperfeiçoamento. Métricas de Processo e aperfeiçoamento do processo de Software Nós medimos a eficácia de um processo de software indiretamente. Isto é, originamos um conjunto de métricas, baseadas nas saídas que podem ser derivadas do processo. As saídas incluem: Métricas de Processo e aperfeiçoamento do processo de Software • • • • • • Medidas dos erros descobertos antes da entrega do software; Defeitos entregues aos usuários finais e por eles relatados; Produtos de trabalhos entregues (produtividade); Esforço Humano despendido; Tempo Gasto; Cumprimento de Cronograma. Métricas de Processo e aperfeiçoamento do processo de Software • • As métricas de processo de software podem fornecer benefícios significativos, à medida que a organização trabalha para aperfeiçoar seu nível geral de maturidade do processo. Todavia, como todas as métricas, essas podem ser mal-utilizadas, criando mais problemas do que conseguem resolver. Por isso é Sugerida uma “Etiqueta para métricas de Software”, que é apropriada tanto para gerentes quanto para profissionais quando eles instituem um programa de métricas do Processo: Métricas de Processo e aperfeiçoamento do processo de Software • • • • • • • Use bom senso e sensibilidade empresarial quando interpretar dados de métricas; Forneça regularmente realimentação aos indivíduos e equipes que coletam medidas e métricas; Não use métricas para avaliar indivíduos; Trabalhe com profissionais e equipes para estabelecer metas claras e métricas que devem ser usadas para alcançá-las; Nunca use métricas para ameaçar indivíduos ou equipes; Dados de métricas que indicam uma área problemática não devem ser considerados “negativos”. Esses dados são meramente indicador para melhoria do processo; Não fique obcecado com uma única métrica em detrimento de outras métricas importantes. Métricas de Processo e aperfeiçoamento do processo de Software A medida que uma organização sente-se mais confortável, coletando e usando métricas de processo, a derivação de indicadores simples dá lugar a uma abordagem mais rigorosa chamada “melhoria estatística do processo de software”. Essencialmente é usado a análise de falhas de software para coletar informação sobre todos os erros e defeitos encontrados à medida que uma aplicação, sistema, ou produto é desenvolvido e usado. A análise de falhas funciona da seguinte maneira: Métricas de Processo e aperfeiçoamento do processo de Software • • • • • • Todos os erros e defeitos são categorizados por origem(falha de especificação, falha de lógica, não atendimento a padrões); O Custo para corrigir cada erro e defeito é registrado; A quantidade de erros e defeitos de cada categoria é contada e ordenada de forma decrescente; O custo total de erros e defeitos de cada categoria é calculado; Os dados resultantes são analisados, para descobrir as categorias que produzem um maior custo para a organização; São desenvolvidos planos para modificar o processo, com objetivo de eliminar(ou reduzir a freqüência das) classes de erros e defeitos que são mais dispendiosas. Métricas de Projeto A primeira aplicação das métricas de projeto, na maioria dos projetos de software ocorre durante a estimativa. Métricas coletadas de projetos anteriores são usadas como base, a partir da qual estimativas de esforço e tempo são feitas para o trabalho atual de software. A medida que o projeto prossegue, medidas de esforço e de tempo despendidos são comparadas com as estimativas originais (e o cronograma do projeto). O gerente do projeto usa esses dados para monitorar e controlar o progresso. Métricas de Projeto • • • • O objetivo das métricas de projeto é duplo. Primeiro, essas métricas são usadas para minimizar o cronograma de desenvolvimento, fazendo ajustes necessários para evitar atrasos e problemas, e riscos em potencial. Segundo, métricas de projeto são usadas para avaliar a qualidade do produto durante sua evolução e , quando necessário, modificar a abordagem técnica para aperfeiçoar a qualidade. A medida que a qualidade é aperfeiçoada, os defeitos são minimizados, e, à medida que a contagem de defeitos decresce, a quantidade de retrabalho durante o projeto é também reduzida. Isso leva à diminuição do custo total do projeto. Bibliografia • Engenharia de Software. Pressman. 3 Edição Capítulo 2. Páginas 59 a 62.