Você está na página 1de 23

Indicadores e métricas

no desenvolvimento de
sistemas
PÓS GRADUAÇÃO EM GESTÃO DE TECNOLOGIA DA INFORMAÇÃO
GDST1 - GESTÃO DO DESENVOLVIMENTO DE SISTEMAS
Carlos Magno da Silva Cavalcante
Edmundo Antonio Dotta Junior
Dezembro - 2019
Indicadores e métricas no desenvolvimento de sistemas

“...tudo métrica, e rima e nunca dor”


(Caetano Veloso, in: O Quereres)

“Toda métrica termina em um indicador”


e vice-versa, ou quase...

(Autor que prefere permanecer desconhecido)


Pela infâmia do trocadilho e a imperícia na métrica (a poética)
Indicadores e métricas no desenvolvimento de sistemas

“...alguns membros da comunidade de software


continuam a argumentar que o software é
“incomensurável” ou que tentativas de medição
devem ser adiadas até entendermos melhor o
software e os atributos a serem usados para
descrevê-lo. Isso é um erro” (Presman, 2016) – grifo nosso
Indicadores e métricas no desenvolvimento de sistemas

“Cada pedaço ou parte do todo da natureza é


sempre uma mera aproximação da verdade
completa, ou da verdade completa até onde a
conhecemos” (Richard P. Feynman, 1963)
Indicadores e métricas no desenvolvimento de sistemas

Definições
▪ Métrica: medida quantitativa do grau com o qual um sistema,
componente ou processo possui determinado atributo (IEEE Standard
Glossary of Software Engineering Terminology)

▪ Indicador: uma métrica ou combinação de métricas que


fornece(m) informações sobre o processo de software, em um
projeto de software ou no próprio produto (Pressman, 2016)
Indicadores e métricas no desenvolvimento de sistemas

Princípios da medição (Lethbridge, 2003 apud Pressman, 2016)

▪ Uma métrica deve ter as propriedades matemáticas


desejadas
▪ Quando uma métrica representa uma característica do
software que aumenta na ocorrência de peculiaridades
positivas ou diminui na ocorrência de peculiaridades
indesejadas, o valor da métrica deve aumentar ou diminuir
da mesma maneira
▪ Cada métrica deve ser validada empiricamente em uma
ampla variedade de contextos antes de ser publicada ou
usada para tomada de decisões
Indicadores e métricas no desenvolvimento de sistemas

Exemplo:

Defina-se como indicador de riqueza de uma


pessoa a extensão de terras de sua
propriedade.
Indicadores e métricas no desenvolvimento de sistemas

Contexto 1: reportagem

Fulano de tal tem propriedades com área equivalente à


de quase 15 campos de futebol.
Indicadores e métricas no desenvolvimento de sistemas

Contexto 2: Receita federal

Fulano de tal possui:


Gleba de terras rurais, denominada XXXX, São Gonçalo
do Sapucaí (MG). Área de 15,9730 ha. Acesso pela
rodovia Fernão Dias, no trevo da entrada de São Gonçalo
do Sapucaí. Matrícula XXXX do Cartório de Registro de
Imóveis de São Gonçalo do Sapucaí (MG).

1 campo de futebol ≈ 1,08 ha


Indicadores e métricas no desenvolvimento de sistemas

Diretrizes para a medição (Roche, 1994 apud Pressman, 2016)

▪ Sempre que possível, a coleta e análise de dados deve ser


automática
▪ Devem ser aplicadas técnicas estatísticas válidas para
estabelecer relações entre atributos internos de produto e
características externas de qualidade
▪ Diretrizes e recomendações interpretativas devem ser
estabelecidas para cada métrica
Indicadores e métricas no desenvolvimento de sistemas

Produto
Medidas
Coleta de 9
Processo
dados
1 2 51
7
Métricas
𝟏 + 𝟕 + 𝟓𝟏 + 𝟗𝟐
Cálculo de 𝟒
Projeto Métricas

Indicadores
Avaliação
das
Métricas

Fonte: baseado em [PRESSMAN, 2010]


Indicadores e métricas no desenvolvimento de sistemas

Medição de software orientada a metas (Basili e Weiss,


1984 apud Pressman, 2016)

Propõe o paradigma meta/questão/métrica (GQM em


inglês)
▪ Estabelecer uma meta de medição explícita específica
para a atividade do processo ou característica de produto
que deve ser avaliada
▪ Definir um conjunto de questões que devem ser
respondidas para atingir o objetivo
▪ Identificar métricas bem formuladas que ajudem a
responder a essas questões
Indicadores e métricas no desenvolvimento de sistemas

Métricas de Sistemas de Informação


Exemplos:

• Métrica de Processo: nº erros Software


• Métrica de Projeto: Produtividade

Métricas do
Produto Métricas de Métricas de
(Eng. Processos Projeto
Software)

Código CMMI PMBOK


Requisitos Arquitetura
Fonte
Teste Manutenção
/MPS.BR /PRINCE2

Qualidade
Classe
Objeto (CK...)
WebApps (Eng.
Software)
Fonte: baseado em [PRESSMAN, 2010]
Indicadores e métricas no desenvolvimento de sistemas

Métricas para o modelo de requisitos


Métricas baseadas em pontos de função (Pressman, 2016)
Por meio de dados históricos, a métrica FP pode ser
empregada para:
(1) estimar o custo ou trabalho necessário para projetar,
codificar e testar o software;
(2) prever o número de erros que serão encontrados durante
o teste;
(3) prever o número de componentes e/ou o número de
linhas projetadas de código-fonte no sistema
implementado.
Indicadores e métricas no desenvolvimento de sistemas

Métricas para o modelo de requisitos


Métricas para qualidade de especificação (David et al, 1993 apud
Pressman, 2016)

Propõe uma lista de características que podem ser


usadas para avaliar a qualidade do modelo de requisitos
e as especificações de requisitos correspondentes:
peculiaridade (ausência de ambiguidade), totalidade,
exatidão, entendimento, repetibilidade, consistência
interna e externa, disponibilidade, brevidade,
rastreabilidade, modificação, precisão e reutilização.
Indicadores e métricas no desenvolvimento de sistemas

Métricas de Projeto de Arquitetura


Tamanho = n + a

onde n é o número de nós e a é o número de arcos

(FENTON, 1991 apud (PRESSMAN; MAXIM, 2016)


Indicadores e métricas no desenvolvimento de sistemas

Métricas para o modelo de projeto


Índice de qualidade de projeto de estrutura - DSQI
(Charette, 1989 apud Pressman, 2016)
Composição:
S1 = número total de módulos definidos na arquitetura do programa
S2 = número de módulos cuja função correta depende da origem dos dados de
entrada ou que produzem dados para ser usados em outro lugar
S3 = número de módulos cuja função correta depende de processamento
anterior
S4 = número de itens de banco de dados (inclui objetos de dados e todos os
atributos que definem objetos)
S5 = número total de itens únicos de banco de dados
S6 = número de segmentos de banco de dados (diferentes registros ou objetos
individuais)
S7 = número de módulos com uma única entrada e saída (processamento de
exceção não é considerado saída múltipla)
Indicadores e métricas no desenvolvimento de sistemas

Métricas para o modelo de projeto


Índice de qualidade de projeto de estrutura - DSQI
(Charette, 1989 apud Pressman, 2016)

Composição – valores intermediários:


Estrutura de programa: D1: se o projeto da arquitetura foi desenvolvido por
meio de um método distinto (por exemplo, projeto orientado a fluxo de dados
ou projeto orientado a objetos), então D1 = 1; caso contrário, D1 = 0
𝑆
Independência de módulo: 𝐷2 = 1 − 𝑆2
1
𝑆
Módulos não dependentes de processamento anterior: 𝐷3 = 1 − 𝑆3
1
𝑆
Tamanho da base de dados: 𝐷4 = 1 − 𝑆5
4
𝑆
Divisão da base de dados: 𝐷5 = 1 − 𝑆6
4
𝑆
Característica de entrada/saída do módulo: 𝐷6 = 1 − 𝑆7
1
Indicadores e métricas no desenvolvimento de sistemas

Métricas para o modelo de projeto


Índice de qualidade de projeto de estrutura - DSQI
(Charette, 1989 apud Pressman, 2016)

Cálculo:
Peso dos valores intermediários: Deve-se determinar para cada Di um peso wi
(0 ≤ 𝑤𝑖 ≤ 1), de modo que σ 𝑤𝑖 = 1

𝐷𝑆𝑄𝐼 = ෍ 𝑤𝑖 ∙ 𝐷𝑖
𝑖=1
Indicadores e métricas no desenvolvimento de sistemas

Métricas para projeto orientado a objetos


Métricas CK orientadas a classes (Chidamber e Kemerer, 1994 apud
Pressman, 2016)

Métodos ponderados por classe (WMC):


Sejam n métodos de complexidade c1, c2, ... , cn definidos para uma
classe C.
A métrica de complexidade escolhida é normalizada de modo que
𝑛

𝑊𝑀𝐶 = ෍ 𝑐𝑖 = 1
𝑖=1
Indicadores e métricas no desenvolvimento de sistemas

Métricas para projeto orientado a objetos


Métricas MOOD orientadas a classes (Harrison, Counsell e Nithi, 1998
apud Pressman, 2016)

Fator de herança de método (MIF):


σ 𝑀𝑖 (𝐶𝑖 )
𝑀𝐼𝐹 = σ 𝑀𝑎 (𝐶𝑖 )
= 1, 𝑀𝑎 𝐶𝑖 = 𝑀𝑑 𝐶𝑖 + 𝑀𝑖 𝐶𝑖 com 𝑖 = 1 a 𝑇𝐶 .

Onde:
𝑇𝐶= total de classes na arquitetura
𝑀𝑎 (𝐶𝑖 ) = número de métodos que podem ser invocados em associação com 𝐶𝑖
𝑀𝑑 (𝐶𝑖 ) = número de métodos declarados na classe 𝐶𝑖
𝑀𝑖 (𝐶𝑖 ) = número de métodos herdados (e não cancelados) em 𝐶𝑖
Indicadores e métricas no desenvolvimento de sistemas

Perguntas?
Indicadores e métricas no desenvolvimento de sistemas

Obrigado!!

Você também pode gostar