Escolar Documentos
Profissional Documentos
Cultura Documentos
Alexandre Vasconcelos
amlv@cin.ufpe.br
Mtricas de Software
1/57
Objetivos
Mtricas de Software
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
Mtricas de Software
3/57
Motivao
Mtricas de Software
4/57
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
5/57
Mtricas de 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
7/57
Mtricas de Software
8/57
Em resumo...
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
Mtricas de Software
9/57
Categorizao de Mtricas
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 de Software
10/57
Categorizao de Mtricas
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 de Software
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
12/57
Mtricas de Software
13/57
Teoria da Medio
Mtricas de Software
14/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
Mtricas de Software
15/57
Medida
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
17/57
Escala
Representa os smbolos na faixa de uma medida mais as manipulaes permitidas Ex. de manipulaes:
Mtricas de Software
18/57
Tipos de Escala
Nome
Nominal Ordinal
Caractersticas
Smbolos no ordenados Smbolos ordenados
Exemplos
{verdadeiro, falso} {simples, mdio, complexo} Celsius e Fahrenheit
Ratio (razo)
Mtricas de Software
19/57
Segundo Humphrey, so quatro os principais papis de Medies de Software: Entender Processos, Produtos e Servios de Software Avaliar Prever
Controlar
Mtricas de Software
20/57
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
21/57
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
22/57
Mtricas de Software
23/57
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
24/57
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
25/57
Selecionando Objetivos
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
26/57
Selecionando Mtricas
No selecione mtricas em que os dados sejam difceis de serem coletados na sua realidade
Mtricas de Software
27/57
Selecionando Mtricas
Que atributos dos nossos produtos e servios so mais importantes para os nossos clientes?
Aspectos Relevantes de Produto e Servio para Clientes
Mtricas de Software
28/57
O processo de medio
Planejar Medir Analisar os dados Tomar decises baseadas na anlise Implementar as decises Voltar a planejar e medir
Mtricas de Software
29/57
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
30/57
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
Mtricas de Software
31/57
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
Mtricas de Software
32/57
Mtricas de Software
33/57
Plano de Mtricas
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 34/57
Mtricas de Software
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
35/57
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 36/57
Mtricas de Software
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
37/57
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
38/57
Cuidado com...
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
39/57
Estimativas de Software
Mtricas de Software
40/57
difcil conhecer se possvel desenvolver o produto desejado pelo cliente antes de conhecer os detalhes do projeto.
Mtricas de Software
41/57
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
42/57
O Processo de Estimativas
1. 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
43/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 Derivado da estimativa de tamanho Ex. dividindo a estimativa de tamanho por produtividade produz-se o esforo
Esforo
Mtricas de Software
44/57
Tipos de Estimativas
Prazo
Geralmente so dirigidos a datas fornecidas pelo Cliente Medidas de resultados Ex. defeitos por fase, esforo de mudanas
Qualidade
Mtricas de Software
45/57
Mtricas de Software
46/57
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:
Mtricas de Software
47/57
Mtricas de Software
48/57
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
49/57
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
Mtricas de Software
50/57
ISBSG
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
51/57
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
52/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!! Mtricas de Software 2005, Alexandre Vasconcelos 53/57
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
54/57
Mtricas de Software
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
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