Métricas do processo e projeto de software Tema 3. Gerência de Projetos Profa. Susana M. Iglesias
Métricas e Medidas Medição é fundamentais em qualquer engenharia Quando se consegue medir sobre alguma coisa e expressa em números, se conhece de que se fala. Se não é possível expressar em números seu conhecimento é escasso e insatisfatório. Permite entender melhor os atributos de modelo Avaliar qualidade do produto
Métricas e Medidas A ES não possui medidas como outras engenharias Massa, volume, velocidade... A ES tem medidas indiretas Aplicadas para assistir o calculo de estimativas, controle de qualidade, avaliação de produtividade e controle de projeto.
Medidas e Métricas Medição: Coleta de um dado (numero de erros descobertos na revisão de um módulo) medição Medida: Coleta de um dado ou coleção de dados (Número de módulos que foram revisados são investigados para coletar o número de erros encontrados em cada revisão) medida Métrica: Relata a medida individual de certa forma (A média de erros encontrados por revisão ou a média do número de erros encontrados por pessoahora empregada nas revisões )
Métricas no processo e no projeto Medidas permitem ao gerente de software Avaliar o estado de um projeto em andamento Acompanhar os riscos potenciais Descobrir áreas problemáticas Ajustar o fluxo de trabalho Avaliar a capacidade da equipe de controlar a qualidade dos produtos Segundo Tom Gilb Métricas de software permitem que você saiba quando rir e quando chorar
Métricas no processo e no projeto Objetivo das métricas e medidas é MELHORAR o processo de software e a qualidade do software... Forma de melhorar usando medidas e métricas? 1.Medir atributos específicos do processo 2.Desenvolver métricas 3.Usar as métricas
Métricas no processo e no projeto Pontos que influenciam a qualidade e a performance organizacional 3Ps... Capacidade e motivação da equipe Complexidade do produto Processo e ferramentas Métricas Privadas (Personal Software Process PSP) Privadas para equipe, mas não para todos os membros da equipe Taxa de defeitos (por individuo) Taxa de defeitos (por módulo) Erros encontrados durante o desenvolvimento Públicas Relatório de defeitos para as funções principais Erros encontrados durante as revisões técnicas formais Linhas de código ou pontos por função por módulo ou função
Métricas Privadas (Personal Software Process PSP) Privadas para equipe, mas não para todos os membros da equipe Taxa de defeitos (por individuo) Taxa de defeitos (por módulo) Erros encontrados durante o desenvolvimento Públicas Relatório de defeitos para as funções principais Erros encontrados durante as revisões técnicas formais Linhas de código ou pontos por função por módulo ou função
Métricas no processo e no projeto Muito úteis no trabalho da organização e eleva o nível de maturidade do processo de software Etiqueta da métrica de software Use bom senso e sensibilidade para interpretar os dados Forneça feedback as pessoas que fornecem as métricas Não use métrica para avaliar indivíduos Estabeleça metas claras e métricas para alcançá-las Nunca use métricas para ameaçar indivíduos ou equipe Dados de métrica de áreas problemáticas não devem ser consideradas negativas e sim um indicador para melhoria do processo Não fiquei obcecado com uma única métrica em detrimento de outras importantes
Métricas no processo e no projeto Métricas São analisadas e avaliadas pelos gerentes de software Se não fazemos medições, o julgamento é feito apenas em avaliações subjetivas Com medições, tendências podem ser detectadas, melhores estimativas podem ser feitas e aperfeiçoadas São coletadas no decorrer de todo projeto e durante longos períodos
Análise de falhas Métricas são aperfeiçoadas com o tempo Deriva no uso de de aproximações rigorosas como Statistical Software Process Improvement (SSPI), usa analise de falha de software Análise de falha Os erros e defeitos são categorizados pelo origem O custo de correção do erro o defeito é registrado Os erros e defeitos são contados e ordenados em ordem dependente O custo total de cada categoria é computado Os dados resultantes são analisadas para descobrir a categoria com maior custo para a organização Planeja-se como modificar o processo para tentar eliminar os erros e defeitos mais custosos.
Análise de falhas 8 causas de defeito Causa de defeitos segundo Grady
Análise de falhas missing ambigüidade Defeitos de especificação Erro na resposta Cliente da informação errada Erro na pergunta Usar informação ultrapassada Incorreção Câmbios Gráfico espinha de peixe Mostrando as causas de uma classe de defeito
Categorias de defeitos e falhas
Métricas usadas Erros descobertos antes da entrega Defeitos entregues ao usuário final Produtos de trabalho entregue (produtividade) Esforço humano despendido Tempo gasto Cumprimento de cronograma
Métricas de projeto (aplicações) Métricas de processo Finalidade estratégica Métricas de projeto Tática Usada para adaptar o fluxo de trabalho e as atividades técnicas Estimativas de esforço e tempo Métricas de projetos anteriores são usadas como base Gerente usa esses dados para monitorar e controlar o progresso
Trabalho Técnico: métricas Taxa de produção Horas de revisão Pontos por função Linhas de código entregue Erros descobertos Influenciam a qualidade do software Influencia a abordagem de Teste
Métricas de Projeto: objetivos Usadas para minimizar o cronograma de desenvolvimento Ajuste necessários para evitar: atrasos Problemas Riscos em potencial Avaliar sua qualidade do produto durante sua evolução Defeitos são minimizados Retrabalho reduzido
Medidas de Software No mundo físico as medidas são divididas em : Diretas Processo Custo Esforço Produto Linhas de código Velocidade de execução Tamanho de memória Defeitos relatados Indiretas Funcionalidade Qualidade Complexidade Eficiência Confiabilidade Manutenibilidade
Medição de Software Métricas Orientadas Tamanho LOC (Line of Code) ou Função FP (Pontos por função) Objetos C Usos
Métrica Orientada a Tamanho Derivada da normalização de medidas de qualidade e/ou produtividade Projeto LOC Esforço x$(000) Pág. Doc Erros Defeitos Pessoas Alpha 12100 24 168 365 134 29 3 Beta 27200 62 440 1224 321 86 5 Gamma 20200 43 314 1050 256 64 6 Alpha 12100 Linhas de código Desenvolvido com 24 pessoas/meses Custo $168000 365 páginas de documentos 134 erros registrados 29 defeitos depois de liberado
Métrica Orientada a Tamanho Métricas que podem ser usadas Erros por KLOC Defeitos por KLOC $ por LOC PPDoc por KLOC Erros/pessoa-mês LOC/pessoa-mês $/PPDoc
Métrica Orientada a Tamanho Vantagens e Problemas? Defensores Artefato de todo projeto Muitos modelos usam LOC e KLOC Grande volume de literatura Contra Depende da LP Estimativa Não se sabe ainda o tamanho do código
Métrica Orientada a Função Medida de Funcionalidade Pontos por função (Function point FP)
Métrica Orientada a Função Pontos por função : É uma medida de dimensionamento do software através da funcionalidade implementada em um sistema, sob o ponto de vista do usuário. Medida qualitativa calculada através de medidas quantitativas
Métrica Orientada a Função Número entradas externas Número de saídas externas Número de consultas externas Número de arquivos Número de interfases externas
Métrica Orientada a Função FP = count-total X (0.65 + 0.01 X Sum(Fi) Fi fatores de ajuste de complexidade = 1...14
Fatores de Ajuste de Complexidade 1. O sistema requer salvamento (backup) ev recuperação (recovery)? 2. Comunicações de dados especializados são necessários para transferir informação para ou da aplicação? 3. Existem funções de processamento distribuído? 4. O desempenho é crítico? 5. O sistema será executado em um ambiente operacional existente, intensamente utilizado? 6. O sistema requer entrada de dados on-line? 7. A entrada de dados on-line exige que a transação de entrada seja construída por meio de várias telas ou operações? 8. Os ILFs são atualizados on-line? 9. As entradas, saídas, arquivos ou consultas são complexos? 10. O processamento interno é complexo?
Escala de Resposta 0 - Nenhuma influência 1- Influencia Mínima 2-Influencia Moderada 3- Influencia Média 4 - Influencia Significativa 5 - Grande influencia Calculadora de pontos por função http://blog.daltux.com/2008/04/calculadora-de-pontos-por-funcao/
Métrica Orientada a Função Defensores Independente de LP Dados conhecidos no início do projeto Contra Requer alguma mágica pois os cálculos são baseados em dados subjetivos
Reconciliando as métricas LOC e FP depende da linguagem e da qualidade o design Albretch e Gaffney propõem uma medida tosca para relacionar LOC e FP Linguagem de Programação LOC/FP em média assem bly 320 C 128 C obol 105 Fortran 105 P as cal 90 A da 70 OOL 30 4Gls 20 Geradores de código 15 P lanilhas eletrônicas 6 Linguagens gráficas (icons) 4
Métrica Orientada a Objeto Números de scripts de cenário (análogo ao caso de uso) Seqüência de passos que descreve a interação com o usuário e a aplicação Número de classes-chave Componentes altamente independente Número de classes de apoio Necessárias para implementar o sistema, não relacionada ao domínio da aplicação Classe de acesso a BD, classes de calculo Numero médio de classes de apoio por classechave Número de subsistemas
Métrica Orientada a Casos de Uso Descrito no início do projeto Descreve as funções Independente de LP Diretamente ao tamanho da aplicação em LOC e número de caso de teste
Métrica de Software Medidas são usadas para derivar em métricas de produtividade. Deve ser comparadas as métricas entre grupos? LOC/pessoa-mês FP/pessoa-mês O gerente deve apressar as pessoas baseados nestas métricas?
Métrica de Software Cinco fatores importantes que influenciam a produtividade Fator humano Tamanho e experiência Fator associado ao problema Complexidade e câmbios no desenho das restrições e requerimentos Fator de processo Técnica de analise e desenho, linguagem e ferramenta CASE e técnicas de revisão Fator do produto - Confiabilidade e desempenho do sistema Fator de recursos
Métrica de Qualidade de Software Principal meta da ES Produzir sistemas de alta qualidade e um espaço de tempo que satisfaça uma necessidade do mercado Métodos + ferramentas Principais métricas utilizadas Medir erros e defeitos Outros Erros por hora de revisão Erros descobertos por hora de teste
Medidas de qualidade Correção Manutenibilidade Integridade Usabilidade
Medidas de qualidade (Correção) É o grau em que o software desempenha sua necessária função métrica comum defeitos/kloc
Medidas de qualidade (Manutenibilidade) É a facilidade que um programa pode ser corrigido caso encontre erro, adaptado ou aperfeiçoado Atividade de ES que mais consome esforço Não é possível de medir diretamente MTTC (mean-time-to-change)
Medidas de qualidade (Integridade) Mede a capacidade do sistema em resistir a ataques à sua segurança Programas Dados Documentos Ataque e a probabilidade de um ataque ocorrer Segurança É a probabilidade de um ataque ser repelido Integridade = sum(1-ataquex(1-segurança))
Medidas de qualidade (Usabilidade) Se um programa que não é fácil de usar, está fadado ao fracasso, mesmo se as funções são valiosas
Eficiência de remoção de defeitos (DRE) Métrica de qualidade DRE = E /(E + D) E número de erros encontrados antes da liberação do software D número de defeitos encontrados antes da liberação DRE i =E i /(E i +E i+1 )
Integração de Métricas no processo de Software A maioria dos desenvolvedores não medem Muitos tem pouca vontade de começar PROBLEMA CULTURAL Por que precisamos fazer isso?, perguntou um atarefado gerente e um profissional sobrecarregado...
Integração de Métricas no processo de Software Por que é tão importante medir o processo de ES e o produto (software) que ele produz? Resposta óbvia Se não medimos, não haverá forma real de determinar se estamos melhorando Se não estivermos melhorando, estamos perdidos Usar a medição torna mais fácil o gerenciamento Estimativas Sistemas de alta qualidade Entregar produtos dentro do prazo Referencial do projeto
Usando métricas Usar métricas de projetos anteriores Mas...devemos usar se: 1. Os dados são precisos 2. Coletar os dados do máximo possível de projetos 3. Medições consistentes. Ex. linha de código implementada de forma consistente em todos os projetos 4 Aplicações análogas SI com processamento batch (lote) Aplicação embutida de tempo real
Processo de coleta e métrica
Métricas para pequenas Organizações Use métricas simples Tempo (horas ou dias) Desde o pedido até que a avaliação seja feita Esforço (pessoa-horas) Esforço para modificação Erros descobertos durante a modificação Etc..