metricas de qualidade de software

Upload: sabrina-souto

Post on 09-Mar-2016

229 views

Category:

Documents


1 download

DESCRIPTION

Metricas de Qualidade de Software

TRANSCRIPT

  • MTRICAS QUALIDADE DE SOFTWARE

    Sabrina de F. Souto

  • Agenda

    Conceitos Mtricas Caractersticas desejveis para mtricas Tipos de Mtricas Possveis problemas com mtricas

    2

    Possveis problemas com mtricas Teoria da Medio Papis da Medio Abordagem GQM Processo de Medio Plano de Mtricas Concluso

  • Motivao3

    No se pode gerenciar o que no se pode medir[Tom De Marco]

    Se voc no sabe para onde voc quer ir, qualquercaminho voc pode seguir. Se voc no sabe ondevoc est, um mapa no vai ajudar!

    [Roger Pressman]

  • Conceitos4

    Forma padro de medir um atributo do processo dedesenvolvimento de software [Boehm, 1981]

    Uma medida quantitativa do grau que um sistema,componente, ou processo possui de um determinadoatributo [IEEE Std 610.12-1990]

  • O que so mtricas de software?5

    Uma mtrica a medio de um atributo (propriedadesou caractersticas ) de uma determinada entidade(produto, processo, recurso ...)

    Exemplos: Tamanho do produto de software (ex: Nmero de Linhas de Tamanho do produto de software (ex: Nmero de Linhas decdigo)

    Nmero de defeitos encontrados por fase dedesenvolvimento

    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 aopropsito, conformidade do produto com a especificao)

  • Por que medir?6

    Se no sabemos onde estamos ...

    No conseguimos... ...Saber para onde queremos ir

    ...Saber o que faremos ...Saber o que faremos

    Saber o que temos, o que somos e onde estamos

  • Por que medir?7

    Para entender uma presso do momento Ex. Ganhar uma concorrncia

    Se no ficaram razes, como ser o Se no ficaram razes, como ser o

    prximo projeto?

    Saber o que fazer hoje e para onde caminhar

  • Por que medir software?8

    Obter vrios indicadores de desempenho (exemplos: produtividade, qualidade do cdigo etc.) consistentes

    Melhorar a capacidade de estimar projetos, estabelecendo uma base de dados para futuras estabelecendo uma base de dados para futuras estimativas

    Melhorar a capacidade de gerenciar projetos:

    estabelecendo oramento para projetos de software

    fornecendo meios de controlar os custos do projeto

    controlando o progresso do trabalho pela comparao do estimado com o realizado

  • Por que medir software?9

    Melhorar a comunicao com o cliente

    Permitir a comparao com as prticas do mercado

    Avaliar o impacto da introduo de novas tecnologias tecnologias

    Minimizar o prazo de desenvolvimento

    Medir e quantificar a qualidade do software como produto

    Melhoria do processo

  • Por que medir software?10

    Avaliar a produtividade dos elementos envolvidos(equipe) no desenvolvimento de sistemas

    Avaliar os benefcios derivados de novos mtodos e Avaliar os benefcios derivados de novos mtodos eferramentas da engenharia de software paradesenvolver software

    Avaliar a produtividade dos elementos envolvidos(equipe) no desenvolvimento de sistemas

  • Caractersticas desejveis para mtricas11

    Analisvel Facilmente calculada, entendida e testada

    Vlida As medidas devem verificar o modelo funcional As medidas devem verificar o modelo funcional

    Robusta As medidas no devem ser sensveis a alteraes queno afetam os atributos

    Simples Deve-se obter medidas de fcil interpretao

  • Caractersticas desejveis para mtricas12

    Prescritiva A mtrica deve til para orientar a gesto dos projetos dedesenvolvimento

    Passvel de estudos estatsticos Passvel de estudos estatsticos

    Expressa em alguma unidade

    Passvel de automao

    Repetvel e independente do observador

    Sugere uma estratgia de melhoria

  • Em resumo...13

    Uma mtrica deve ser: Vlida: quantifica o que queremos medir

    Confivel: produz os mesmos resultados dadas asmesmas condies

    Prtica: barata, fcil de computar e fcil deinterpretar

    Dois contextos para medio de software Processo: ex. produtividade

    Produto: ex. qualidade

  • Tipos de Mtricas14

    Na engenharia, medir importante. Pode-seapresentar um n enorme de grandezas com estetipo de tratamento:

    Dimenses fsicas Dimenses fsicas

    Peso (ou massa)

    Temperatura

    Tenses

    Corrente eltrica etc..

  • Tipos de Mtricas15

    Na informtica, alguns parmetros so quantificadospara expressar as potencialidades de determinadasmquinas, como:

    A capacidade de um processador para executar um A capacidade de um processador para executar umcerto no de instrues por segundo (MIPS)

    A capacidade de armazenagem (MB)

    A freqncia do relgio do processador (MHz) etc..

  • Tipos de Mtricas16

    As mtricas de software podem ser classificadas emduas categorias principais:

    Mtricas Diretas

    Medida realizada em termos de atributos observados (usualmentedeterminada pela contagem)determinada pela contagem)

    Ex.: custo, esforo, n de linhas de cdigo (LOC), tamanho dememria ocupado, velocidade de execuo, no de errosregistrados num dado perodo de tempo etc..

    Mtricas Indiretas Medidas obtidas a partir de outras mtricas

    Ex.: permitem quantificar aspectos como funcionalidade,complexidade, eficincia, manutenibilidade etc. que so bastantedifceis a quantificar

  • Tipos de Mtricas17

    As mtricas de software tambm podem ser organizadasem outras classes, como:

    Mtricas Orientadas a Tamanho So medidas diretas do tamanho dos artefatos de softwareassociados ao processo por meio do qual o software associados ao processo por meio do qual o software desenvolvido.

    Ex.: esforo, custo, no. KLOC, no. pginas de documentao, no.Erros

    Mtricas Orientadas Funo Baseadas em medidas indiretas do software e no processo utilizadopara obt-lo, onde so considerados os aspectos como afuncionalidade e a utilidade do programa como pontos de funo(function points) e pontos de particularidade (feature points)

  • Tipos de Mtricas18

    Mtricas de Produtividade

    Baseadas na sada do processo de desenvolvimento com o objetivode avali-lo

    Ex.: n de casos de uso/iterao

    Mtricas de Qualidade Mtricas de Qualidade

    Indicam o nvel de resposta do software s exigncias explcitas eimplcitas do cliente (conformidade/adequao do software)

    Ex.: erros/fase

    Mtricas Tcnicas

    Concentram-se nas caractersticas do software e no no processopor meio do qual o software foi desenvolvido

    Ex.: complexidade lgica e grau de manutenibilidade

  • Tipos de Mtricas19

    Mtricas Orientadas s Pessoas

    Indicam a forma como as pessoas desenvolvem os sistemas decomputador e tambm medidas da percepo humana sobre aeficincia de ferramentas e mtodos de desenvolvimento

  • Possveis problemas com mtricas20

    Ex: Comparar a produtividade de engenheiros em termos delinha 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 deprogramao?

    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?

  • Teoria da Medio21

    Teoria sobre mtricas pode ajudar a resolver estes problemas

    Relaes empricas

    Medida

    Medio

    Escala

  • Relaes Empricas22

    Ajudam a observar as relaes do tipoverdadeiro/falso entre entidades do mundo real

    Ex. Relaes empricas entre o atributo altura daspessoaspessoas

    Binria: O Super-homem mais alto do que papai Noel

    Unria: O Super-homem alto

    Ternria: O Super-homem mais alto do que papaiNoel e mame Noel

  • Medida23

    Medida uma funo de mapeamento

    Super-homem

    Papai Noel

    2.10m

    Papai Noel

    Mame Noel

    1.65m

    1.50m

    Atributos do mundoreal (domnio)

    Um smbolo em um conjunto com relaes

    matmaticasconhecidas

  • Medio24

    a atribuio de uma medida (atravs de umsmbolo) a um atributo do mundo real

    Propsito: manipular smbolos na faixa =>determinar concluses sobre os atributos do domniodeterminar 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 alturaconsiderando pessoas caladas?

  • Escala25

    Representa os smbolos na faixa de uma medidamais as manipulaes permitidas

    Ex. de manipulaes:Mapeamento: transformar smbolos em um conjunto emMapeamento: transformar smbolos em um conjunto emoutros smbolos em outro conjunto. {verdadeiro, falso} {1, 0}

  • Papis da Medio26

    Segundo Humphrey, so quatro os principais papis de Medies de Software:

    EntenderEntender ControlarControlar

    Processos, Processos, Produtos e Produtos e Servios de Servios de SoftwareSoftware

    EntenderEntender

    AvaliarAvaliar PreverPrever

    ControlarControlar

  • Papis da Medio27

    Entender

    Mtricas ajudam a entender o comportamento e funcionamento deprocessos, produtos e servios de software

    Avaliar

    Mtricas podem ser utilizadas para tomar decises e determinar o Mtricas podem ser utilizadas para tomar decises e determinar oestabelecimento de padres, metas e critrios de aceitao

    Controlar

    Mtricas podem ser utilizadas para controlar processos, produtos eservios de software

    Prever

    Mtricas podem ser utilizadas para prever valores de atributos

  • Abordagem GQM:(Goal/Question/Metric - metas/perguntas/mtricas)

    28

    Excelente tcnica para seleccionar as mtricasapropriadas

    GQM funciona do seguinte modo:

    Metas (Goal) - Selecionar e identificar objetivos em termosquantitativos

    Questes (Question) - Para cada objetivo encontrado, definir um conjunto de questes que verifica se o este foi atingido

    Mtricas (Metric) - Identificar a mtrica que permite responder acada questo

  • Exemplo do uso de GQM29

    Objetivo 1

    Propsito: Melhorar

    Questo: preciso

    Objeto: estimativas de projeto

    Ponto de vista: analisado pelo ponto de vista dos gerentes de projeto

    Questo 1.1Questo 1.1Qual a preciso das estimativas de cronograma do projeto?

    Mtrica 1.1a)Preciso Total de Cronograma = tempo real de todo o projeto/tempo estimado do projeto

    Mtrica 1.1b)Preciso Cronograma por atividade = tempo real por atividade/tempo estimado por atividade

    Questo 1.2Qual a preciso das estimativas de esforo do projeto?

    Mtrica 1.2a)Preciso Total do Esforo = esforo real de todo o projeto/esforo estimado para o projeto

    Mtrica 1.2b)Preciso esforo por atividade = esforo real por atividade/esforo estimado por atividade

  • Selecionando Objetivos30

    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 paraviabilizar objetivo pois existe um prazo!!!

    Estudos indicam que objetivos muito complexos e delongo prazo podem causar impacto na motivao

    Objetivos menores, a curto prazo, permitem que as pessoasvisualizem o progresso e alcancem sucessos

    Com o tempo e com a maturidade da organizao, osobjetivos devem se tornar mais complexos e maisdesafiadores

  • Selecionando Mtricas31

    Seja realista e prtico

    Considere o processo e o ambiente de desenvolvimentoatual No seleciona mtricas em que os dados sejam difceis de serem No seleciona mtricas em que os dados sejam difceis de seremcoletados na sua realidade

    Comece com o que for possvel

    A equipe no seve ser muito impactada

    Utilize a abordagem incremental Com o tempo, com o benefcios, mais dados estaro disponveis...

  • Selecionando Mtricas32

    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 doProgresso

    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

  • O Processo de Medio33

    um processo cclico que envolve:

    PlanejarImplementar as decises

    Planejar

    Medir

    Analisar os dados

    Tomar decises

    as decises

  • Princpios de um processo de medio34

    Um processo de medio deve:

    Fornecer uma base para melhoria contnua do processo

    Quantificar a qualidade e produtividadeQuantificar a qualidade e produtividade

    Estar integrado com o ciclo de vida de desenvolvimento

    Medir o impacto de vrios mtodos, ferramentas, etcnicas de melhorias

  • Princpios de um processo de medio35

    Medies devem ser usadas para medir processos, nopessoas

    O processo de medio deve ter objetivos claros e bem-definidos

    O processo de medio deve ser fortemente acoplado com o O processo de medio deve ser fortemente acoplado com oprocesso de gerncia da qualidade e integrado dentro deplanos e oramentos

    O processo de coleta de dados deve ser simples, eferramentas automticas para extrao de dados devem serusadas

    O processo de medio contnuo e sujeito a melhoria

  • Caractersticas de um processo de medio36

    Escolha um conjunto adequado de mtricas

    Relacione as mtricas ao processo de tomada dedeciso (suportado pela alta administrao)

    Avalie processos e no pessoas (explique os objetivos damedio)

    Avalie processos e no pessoas (explique os objetivos damedio)

    No use as mtricas para punir

    Envolva vrias pessoas na seleo e formulao dasmtricas

    Estabelea alta prioridade (recursos, ferramentas, etc.)

    Integre o programa ao desenvolvimento de software

  • Caractersticas de um processo de medio37

    Alinhe aos objetivos de negcio

    Padronize e documente

    Compartilhe as mtricas obtidas Compartilhe as mtricas obtidas

    Institucionalize como parte da cultura da organizao

    Integre com o programa de melhorias (ilustre oprogresso e as melhorias obtidos a partir doprograma)

    Oferea planos de ao

  • Plano de Mtricas38

    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 analisadascomo 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

  • Especificando as Medies39

    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

  • Especificando as Medies40

    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 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

  • Especificando as Medies41

    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: 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!!!

  • Aps todo o planejamento42

    Executar as atividades com base no planejamentorealizado

    Tomar aes com base nos resultados Ajustar o processo com melhorias a partir dos resultadosde sua execuo

    Armazenar os resultados Tanto os dados, como os resultados, as aes tomadas, tudoque for relevante

    Toda informao que contextualize a mtrica ou que forneaalguma informao adicional

  • Resumo43

    As atividades de medio devem ser guiadas porobjetivos

    Plano de Mtricas detalha como criar programas demedio para atender a objetivos tcnicosmedio para atender a objetivos tcnicosespecficos

    Tendncias recentes: evoluo de mtricas oumodelos especficos para amplos programasorganizacionais de mtricas

  • Principais Barreiras44

    Falta de comprometimento da alta gerncia

    Medir custa caro

    Os maiores benefcios vm a longo prazo

    M utilizao das mtricas 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!!

  • Mas podemos contornar...45

    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

  • Mas podemos contornar...46

    Incentivar a equipe de desenvolvimento a fazer usodas mtricas

    Envolvimento de todos os impactados

    Estabelecer as expectativas Estabelecer as expectativas

    Educao e Treinamento

    Ganhar Confiana

    Adotar uma Abordagem Evolucionria

    Compreender que a Adoo leva Tempo