Engenharia de Software
Métricas de SoftwareMárcio Campos - [email protected]
Motivação
Métrica é fundamental para qualquer disciplina de engenharia.
A métrica possibilita uma avaliação objetiva e matemática para a avaliação de software.
Métricas podem ser de controle ou preditivas.
Medição, Métrica e Indicador
Medição.É o ato de se determinar a medida.
Métrica ou medidaCorrelaciona duas medidas de alguma forma ou com algum padrão.Prove uma indicação quantitativa da extensão, volume, dimensão,
capacidade ou tamanho de algum atributo de um produto ou de um processo.
Indicador.É uma combinação de métrica ou de medições que provê algum
conhecimento sobre o processo, o produto ou sobre o projeto.
Aplicação
Métrica podem ser aplicadas tanto para a avaliação do processo ou projeto quanto para a avaliação do produto.
Métricas podem ser aplicadas para estimativas, produtividade, controle de qualidade.
Possibilitam a criação de modelos em que são estabelecidos critérios para avaliação da qualidade.
Tipos de Medição
Diretas ou primitivasDe processo: custo e esforço.De produto: linhas de código, velocidade de execução.
Indiretas ou derivadasFuncionalidade, complexidade, eficiência etc.
Característica da métrica
Internasdizem respeito aos atributos internos ao software tais como
manutenibilidade.
Externasdizem respeito ao atributos externos, vistos pelos usuários finais
Processo de medição
Escolhas as medições a serem feitasSelecione os componentes a serem avaliadosMeça estes componentes.Identifique as características anômalas.Analise os componentes anômalos.
Métricas de Software
Métricas de produto
Linhas de código
Forma direta de se medir códigoControvérsias
Vantagem: facilidade de medição.Desvantagens:
Dependentes da linguagem de programação.Penaliza programas bem estruturados e projetados.Para o uso de estimativas deve-se entrar em um nível de detalhe
muito grande.O que é uma linha de código?
Lines of Code (LOC)/Direta
Projeto Esforço $
(x100)
KLOC DOC Errosapós 1
ano
Pessoas/ mes
1 30 170 13,7 300 29 3
2 50 540 31,4 1300 92 9
3 35 330 20,6 2000 60 6
Produtividade = KLOC/(Pessoas/mes)Qualidade = Defeitos/KLOC Custo = $/KLOC
Comparação
Projeto Produtividade Qualidade Custo
1 4,57KLOC/PM
2,12erros/KLOC
12,41$/KLOC
2 3,45KLOC/PM
2,93erros/KLOC
17,20$/KLOC
3 3,43KLOC/PM
2,91erros/KLOC
16,02$/KLOC
Análise de Pontos por Função/indireta
Concentra-se na funcionalidade ou utilidade dos sistemas.
Baseados em:Entradas do usuário (telas).Saídas do usuário (telas e relatórios)Consultas (telas).Arquivos.Arquivos de Interface.
Pontos por Função Não Ajustados, Cálculo
Funções Pesos(simples,médio, complexo)
Totais
Entradas __x 3 __x 4 __x 6
Saídas __x 4 __x 5 __x 7
Consultas __x 3 __x 4 __x 6
Arquivos __x 7 __x 10 __x 15
Interfaces __x 5 __x 7 __x 10
Total PF não ajustado (PF)
Pontos por Função/indireta
Projeto Esforço $
(x100)
PF DOC Errosapós 1
ano
Pessoas/ mes
1 30 170 50 300 29 3
2 50 540 100 1300 92 9
3 35 330 70 2000 60 6
Produtividade = PF/(Pessoas/mes)Qualidade = Defeitos/PF Custo = $/PF
ComparaçãoProjeto Produtividade Qualidade Custo
1 16,7 PF/PM 0,58 erros/PF 340 $/PF
2 11,1 PF/PM 0,05 erros/PF 54 $/PF
3 11,6 PF/PM 0,85 erros/PF 471 $/PF
Ajuste dos Pontos de Função São considerados 14 itens (graus de
influência), dentre os quais: Necessidade de backup, Comunicação de dados Processamento distribuído, Desempenho crítico. Entrada de dado on-line, Reutilização de código.
São avaliados atribuindo-se um valor de 0 a 5 a cada um dos ítens (ajuste)
Ajuste dos Pontos de Função (II) PFA = PF x (0,65 + (0,01 x ajuste)) Os graus de influência afetam em +/- 35% do
tamanho do sistema. Produtividade = PF/PM. Qualidade = PF rejeitados/PF aceitos. Custo = $ / PF.
Características
Vantagensindependente da linguagem.considera a tecnologia como fator de influência no
tamanho do sistema
Desvantagensaplicado somente a sistemas de informação.não considera sistemas multimídia, hipertexto,
orientado a objeto.só a partir de uma definição completa do sistema
que se tem a real idéia do seu tamanho
PF e LOCLinguagens de Programação LOC/PF
Assembly 320
Visual Basic 32
SQL 12
Pascal 90
ADA 70
OO 30
L4G 20
Análise de Pontos por Caso de Uso
Baseia-se na medição dos casos de uso de uma aplicação.Consiste na medição de:
atores (Unadjusted actor weight): baseado no tipo de ator.casos de uso (unadjusted use case weight): baseado no número
de transações de um caso de uso.Unadjusted use case points = UAW e UUCWConsidera-se dois tipos de ajustes: técnicos e de ambiente
technical complexity factor (13 fatores) = 0.6 + (0.1 x Tfactor)environmental complexity factor (8fatores) = 1.4 + (-0.03 x
Efactor)use case points = UUCP x TCF x ECF
Análise de Pontos por caso de uso
Modelo geral da Análise de Pontos por Caso de Uso
Outras métricas de produto
Correção.Defeitos/KLOC
Manutenibilidade.Tempo médio de mudança.
Usabilidade.Habilidades intelectuais e operacionais necessárias.Tempo necessário para se tornar eficiente.Aumento de produtividade associado.Avaliação subjetiva.
Métricas de Software
Métricas de projeto
Métricas de projetos interativos
Indicadores de gerenciamentoprogresso: trabalho e progressodespesa: orçamento e despesasrotatividade: alocação e rotatividade da equipe
Indicadores de qualidadeestablidade: fluxo de mudanças e estabilidademodularidade: fragmentação e modularidadeadaptabilidade: retrabalho e adaptabilidadematuridade: tempo médio entre falhas e maturidade
Métricas de Software
Métricas de Processo
Métricas de Processo
Tempo gasto para um processo em particular ser concluído.
Recursos requeridos para um processo particularNúmero de ocorrências de um evento em
particular.
Métricas de processo
Estabelecendo uma referência.Um conjunto de métricas.Considerando...
Relativa acurácia das informações.Obtida de vários projetos.As métricas devem ser consistentes.As aplicações devem ser similares (mesmo domínio).
Métricas de Software
Goal, Question & Metrichttp://www.gqm.nl/
https://www.goldpractices.com/practices/gqm/
O modelo
https://www.goldpractices.com/practices/gqm/
https://www.goldpractices.com/practices/gqm/
Sumário
Métricas são importantes para a construção de sólidos princípios pautados por modelos confiáveis e decisões isentas.
Pode-se medir o produto, o processo o projeto.Deve-se estabelecer modelos de qualidade pautados em
indicadores consistentes.Deve-se praticar a medição a partir de modelos e de processos de
medição estabelecidos como o GQM e ami.
Métricas de Software.
Dúvidas?Márcio Campos - [email protected]