32
Engenharia de Software Métricas de Software Márcio Campos - [email protected]

Engenharia de Software Métricas de Software Márcio Campos - [email protected]

Embed Size (px)

Citation preview

Page 1: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

Engenharia de Software

Métricas de SoftwareMárcio Campos - [email protected]

Page 2: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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.

Page 3: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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.

Page 4: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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.

Page 5: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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.

Page 6: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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

Page 7: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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.

Page 8: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

Métricas de Software

Métricas de produto

Page 9: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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?

Page 10: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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

Page 11: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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

Page 12: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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.

Page 13: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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)

Page 14: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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

Page 15: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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

Page 16: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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)

Page 17: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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.

Page 18: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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

Page 19: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

PF e LOCLinguagens de Programação LOC/PF

Assembly 320

Visual Basic 32

SQL 12

Pascal 90

ADA 70

OO 30

L4G 20

Page 20: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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

Page 21: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

Análise de Pontos por caso de uso

Modelo geral da Análise de Pontos por Caso de Uso

Page 22: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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.

Page 23: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

Métricas de Software

Métricas de projeto

Page 24: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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

Page 25: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

Métricas de Software

Métricas de Processo

Page 26: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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.

Page 27: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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

Page 28: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

Métricas de Software

Goal, Question & Metrichttp://www.gqm.nl/

https://www.goldpractices.com/practices/gqm/

Page 29: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

O modelo

https://www.goldpractices.com/practices/gqm/

Page 30: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

https://www.goldpractices.com/practices/gqm/

Page 31: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

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.

Page 32: Engenharia de Software Métricas de Software Márcio Campos - camposmf@gmail.com

Métricas de Software.

Dúvidas?Márcio Campos - [email protected]