Buscar

ESI MetricasSoftware

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Métrica de Software
Prof. Wilson M Yonezawa
UNESP – FC – Bauru
Depto. Computação
yonezawa@fc.unesp.br
Engenharia Software I
Sobre a medição
“Você tem algum conhecimento sobre o que você fala quando
pode medir e expressar isso em números, mas quando não
pode medir, quando não pode expressar isso em números,
seu conhecimento é fraco e insatisfatório: pode ser o
princípio do conhecimento, mas você mal avançou em seus
pensamentos para o estágio de uma ciência”
Lord Kelvin
Sobre a medição
“Medição é o processo pelo qual números ou símbolos são
associados aos atributos de entidades do mundo real de
modo que os determinem de acordo com regras claramente
definidas”
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Medidas, métricas e indicadores
• Medida fornece uma indicação quantitativa da extensão,
quantidade, dimensão, capacidade ou tamanho de algum atributo
de um produto ou processo
• Medição é o ato de determinar uma medida. Métrica é o ato de
determinar grau em que um sistema, componente ou processo
possui um determinado atributo
• Uma métrica de software relaciona as medidas individuais de algum
modo
• Um engenheiro de software coleta medidas e desenvolve métricas
de modo que indicadores sejam obtidos
• Um indicador é um métrica ou combinação de métricas que fornece
profundidade na visão do processo de software, projeto de
software ou produto em si
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Princípios de medição
• Atividades:
– Formulação: A derivação de medidas e métricas de
software adequadas para representação do software que
está sendo considerado
– Coleta: Mecanismo usado para acumular os dados
necessários para derivar as métricas formuladas
– Análise: Cálculo de métricas e aplicação das ferramentas
matemáticas
– Interpretação: Avaliação das métricas em um esforço
para ganhar profundidade na visão da qualidade de
representação
– Realimentação: Recomendações derivadas da
interpretação das métricas de produto transmitidas à
equipe de software
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Métricas - Características
• Uma métrica deve ter propriedades matemáticas
desejáveis?
• Quando uma métrica representa uma característica de
software que aumenta quando acontecimentos
positivos ocorrem ou diminui quando acontecimentos
indesejáveis são encontrados, o valor da métrica deve
aumentar ou diminuir do mesmo modo
• Cada métrica deve ser validada, empiricamente em
uma ampla variedade de contextos antes de ser
publicada ou usada para tomar decisões
Ana
Highlight
Ana
Highlight
Atributos de métrica de software 
efetivas
• Simples e computáveis
• Empíricas e intuitivamente persuasivas
• Consistentes e objetivas
• Consistentes no uso de unidades e dimensões
• Independentemente da linguagem de programação
Ana
Highlight
Para que serve a medição?
• A medição nos permite obter entendimento do
processo e projeto, dando-nos um mecanismo para
avaliação objetivo
• Medição pode ser aplicada ao processo de software
com o objetivo de melhorá-lo de forma contínua
• Pode ser usado ao longo de um projeto de software
para auxiliar na estimativa no controle de qualidade, na
avaliação de produtividade e no controle de projeto
• Pode ser usada pelos engenheiros de software para
ajudar a avaliar a qualidade dos produtos do trabalho e
a auxiliar na tomada de decisões táticas, à medida que
o projeto evolui
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Razões para medirmos
• Para caracterizar em um esforço a fim de obter
entendimento de “processos, produtos, recursos e
ambientes, e para estabelecer referências para
comparação futuras avaliações”
• Para avaliar “a fim de determinar o estado em relação aos
planos”
• Para prever pela “obtenção de entendimento de
relacionamentos entre processos e produtos e
construção de modelos desses relacionamentos”
• Para aperfeiçoar pela “identificação de bloqueios, causas
fundamentais, ineficiências e outras oportunidades para
melhorar a qualidade do produto e desempenho do
processo”
Medição é ferramenta de gestão
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Métricas de processo e de produto
• Métricas de processo:
– Coletadas no decorrer de todos os projetos durante longos
períodos
– Objetiva fornecer um conjunto de indicadores de processo
que leva ao aperfeiçoamento do processo de software
• Métricas de projeto
– Avaliam o estado de um projeto em andamento
– Acompanham os riscos potenciais
– Verificam áreas-problemas antes que se tornem “reais e
críticas”
– Ajudam o fluxo de trabalho ou tarefas
– Avaliam a capacidade da equipe de projeto de controlar a
qualidade dos produtos do trabalho de software
• Medidas coletadas e depois convertidas em métricas
• O aperfeiçoamento de qualquer processo depende de
capacidade de se medir atributos específicos e com essas
medidas desenvolver métricas significativas
• As métricas são baseadas nas saídas que são derivadas do
processo, como por exemplo: erros descobertos antes da
entrega do software, cumprimento do cronograma, etc
• Muitas vezes, o aperfeiçoamento do processo de software
deve começar no nível individual
• Métricas podem ser privadas ou públicas
Métricas de processo e de produto
Métricas de processo e de produto
Medição de software
• Dois modos de medidas: direta e indiretas
• Métrica de projeto podem ser consolidadas para
criar métricas de processo
• Métricas podem ser normalizadas
• Métricas:
– Orientadas a tamanho
– Orientadas à função
– Orientadas a objetos
– Orientadas a casos de uso
– De projeto de engenharia da Web
Ana
Highlight
Métricas orientadas a tamanho
• Consideram o tamanho do software que foi
produzido
• LOC (lines of code) é um valor de normalização
utilizado nas métricas orientada a tamanho
• LOC não são universalmente aceitos como o melhor
modo de medir o processo de desenvolvimento de
software
Ana
Highlight
Ana
Highlight
Ana
Highlight
Métricas orientadas a tamanho
Métricas orientadas à função
• Utilizam uma medida de funcionalidade entregue
pela aplicação como valor de normalização
• FP (Function Point) é a métrica mais amplamente
utilizada
• Cálculo dos pontos de função é baseado em
características do domínio de informação e
complexidade do software
Ana
Highlight
Ana
Highlight
Ana
Highlight
Métricas orientadas à função
Tabela Reconcilização de LOC e FP
Métricas orientadas a objetos
• Lorens e Kidd (1994) sugerem:
– Número de scripts de cenário
– Número de classes-chave
– Número de classes de apoio
– Número médio de classes de apoio por classe-chave
– Número de subsistemas
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Outras métricas
• Métricas orientadas a casos de uso
• Métricas de projeto de engenharia Web
Medicação de qualidade
• Correção
• Manutenibilidade
• Integridade
• Usabilidade
Integração de métricas no processo 
de software
• A maioria dos desenvolvedores não medem
• Problema cultural (por que precisamos fazer
isso??)
• É preciso medir para podermos determinar se
estamos melhorando ou não
• Medição torna o projeto mais gerenciável
Integração demétricas no processo 
de software
• Uma questão de referência para as métricas
– Os dados precisam ser razoavelmente precisos
– Dados devem ser coletados por tantos projetos quanto
possível
– Dados devem ser consistentes, uma linha de código
deve ser interpretada uniformemente ao longo de todos
os projetos para os quais os dados são coletados
– As aplicações devem ser análogas ao trabalho que
precisa ser estimado
Ana
Highlight
Ana
Highlight
Ana
Highlight
Ana
Highlight
Processo de coleta de métricas
Métricas para pequenas 
organizações
• “Torne simples”
• Medidas facilmente coletáveis:
– Tempo transcorrido entre o momento em que o pedido é
feito
– Esforço (pessoa-hora) para realizar a avaliação, Waval
– Tempo transcorrido desde o término da avaliação até a
atribuição da ordem de modificação ao pessoal, taval
– Esforço necessário para fazer a modificação, Wmodificação
– Tempo necessário para fazer a modificação, tmodificação
– Erros descobertos durante o trabalho para fazer a
modificação, Emodificação
– Defeitos descobertos depois que a modificação é entregue
ao cliente, Dmodificação
Métricas para pequenas 
organizações
• Quais as métricas derivadas de tais medidas?
• Ex: DRE = Emodificação / (Emodificação + Dmodificação)
Como estabelecer um programa de 
métrica de software?
1. Identifique suas metas de negócio
2. Identifique o que você deseja saber ou aprender
3. Identifique suas submetas
4. Identifique as entidades e atributos relacionados a suas submetas
5. Formalize suas metas de medição
6. Identifique questões quantificáveis e os indicadores correlacionados que
você pode usar para ajudá-lo a atingir suas metas de medição
7. Identifique os elementos de dados que você vai coletar para construir os
indicadores que ajudam a responder a suas perguntas
8. Defina as medidas a ser usadas e torne essas definições operacionais
9. Identifique as ações que você executará para implementar as medidas
10. Prepare um plano para implementar as medidas
Ana
Highlight
Ana
Highlight
Métricas de produtos
• Métricas para o modelo de análise:
– Funcionalidade entregue, tamanho do sistema e
qualidade da especificação
• Métricas para o modelo de projeto:
– Métrica arquitetural, métrica no nível de componente,
métricas de projeto de interface e métricas
especializadas em projeto OO
• Métricas para código-fonte:
– Métricas de Halstead, métricas de complexidade e
métricas de comprimento
• Métricas de teste:
– Métricas de cobertura de comando e desvio, métricas
relacionadas a defeito, métricas em processo
Métricas para modelo de análise
• Métricas baseadas em função (ex: FPA)
– Estimar o custo ou esforço necessário para projetar,
codificar e testar o software
– Prever o número de erros que vão ser encontrados
durante o teste
– Prever o número de componentes e/ou o número de
linhas de código projetadas no sistema implementado
Métricas baseadas em Função
• Pontos de função são derivados usando uma relação
empírica baseada em medidas de contagem (direta) do
domínio de informação do software e avaliação da
complexidade do software
• Valores do domínio:
– Número de entradas externas (EIs)
– Número de saídas externas (EOs)
– Número de consultas externas (EQs)
– Número de arquivos lógicos internos (ILFs)
– Número de arquivos de interface externa (EIFs)
FP = Contagem total x [0,65 + 0,01 x Σ (Fj)]
Métricas baseadas em Função
Métricas de qualidade de 
especificação
• Especificidade
• Completeza
• Correção
• Inteligibilidade
• Verificabilidade
• Consistência
• Atingibilidade
• Concisão
• Rastreabilidade
• Precisão
• Reusabilidade
• Nr = Nf + Nnf, onde:
– Nr = requisitos
– Nf = requisitos funcionais
– Nnf = requisitos não funcionais
• Q1 = Nui / Nr, onde:
– Q1 = Especificidade
– Nui = Requisitos para os quais
os revisores têm interpretações
idênticas
Métricas para o modelo de projeto
• Focalizam a arquitetura do programa e na
efetividade dos módulos ou componentes dentro da
arquitetura
• Card e Glass definem três medidas de complexidade
para um Projeto Arquitetural:
– Complexidade estrutural:
• S(i) = f2out(i) onde fout(i) é o fan-out do módulo i
– Complexidade de dados:
• D(i) = V(i) / [fout(i) + 1] onde V(i) é o número de variáveis de
entrada e saída passadas para o módulo i
– Complexidade de sistema:
C(i) = S(i) + D(i)
Métricas para o modelo de projeto
• Métricas morfológicas:
Métricas para o modelo de projeto
• Métricas morfológicas:
– S1 = Número total de módulos definidos na arquitetura do
programa
– S2 = Número de módulos cujo funcionamento correto
depende da fonte de entrada de dados ou que produz dados a
serem usado em outro lugar
– S3 = Número de módulos cujo funcionamento correto
depende do processamento anterior
– S4 = Número de itens na base de dados
– S5 = Número total de itens únicos na base de dados
– S6 = Número de segmentos da base de dados (registros ou
objetos individuais diferentes)
– S7 = Número de módulos com uma única entrada e saída
Métricas para o modelo de projeto
• Métricas morfológicas:
– DSQI (Design Structure Quality Index) da USAF
• DSQI = Σ wiDi onde:
• D1 = Estrutura do programa (D1 = 0 ou 1)
• D2 = Independência modular (D2 = 1 – (S2 / S1)
• D3 = Módulos não-dependentes de processamento anterior (D3 = 1 – (S3 / S1)
• D4 = Tamanho da base de dados (D4 = 1 – (S6 / S4)
• D5 = Compartimentalização da base de dados (D5 = 1 – (S6 / S4)
• D6 = Característica de entrada/saída do módulo (D6 = 1 – (S7 / S1)
Métricas de código-fonte
• A teoria de Halstead propôs as primeiras “leis” analíticas
para software de computador
• Halstead associou leis quantitativas ao desenvolvimento
de software de computador, usando um conjunto de
medidas primitivas que podem ser originadas após o
código ser gerado
• Medidas:
– n1 = Número de operadores distintos que aparece em um programa
– n2 = Número de operandos distintos que aparece em um programa
– N1 = Número total de ocorrências de operador
– N2 = Número total de ocorrências de operando
• Halstead mostra que o tamanho N de um programa e V o volume
podem ser estimado como:
– N = n1 log2 n1 + n2 log2 n2
– V = N log2 (n1 + n2)
– L = 2/n1 x n2 / N2
Métricas de manutenção
• IEEE Std. 982.1-1988, sugere um índice de maturidade
de software (SMI)
– SMI = [MT – (Fa + Fc + Fd)] / MT, onde:
• MT = número de módulos na versão corrente
• Fc = número de módulos na versão corrente que foram
modificados
• Fa = número de módulos na versão corrente que foram
adicionados
• Fd = número de módulos na versão anterior que foram
descartados na versão corrente

Outros materiais