Engenharia de Software
Métricas de Software
Má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 medida
Correlaciona 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 primitivas
De processo: custo e esforço.
De produto: linhas de código, velocidade de execução.
Indiretas ou derivadas
Funcionalidade, complexidade, eficiência etc.
Característica da métrica
Internas
dizem respeito aos atributos internos ao software tais como
manutenibilidade.
Externas
dizem respeito ao atributos externos, vistos pelos usuários finais
Processo de medição
Escolhas as medições a serem feitas
Selecione os componentes a serem avaliados
Meç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ódigo
Contrové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
P
r
o
je
toE
s
fo
r
ç
o $
K
L
O
CD
O
CE
r
r
o
sP
e
s
s
o
a
s
a
p
ó
s1 /m
e
s
(x
1
0
0
)
a
n
o
1
3
0
1
7
0
1
3
,7
3
0
0
2
9
3
2
5
0
5
4
0
3
1
,4 1
3
0
0
9
2
9
3
3
5
3
3
0
2
0
,6 2
0
0
0
6
0
6
Produtividade=KLOC/(Pessoas/mes)
Q
u
a
l
i
d
a
d
e
=
D
e
f
e
i
t
o
s
/
K
L
O
C
C
u
s
t
o
=
$
/
K
L
O
C
Comparação
P
r
o
je
to
P
r
o
d
u
tiv
id
a
d
e Q
u
a
lid
a
d
e
C
u
sto
1
4
,5
7
2
,1
2
K
L
O
C
/P
Me
r
r
o
s/K
L
O
C
1
2
,4
1
$
/K
L
O
C
2
3
,4
5
2
,9
3
K
L
O
C
/P
Me
r
r
o
s/K
L
O
C
1
7
,2
0
$
/K
L
O
C
3
3
,4
3
2
,9
1
K
L
O
C
/P
Me
r
r
o
s/K
L
O
C
1
6
,0
2
$
/K
L
O
C
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
F
u
n
çõ
es
P
eso
s(sim
p
les,
m
éd
io
,co
m
p
lex
o
)
E
n
tra
d
a
s
_
_
x3 _
_
x4 _
_
x6
S
a
íd
a
s
_
_
x4 _
_
x5 _
_
x7
C
o
n
su
lta
s
_
_
x3 _
_
x4 _
_
x6
A
rq
u
iv
o
s
_
_
x7 _
_
x1
0_
_
x1
5
In
terfa
ces
_
_
x5 _
_
x7 _
_
x1
0
T
o
ta
lP
Fn
ã
oa
ju
sta
d
o(P
F
)
T
o
ta
is
Pontos por Função/indireta
P
r
o
je
toE
s
fo
r
ç
o $
(x
1
0
0
)
P
F D
O
CE
r
r
o
sP
e
s
s
o
a
s
a
p
ó
s1 /m
e
s
a
n
o
1
3
0
1
7
0
5
0
3
0
0
2
9
3
2
5
0
5
4
0
1
0
0
1
3
0
0
9
2
9
3
3
5
3
3
0
7
0
2
0
0
0
6
0
6
Produtividade=PF/(Pessoas/m
es)
Q
u
a
l
i
d
a
d
e
=
D
e
f
e
i
t
o
s
/
P
F
C
u
s
t
o
=
$
/
P
F
Comparação
P
r
o
je
to
P
r
o
d
u
tiv
id
a
d
e
Q
u
a
lid
a
d
e
C
u
sto
1
1
6
,7P
F
/P
M 0
,5
8e
r
r
o
s/P
F
3
4
0$
/P
F
2
1
1
,1P
F
/P
M 0
,0
5e
r
r
o
s/P
F
5
4$
/P
F
3
1
1
,6P
F
/P
M 0
,8
5e
r
r
o
s/P
F
4
7
1$
/P
F
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
Vantagens
independente da linguagem.
considera a tecnologia como fator de
tamanho do sistema
influência no
Desvantagens
aplicado 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 LOC
LinguagensdeProgram
ação
LOC/PF
Assem
bly
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 UUCW
Considera-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 gerenciamento
progresso: trabalho e progresso
despesa: orçamento e despesas
rotatividade: alocação e rotatividade da equipe
Indicadores de qualidade
establidade: fluxo de mudanças e estabilidade
modularidade: fragmentação e modularidade
adaptabilidade: retrabalho e adaptabilidade
maturidade: 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 particular
Nú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 & Metric
http://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]
Download

MetricasDeSoftware - impact