2005, Alexandre Vasconcelos Mtricas de Software 1/57
Introduo a Mtricas de Software
Alexandre Vasconcelos amlv@cin.ufpe.br 2005, Alexandre Vasconcelos Mtricas de Software 2/57 Objetivos Entender porque medio importante para avaliao e garantia da qualidade de software Entender as abordagens principais de mtricas e como elas so utilizadas Conhecer algumas mtricas e suas aplicaes Entender o que um Plano de Mtricas e como escrever um 2005, Alexandre Vasconcelos Mtricas de Software 3/57 Motivao Um dos objetivos bsicos da Engenharia de Software : a transformao da criao de sistemas software de uma maneira artstica, indisciplinada e pouco entendvel para uma forma devidamente controlada, quantificada e previsvel Mtricas de Software um assunto discutido h mais de 20 anos na engenharia de software ... e no entanto no verificada sua utilizao, na prtica, pela grande maioria dos projetos de construo de software Pesquisas realizadas em empresas de software indicam que mais da metade de grandes projetos de software se deparam com algum tipo de atraso, excesso de custo ou prazo ou algum fracasso na execuo quando implantado Falta de controle dos projetos
2005, Alexandre Vasconcelos Mtricas de Software 4/57 Motivao No se pode gerenciar o que no se pode medir. Tom De Marco Se voc no sabe para onde voc quer ir, qualquer caminho voc pode seguir. Se voc no sabe onde voc est, um mapa no vai ajudar!. Roger Pressman 2005, Alexandre Vasconcelos Mtricas de Software 5/57 O que so mtricas de software? Uma mtrica a medio de um atributo (propriedades ou caractersticas ) de uma determinada entidade (produto, processo ou recursos). Exemplos: Tamanho do produto de software (ex: Nmero de Linhas de cdigo) Nmero de pessoas necessrias para implementar um caso de uso Nmero de defeitos encontrados por fase de desenvolvimento Esforo para a realizao de uma tarefa Tempo para a realizao de uma tarefa Custo para a realizao de uma tarefa Grau de satisfao do cliente (ex: adequao do produto ao propsito, conformidade do produto com a especificao)
2005, Alexandre Vasconcelos Mtricas de Software 6/57 Por que medir software? Entender e aperfeioar o processo de desenvolvimento Melhorar a gerncia de projetos e o relacionamento com clientes Reduzir frustraes e presses de cronograma Gerenciar contratos de software Indicar a qualidade de um produto de software Avaliar a produtividade do processo Avaliar os benefcios (em termos de produtividade e qualidade) de novos mtodos e ferramentas de engenharia de software Avaliar retorno de investimento 2005, Alexandre Vasconcelos Mtricas de Software 7/57 Por que medir software? Identificar as melhores prticas de desenvolvimento de software Embasar solicitaes de novas ferramentas e treinamento Avaliar o impacto da variao de um ou mais atributos do produto ou do processo na qualidade e/ou produtividade Formar uma baseline para estimativas Melhorar a exatido das estimativas Oferecer dados qualitativos e quantitativos ao gerenciamento de desenvolvimento de software, de forma a realizar melhorias em todo o processo de desenvolvimento de software 2005, Alexandre Vasconcelos Mtricas de Software 8/57 Propriedades desejveis de uma mtrica Facilmente calculada, entendida e testada Passvel de estudos estatsticos Expressa em alguma unidade Obtida o mais cedo possvel no ciclo de vida do software Passvel de automao Repetvel e independente do observador Sugere uma estratgia de melhoria
2005, Alexandre Vasconcelos Mtricas de Software 9/57 Em resumo... Uma mtrica deve ser: Vlida: quantifica o que queremos medir Confivel: produz os mesmos resultados dadas as mesmas condies Prtica: barata, fcil de computar e fcil de interpretar Dois contextos para medio de software Processo: ex. produtividade Produto: ex. qualidade 2005, Alexandre Vasconcelos Mtricas de Software 10/57 Categorizao de Mtricas Mtricas diretas (fundamentais ou bsicas) Medida realizada em termos de atributos observados (usualmente determinada pela contagem) Ex.: custo, esforo, no. linhas de cdigo, capacidade de memria, no. pginas, no. diagramas, etc. Mtricas indiretas (derivadas) Medidas obtidas a partir de outras mtricas Ex.: complexidade, eficincia, confiabilidade, facilidade de manuteno 2005, Alexandre Vasconcelos Mtricas de Software 11/57 Categorizao de Mtricas Mtricas orientadas a tamanho So medidas diretas do tamanho dos artefatos de software associados ao processo por meio do qual o software desenvolvido. Ex.: esforo, custo, no. KLOC, no. pginas de documentao, no. erros Mtricas orientadas por funo Consiste em um mtodo para medio de software do ponto de vista do usurio, determinando de forma consistente o tamanho e a complexidade de um software. 2005, Alexandre Vasconcelos Mtricas de Software 12/57 Categorizao de Mtricas Mtricas de produtividade Concentram-se na sada do processo de engenharia de software. Ex.: no. de casos de uso/iterao. Mtricas de qualidade Oferecem uma indicao de quanto o software se adeqa s exigncias implcitas e explcitas do cliente. Ex.: erros/fase Mtricas tcnicas Concentram-se nas caractersticas do software e no no processo por meio do qual o software foi desenvolvido. Ex.: complexidade lgica e grau de manutenibilidade 2005, Alexandre Vasconcelos Mtricas de Software 13/57 Possveis problemas com mtricas Ex: Comparar a produtividade de engenheiros em termos de linha de cdigo Est sendo utilizado a mesma unidade de medida? O que uma linha de cdigo vlida? O contexto considerado o mesmo? Todos os engenheiros so familiarizados com a linguagem de programao? O que se quer realmente o tamanho do cdigo? E a qualidade do cdigo? Como o resultado ser interpretado? Produtividade mdia de um engenheiro? O que se quer com o resultado? Comparar a produtividade do processo de software? 2005, Alexandre Vasconcelos Mtricas de Software 14/57 Teoria da Medio Teoria sobre mtricas pode ajudar a resolver estes problemas. 2005, Alexandre Vasconcelos Mtricas de Software 15/57 Relaes Empricas Ajudam a observar as relaes do tipo verdadeiro/falso entre entidades do mundo real Ex. Relaes empricas entre o atributo altura das pessoas Binria: O Super-homem mais alto do que papai Noel Unria: O Super-homem alto Ternria: O Super-homem mais alto do que papai Noel e mame Noel 2005, Alexandre Vasconcelos Mtricas de Software 16/57 Medida Medida uma funo de mapeamento
Super-homem Papai Noel Mame Noel 2.10m 1.65m 1.50m Atributos do mundo real (domnio) Um smbolo em um conjunto com relaes matmaticas conhecidas 2005, Alexandre Vasconcelos Mtricas de Software 17/57 Medio a atribuio de uma medida (atravs de um smbolo) a um atributo do mundo real Propsito: manipular smbolos na faixa => determinar concluses sobre os atributos do domnio Para ser precisa, a medio deve especificar Domnio: Ser medido a largura ou altura das pessoas? Faixa: A medida da altura foi feita em m ou cm? Regras de mapeamento: Ser permitido medir altura considerando pessoas caladas? 2005, Alexandre Vasconcelos Mtricas de Software 18/57 Escala Representa os smbolos na faixa de uma medida mais as manipulaes permitidas Ex. de manipulaes: Mapeamento: transformar smbolos em um conjunto em outros smbolos em outro conjunto. {verdadeiro, falso} {1, 0}
2005, Alexandre Vasconcelos Mtricas de Software 19/57 Tipos de Escala Kelvin, tamanho, largura Diferena entre qualquer par consecutivo de valores preservada. Possui 0 absoluto. Ratio (razo) Celsius e Fahrenheit Diferena entre qualquer par consecutivo de valores preservada Intervalar {simples, mdio, complexo} Smbolos ordenados Ordinal {verdadeiro, falso} Smbolos no ordenados Nominal Exemplos Caractersticas Nome 2005, Alexandre Vasconcelos Mtricas de Software 20/57 Os Quatros papis de Medio Segundo Humphrey, so quatro os principais papis de Medies de Software: Processos, Produtos e Servios de Software Entender Avaliar Prever Controlar 2005, Alexandre Vasconcelos Mtricas de Software 21/57 Os Quatros papis de Medio Entender Mtricas ajudam a entender o comportamento e funcionamento de processos, produtos e servios de software Avaliar Mtricas podem ser utilizadas para tomar decises e determinar o estabelecimento de padres, metas e critrios de aceitao Controlar Mtricas podem ser utilizadas para controlar processos, produtos e servios de software Prever Mtricas podem ser utilizadas para prever valores de atributos 2005, Alexandre Vasconcelos Mtricas de Software 22/57 O Paradigma Goal Question Metrics (GQM) Usado para definir o conjunto de mtricas a ser coletado Proposto por: Basili and Rombachs, Goal-Question-Metrics Paradigm, IEEE Transactions on Software Engineering, 1988. Baseia-se no fato de que deve existir uma necessidade clara associada a cada mtrica 2005, Alexandre Vasconcelos Mtricas de Software 23/57 O Paradigma Goal Question Metrics (GQM) Inicia-se com a identificao dos interessados na medio. Com base nos interessados, estabelecem-se os principais objetivos da medio para a organizao, o projeto ou uma tarefa especfica. Ex: reduzir defeitos, aumentar produtividade, etc. A partir dos objetivos, geram-se perguntas cujas respostas diro se os objetivos foram ou no alcanados (ex: Qual a taxa de defeito atual? Qual a taxa de defeito aps a implantao do novo processo?) A partir das perguntas, definem-se mtricas: que dados sero necessrios? Quais os formatos? Como coletar (frmula e processo)? Onde armazenar e como utilizar? 2005, Alexandre Vasconcelos Mtricas de Software 24/57 O Paradigma Goal Question Metrics (GQM) Goal 1 Goal 2 Questo 1 Questo 2 Questo 3 Questo 4 Mtrica 1 Mtrica 2 Mtrica 3 Mtrica 4 Mtrica 5 2005, Alexandre Vasconcelos Mtricas de Software 25/57 Exemplo do uso do GQM Objetivo: Assegurar que todos os defeitos so corrigidos antes do software ser liberado para uso. Perguntas: Quantos defeitos temos atualmente? Qual o status de cada defeito? Qual a cobertura dos testes? Mtricas: Nmero de defeitos Nmero de defeitos por status Nmero de casos de testes planejados x executados Nmero de requisitos testados 2005, Alexandre Vasconcelos Mtricas de Software 26/57 Selecionando Objetivos Devem estar associados a um perodo de tempo Aumentar a produtividade em 20% no prazo de 12 meses Facilita o acompanhamento e a tomada de aes para viabilizar objetivo pois existe um prazo!!!
Estudos indicam que objetivos muito complexos e de longo prazo podem causar impacto na motivao Objetivos menores, a curto prazo, permitem que as pessoas visualizem o progresso e alcancem sucessos Com o tempo e com a maturidade da organizao, os objetivos devem se tornar mais complexos e mais desafiadores 2005, Alexandre Vasconcelos Mtricas de Software 27/57 Selecionando Mtricas Seja realista e prtico
Considere o processo e o ambiente de desenvolvimento atual No selecione mtricas em que os dados sejam difceis de serem coletados na sua realidade
Comece com o que for possvel
A equipe no deve ser muito impactada
Utilize a abordagem incremental Com o tempo, com os benefcios, mais dados estaro disponveis... 2005, Alexandre Vasconcelos Mtricas de Software 28/57 Selecionando Mtricas Objetivo: Aumentar satisfao do cliente Que atributos dos nossos produtos e servios so mais importantes para os nossos clientes?
Aspectos Relevantes de Produto e Servio para Clientes 0 5 10 15 20 Qualidade Custo Prazo Visibilidade do Progresso Flexbilidade p/ mudanas Aspectos Relevantes Para os Clientes C l i e n t e s
q u e
C o n s i d e r a m
o
A s p e c t o # Clientes 2005, Alexandre Vasconcelos Mtricas de Software 29/57 O processo de medio um processo cclico que envolve: Planejar Medir Analisar os dados Tomar decises baseadas na anlise Implementar as decises Voltar a planejar e medir 2005, Alexandre Vasconcelos Mtricas de Software 30/57 Princpios de um Processo de Medio Um processo de medio deve: Fornecer uma base para melhoria contnua do processo Quantificar a qualidade e produtividade Estar integrado com o ciclo de vida de desenvolvimento Medir o impacto de vrios mtodos, ferramentas, e tcnicas de melhorias 2005, Alexandre Vasconcelos Mtricas de Software 31/57 Princpios de um Processo de Medio Medies devem ser usadas para medir processos, no pessoas O processo de medio deve ter objetivos claros e bem-definidos O processo de medio deve ser fortemente acoplado com o processo de gerncia da qualidade e integrado dentro de planos e oramentos 2005, Alexandre Vasconcelos Mtricas de Software 32/57 Princpios de um Processo de Medio O processo de coleta de dados deve ser simples, e ferramentas automticas para extrao de dados devem ser usadas O processo de medio contnuo e sujeito a melhoria
2005, Alexandre Vasconcelos Mtricas de Software 33/57 Caractersticas de um programa efetivo de medio Escolha um conjunto adequado de mtricas Relacione as mtricas ao processo de tomada de deciso (suportado pela alta administrao) Avalie processos e no pessoas (explique os objetivos da medio) No use as mtricas para punir Envolva vrias pessoas na seleo e formulao das mtricas Estabelea alta prioridade (recursos, ferramentas, etc.) Integre o programa ao desenvolvimento de software Alinhe aos objetivos de negcio Padronize e documente Compartilhe as mtricas obtidas Institucionalize como parte da cultura da organizao Integre com o programa de melhorias (ilustre o progresso e as melhorias obtidos a partir do programa) Oferea planos de ao 2005, Alexandre Vasconcelos Mtricas de Software 34/57 Plano de Mtricas Para cada objetivo tcnico o plano contm informao sobre: POR QUE as mtricas satisfazem o objetivo QUE mtricas sero coletadas, como elas sero definidas, e como sero analisadas QUEM far a coleta, quem far a anlise, e quem ver os resultados COMO ser feito: que ferramentas, tcnicas e prticas sero usadas para apoiar a coleta e anlise das mtricas QUANDO no processo e com que freqncia as mtricas sero coletadas e analisadas ONDE os dados sero armazenados 2005, Alexandre Vasconcelos Mtricas de Software 35/57 Especificando as Medies Definies Operacionais Definir e documentar para cada mtrica : Objetivos Pblico alvo da mtrica Quem precisa da informao? Quem ir usar as informaes fornecidas pela mtrica? Uma mtrica til sempre tem um cliente
Procedimento de coleta e armazenamento Quando o dado deve ser coletado? Periodicamente ou por eventos? Quem o responsvel pela coleta e armazenamento? Como o dado deve ser coletado? A partir de que ferramentas e produtos de trabalho do projeto / organizao? Onde ele ser armazenado? Quando o dado deve ser armazenado? Avaliar mtricas que podem acarretar em muito esforo e pouco valor Buscar automatizar a coleta dos dados sempre que possvel Ferramentas para controle de tempo, bugtracking, helpdesk, controle de verso, gesto de requisitos 2005, Alexandre Vasconcelos Mtricas de Software 36/57 Especificando as Medies Definies Operacionais Procedimentos de Anlise Necessrios para Entendimento da mtrica Avaliao (critrio para tomada de deciso) A anlise dos dados deve enderear os objetivos das medies Seleo dos mtodos e ferramentas de anlise: Como a mtrica ser visualmente apresentada? Grficos de barras, linhas, colunas, pizza, histogramas, diagramas de scatter, tabelas... Ferramentas de Ishikawa A equipe de desenvolvimento deve ser envolvida sempre que necessrio
Para mtricas de controle: Estabelecimento de limites de controle Estabelecimento de thresholds (limiar) Padres ou requisitos de mercado de performance Mdia de mercado para custo da baixa qualidade = 4% Temos que correr atrs dessa meta!!! 2005, Alexandre Vasconcelos Mtricas de Software 37/57 Aps todo o planejamento... Executar as atividades com base no planejamento realizado Utilizar o plano de medio como base!!
Tomar aes com base nos resultados Acompanhar os itens de ao Comunicar os resultados ao pblico alvo de cada mtrica Ajustar o processo com melhorias a partir dos resultados de sua execuo: Inicialmente vai ser difcil definir todos esses procedimentos da melhor forma Eles devem ser melhorados a medida em que o processo executado Novos objetivos e mtricas surgem... Melhores forma de coleta so identificadas As orientaes para realizao da anlise vo sendo refinadas a medida que conhecemos melhor os dados 2005, Alexandre Vasconcelos Mtricas de Software 38/57 Aps todo o planejamento... (2) Armazenar os resultados Tanto os dados, como os resultados, as aes tomadas, tudo que for relevante Toda informao que contextualize a mtrica ou que fornea alguma informao adicional
Dados histricos no so apenas nmeros 2005, Alexandre Vasconcelos Mtricas de Software 39/57 Cuidado com... Elaborar um poltica de controle de acesso Apenas pessoas autorizadas devem ter acesso a certos tipos de dados
Evitar o uso indevido dos dados Avaliao de pessoas Comparao entre projetos, grupos ou reas da empresa de forma indevida Publicao de informaes que foram fornecidas de forma confidencial
Ateno: O uso indevido dos dados impacta fortemente e negativamente um programa de medies 2005, Alexandre Vasconcelos Mtricas de Software 40/57 Estimativas de Software 2005, Alexandre Vasconcelos Mtricas de Software 41/57 Por que to difcil estimar? difcil conhecer se possvel desenvolver o produto desejado pelo cliente antes de conhecer os detalhes do projeto. 2005, Alexandre Vasconcelos Mtricas de Software 42/57 Por que to difcil estimar? Desenvolvimento um processo gradual de refinamento Incerteza da natureza do produto contribui para a incerteza da estimativa Requisitos e escopo mudam Defeitos so encontrados e demandam retrabalho Produtividade varia
2005, Alexandre Vasconcelos Mtricas de Software 43/57 O Processo de Estimativas 1. Estimar o tamanho do produto 2. Estimar o esforo 3. Estimar o prazo 4. Fornecer estimativas dentro de uma faixa permitida e refinar essa faixa medida que o projeto progride 2005, Alexandre Vasconcelos Mtricas de Software 44/57 Tipos de Estimativas Tamanho Quantidade de software a ser produzida Ex. no. linhas de cdigo, no. pontos de funo, n.o de requisitos, pontos de casos de uso Esforo Derivado da estimativa de tamanho Ex. dividindo a estimativa de tamanho por produtividade produz-se o esforo
2005, Alexandre Vasconcelos Mtricas de Software 45/57 Tipos de Estimativas Prazo Geralmente so dirigidos a datas fornecidas pelo Cliente Qualidade Medidas de resultados Ex. defeitos por fase, esforo de mudanas 2005, Alexandre Vasconcelos Mtricas de Software 46/57 Evoluo Histrica & Tendncias 2005, Alexandre Vasconcelos Mtricas de Software 47/57 A Dcada de 70: Medio do Cdigo Fonte Caracterizada por Mtricas para cdigo fonte propostas por Halstead (ex: nmero de operadores distintos, nmero de operandos distintos, etc.) Mtricas de Complexidade Ciclomtica de McCabe Medida do nmero de caminhos linearmente independentes num mdulo Influenciada por: Aceitao crescente da programao estruturada Primeiras noes de complexidade cognitiva 2005, Alexandre Vasconcelos Mtricas de Software 48/57 A Dcada de 80: Medio no incio do ciclo de vida Estimativas de medio: esforo e custo Medidas na etapa de projeto Medidas na etapa de especificao 2005, Alexandre Vasconcelos Mtricas de Software 49/57 A Dcada de 90: Um perspectiva mais ampla Surgimento de relatrios sobre programas de mtricas aplicados em empresas Benchmarking Impacto do modelo CMM Surgimento de ferramentas para medio Surgimento de uma teoria de medio como um framework unificado Surgimento de padres internacionais de medio de software (ex: Anlise de pontos de funo) 2005, Alexandre Vasconcelos Mtricas de Software 50/57 Tendncias: procura por mtricas mais especficas Medidas que: capturem a complexidade cognitiva capturem a complexidade estrutural capturem a complexidade funcional sejam independentes de linguagem possam ser extradas nas etapas iniciais do ciclo de vida 2005, Alexandre Vasconcelos Mtricas de Software 51/57 ISBSG International Software Benchmarking Standards Group Organizao sem fins lucrativos Mantm um banco de dados de mtricas de projetos de software para auxiliar na melhoria gerncia de recursos de TI
2005, Alexandre Vasconcelos Mtricas de Software 52/57 Mtricas de Software: Resumo As atividades de medio devem ser guiadas por objetivos Plano de Mtricas detalham como criar programas de medio para atender a objetivos tcnicos especficos Tendncias recentes: evoluo de mtricas ou modelos especficos para amplos programas organizacionais de mtricas 2005, Alexandre Vasconcelos Mtricas de Software 53/57 Principais Barreiras Falta de comprometimento da alta gerncia Medir custa caro Os maiores benefcios vm a longo prazo M utilizao das mtricas Grande mudana cultural necessria Dificuldade de estabelecer medies apropriadas e teis Interpretaes dos dados realizadas de forma incorreta Obter o comprometimento de todos os envolvidos e impactados Estabelecer um programa de medies fcil, o difcil manter!! 2005, Alexandre Vasconcelos Mtricas de Software 54/57 Mas podemos contornar ... Foco desde os estgios iniciais da melhoria de processo Medio faz parte do TODO Comear Pequeno Selecionar um conjunto coerente importante definir cada detalhe da mtrica Descartar o que no estiver sendo til Fornecer as informaes corretas, para as pessoas certas Agregar valor, ao invs de gerar apenas dados 2005, Alexandre Vasconcelos Mtricas de Software 55/57 Mas podemos contornar ... Incentivar a equipe de desenvolvimento a fazer uso das mtricas Envolvimento de todos os impactados Estabelecer as expectativas Educao e Treinamento Ganhar Confiana Adotar uma Abordagem Evolucionria Compreender que a Adoo leva Tempo 2005, Alexandre Vasconcelos Mtricas de Software 56/57 Referncias Fenton NE and Pfleeger SL, Software Metrics: A Rigorous & Practical Approach (2nd Ed.), PWS, 1998. www.csr.city.ac.uk/people/norman.fenton www.softwaremetrics.com IFPUG International Function Point Users Group: www.ifpug.org Total Metrics: www.totalmetrics.com
2005, Alexandre Vasconcelos Mtricas de Software 57/57 Referncias Chou, Tim. The Hidden Cost of Software. Maio 29, 2003. Url: http://itmanagement.earthweb.com/entdev/print.php/2214031. Negulescu, Radu. Software Engineering Practice Software Metrics II. McGill University, 2002. Mtricas de Software. Url: http://www.internext.com.br/mssa/medidas.html Haufe, Maria Isabel. Produtividade no Desenvolvimento de Software. Url: http://www.inf.ufgrs.br/pos/SemanaAcademica/Semana99/maria isabel/mariaisabel.html Mtricas e Estimativas de Software O incio de um rally de regularidade. Url: http://www.apinfo.com/artigo44.htm Pressman, Roger. S. Engenharia de Software. Makron Books, 1995.