Introduo a Mtricas de SoftwareAlexandre [email protected]
Mtricas de Software
2005, Alexandre Vasconcelos
1/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 um2005, Alexandre Vasconcelos 2/57
Mtricas de Software
MotivaoUm 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
Mtricas de Software
2005, Alexandre Vasconcelos
3/57
Motivao
No se pode gerenciar o que no se podemedir.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
Mtricas de Software
2005, Alexandre Vasconcelos
4/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)
Mtricas de Software
2005, Alexandre Vasconcelos
5/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 investimento2005, Alexandre Vasconcelos 6/57
Mtricas de Software
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
Mtricas de Software
2005, Alexandre Vasconcelos
7/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
Mtricas de Software
2005, Alexandre Vasconcelos
8/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 Processo: ex. produtividade Produto: ex. qualidade
Dois contextos para medio de software
Mtricas de Software
2005, Alexandre Vasconcelos
9/57
Categorizao de MtricasMtricas 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. Medidas obtidas a partir de outras mtricas Ex.: complexidade, eficincia, confiabilidade, facilidade de manuteno
Mtricas indiretas (derivadas)
Mtricas de Software
2005, Alexandre Vasconcelos
10/57
Categorizao de MtricasMtricas 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 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.
Mtricas orientadas por funo
Mtricas de Software
2005, Alexandre Vasconcelos
11/57
Categorizao de Mtricas Mtricas de produtividade
Concentram-se na sada do processo de engenharia de software. Ex.: no. de casos de uso/iterao. Oferecem uma indicao de quanto o software se adeqa s exigncias implcitas e explcitas do cliente. Ex.: erros/fase 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
Mtricas de qualidade
Mtricas tcnicas
Mtricas de Software
2005, Alexandre Vasconcelos
12/57
Possveis problemas com mtricasEx: 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?
Mtricas de Software
2005, Alexandre Vasconcelos
13/57
Teoria da MedioTeoria sobre mtricas pode ajudar a resolver estes problemas.
Mtricas de Software
2005, Alexandre Vasconcelos
14/57
Relaes EmpricasAjudam 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
Mtricas de Software
2005, Alexandre Vasconcelos
15/57
MedidaMedida uma funo de mapeamento2.10m 1.65m 1.50mUm smbolo em um conjunto com relaes matmaticas conhecidas2005, Alexandre Vasconcelos 16/57
Super-homem Papai Noel Mame NoelAtributos do mundo real (domnio)
Mtricas de Software
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?
Mtricas de Software
2005, Alexandre Vasconcelos
17/57
EscalaRepresenta 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}
Mtricas de Software
2005, Alexandre Vasconcelos
18/57
Tipos de EscalaNomeNominal Ordinal
CaractersticasSmbolos no ordenados Smbolos ordenados
Exemplos{verdadeiro, falso} {simples, mdio, complexo} Celsius e Fahrenheit
Intervalar Diferena entre qualquer par consecutivo de valores preservada
Ratio (razo)
Diferena entre qualquer par consecutivo de valores preservada. Possui 0 absoluto.
Kelvin, tamanho, largura
Mtricas de Software
2005, Alexandre Vasconcelos
19/57
Os Quatros papis de MedioSegundo Humphrey, so quatro os principais papis de Medies de Software: Entender Processos, Produtos e Servios de Software Avaliar Prever
Controlar
Mtricas de Software
2005, Alexandre Vasconcelos
20/57
Os Quatros papis de Medio Entender
Mtricas ajudam a entender o comportamento e funcionamento de processos, produtos e servios de software Mtricas podem ser utilizadas para tomar decises e determinar o estabelecimento de padres, metas e critrios de aceitao Mtricas podem ser utilizadas para controlar processos, produtos e servios de software Mtricas podem ser utilizadas para prever valores de atributos
Avaliar
Controlar
Prever
Mtricas de Software
2005, Alexandre Vasconcelos
21/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
Mtricas de Software
2005, Alexandre Vasconcelos
22/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?
Mtricas de Software
2005, Alexandre Vasconcelos
23/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
Mtricas de Software
2005, Alexandre Vasconcelos
24/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? Nmero de defeitos Nmero de defeitos por status Nmero de casos de testes planejados x executados Nmero de requisitos testados
Mtricas:
Mtricas de Software
2005, Alexandre Vasconcelos
25/57
Selecionando ObjetivosDevem 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
Mtricas de Software
2005, Alexandre Vasconcelos
26/57
Selecionando MtricasSeja 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 possvelA equipe no deve ser muito impactada Utilize a abordagem incremental
Com o tempo, com os benefcios, mais dados estaro disponveis...
Mtricas de Software
2005, Alexandre Vasconcelos
27/57
Selecionando MtricasObjetivo: 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
Clientes que Consideram o Aspecto
20 15 10 5 0 Qualidade Custo Prazo Visibilidade do Flexbilidade p/ Progresso mudanas # Clientes
Aspectos Relevantes Para os Clientes
Mtricas de Software
2005, Alexandre Vasconcelos
28/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
Mtricas de Software
2005, Alexandre Vasconcelos
29/57
Princpios de um Processo de MedioUm 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
Mtricas de Software
2005, Alexandre Vasconcelos
30/57
Princpios de um Processo de MedioMedies 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
Mtricas de Software
2005, Alexandre Vasconcelos
31/57
Princpios de um Processo de MedioO 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
Mtricas de Software
2005, Alexandre Vasconcelos
32/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
Mtricas de Software
2005, Alexandre Vasconcelos
33/57
Plano de MtricasPara 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 armazenados2005, Alexandre Vasconcelos 34/57
Mtricas de Software
Especificando as Medies Definies OperacionaisDefinir 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
Mtricas de Software
2005, Alexandre Vasconcelos
35/57
Especificando as Medies Definies OperacionaisProcedimentos 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 36/57
Mtricas de Software
Aps todo o planejamento...Executar as atividades com base no planejamento realizado Utilizar o plano de medio como base!!
Comunicar os resultados ao pblico alvo de cada mtrica Tomar aes com base nos resultados Acompanhar os itens de ao
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
Mtricas de Software
2005, Alexandre Vasconcelos
37/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
Mtricas de Software
2005, Alexandre Vasconcelos
38/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 medies2005, Alexandre Vasconcelos
Mtricas de Software
39/57
Estimativas de Software
Mtricas de Software
2005, Alexandre Vasconcelos
40/57
Por que to difcil estimar? difcil conhecer se possvel desenvolver o produto desejado pelo cliente antes de conhecer os detalhes do projeto.
Mtricas de Software
2005, Alexandre Vasconcelos
41/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
Mtricas de Software
2005, Alexandre Vasconcelos
42/57
O Processo de Estimativas1. 2. 3. 4.Estimar o tamanho do produto Estimar o esforo Estimar o prazo Fornecer estimativas dentro de uma faixa permitida e refinar essa faixa medida que o projeto progride
Mtricas de Software
2005, Alexandre Vasconcelos
43/57
Tipos de EstimativasTamanho
Quantidade de software a ser produzida Ex. no. linhas de cdigo, no. pontos de funo, n.o de requisitos, pontos de casos de uso Derivado da estimativa de tamanho Ex. dividindo a estimativa de tamanho por produtividade produz-se o esforo
Esforo
Mtricas de Software
2005, Alexandre Vasconcelos
44/57
Tipos de EstimativasPrazo
Geralmente so dirigidos a datas fornecidas pelo Cliente Medidas de resultados Ex. defeitos por fase, esforo de mudanas
Qualidade
Mtricas de Software
2005, Alexandre Vasconcelos
45/57
Evoluo Histrica & Tendncias
Mtricas de Software
2005, Alexandre Vasconcelos
46/57
A Dcada de 70: Medio do Cdigo FonteCaracterizada por
Mtricas para cdigo fonte propostas por Halstead (ex: nmero de operadores distintos, nmero de operandos distintos, etc.) Mtricas de Complexidade Ciclomtica de McCabeMedida do nmero de caminhos linearmente independentes num mdulo
Influenciada por:
Aceitao crescente da programao estruturada Primeiras noes de complexidade cognitiva
Mtricas de Software
2005, Alexandre Vasconcelos
47/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
Mtricas de Software
2005, Alexandre Vasconcelos
48/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)
Mtricas de Software
2005, Alexandre Vasconcelos
49/57
Tendncias: procura por mtricas mais especficasMedidas 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
Mtricas de Software
2005, Alexandre Vasconcelos
50/57
ISBSGInternational 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
Mtricas de Software
2005, Alexandre Vasconcelos
51/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
Mtricas de Software
2005, Alexandre Vasconcelos
52/57
Principais BarreirasFalta 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!! Mtricas de Software 2005, Alexandre Vasconcelos 53/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
Mtricas de Software
2005, Alexandre Vasconcelos
54/57
Mas podemos contornar ...
Incentivar a equipe de desenvolvimento a fazer uso das mtricas
Envolvimento de todos os impactados Estabelecer as expectativasEducao e Treinamento Ganhar Confiana Adotar uma Abordagem Evolucionria Compreender que a Adoo leva Tempo
Mtricas de Software
2005, Alexandre Vasconcelos
55/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
Mtricas de Software
2005, Alexandre Vasconcelos
56/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.2005, Alexandre Vasconcelos 57/57
Mtricas de Software