Métricas
de Produtos
para Software
Medidas do Software
• A medição é o elemento chave de qualquer processo de
engenharia de software.
•Quem faz? Os engenheiros de software para ajudá-los a
construir softwares de alta qualidade.
• O processo é medido para melhorá-lo e o produto é medido para
aumentar sua qualidade, quantificar e administrar mais
efetivamente.
Medidas do Software
• O engenheiro de software coleta medidas e
desenvolve métricas a fim de obter indicadores para
ajustar a gerência de projeto e o processo de
desenvolvimento de software.
• Uma métrica de software é qualquer tipo de
medição que se refere a um sistema de software,
processo ou documentação relacionada.
• A métrica pode ser de controle (processo) ou
preditiva (produto).
Métricas - Motivos para se medir
um sistema
 Fornecer subsídios para determinar o esforço, os
recursos, a duração e os custos de
desenvolvimento
 Avaliar a produtividade do processo de
desenvolvimento adotado
 Formar uma base histórica para embasar
estimativas futuras
 Indicar a qualidade do produto
Tipos de Medidas
• Diretas
– Exemplo: comprimento de um parafuso;
• Indiretas
– Exemplo: a qualidade dos parafusos
produzidos, medidos pelo número de parafusos
rejeitados.
Quais são as medidas diretas no
desenvolvimento de um software.
•
•
•
•
•
•
•
Custo;
Linhas de código produzidas (LOC);
Velocidade de Execução;
Tamanho da memória necessária;
Defeitos registrados;
Número de usuários simultâneo;
ETC...
Medidas indiretas do Software
•
•
•
•
•
•
Funcionalidade;
Qualidade;
Complexidade;
Eficiência;
Confiabilidade.
Manutenibilidade.
Métricas de Qualidade de
Software
• Antes que o
software seja
entregue
• Depois que o
software seja
entregue
É possível obter uma base
quantitativa para se tomar
decisões referentes a projeto e
teste.
Concentra-se no número de
defeitos descobertos e na
manutenibilidade do sistema.
Fatores que afetam a Qualidade
• McCall e seus colegas definiram um
conjunto de fatores que afetam a qualidade
– Operação do Produto (usando-o);
– Revisão do produto (mudando-o);
– Transição do produto (migrando-o).
•
•
•
•
•
Medidas de Qualidade
Correção: Quanto um programa satisfaz sua
especificação e preenche os objetivos da missão do
cliente.
Confiabilidade: Quanto se pode esperar que um
programa realize a função pretendida com a precisão
exigida.
Eficiência: Quantidade de recursos de computação e
código necessários para um programa realizar sua
função.
Integridade: Quanto o acesso ao software ou dados
por pessoas não-autorizadas pode ser controlado.
Usabilidade: O esforço necessário para aprender,
operar, preparar entradas e interpretar saídas de um
programa.
• Manutenibilidade: O esforço necessário para localizar
e consertar um erro em um programa.
• Flexibilidade: O esforço necessário para modificar um
programa operacional.
• Testabilidade: Esforço necessário para testar um
programa, a fim de garantir que ele realize a função
esperada.
• Portabilidade: Esforço necessário para transferir o
programa de um ambiente de hardware ou software
para outro.
• Reutilização: Quanto de um programa (ou partes dele)
pode ser reusado em outras aplicações – relativo ao
empacotamento e escopo das funções que o programa
realiza.
• Interoperabilidade: Esforço necessário para acoplar
um sistema a outro.
Fatores de qualidade ISO 9126
• A norma ISO 9126 foi desenvolvida em
uma tentativa de identificar os atributos de
qualidade para software. A norma identifica
seis atributos-chave de qualidade
– CARACTERÍSTICAS DA QUALIDADE DO
PRODUTO
Características de Qualidade do
Produto
• Funcionalidade
– Capacidade de atender as necessidades
implícitas e explicitas
– Descreve o que o software faz
• Confiabilidade
– Atributos de Desempenho
• Usabilidade
– Facilidade de utilização
Características de Qualidade do
Produto
• Eficiência
– Relação entre o desempenho e os recursos
utilizados
• Manutenibilidade
– Facilidade para fazer alterações
• Portabilidade
– Facilidade de ser transferido para outro
ambiente
Sub-Características de
Funcionalidade
• Adequação
– Presença das funções especificadas
• Precisão
– O produto gera resultados esperados
• Interoperabilidade
– Capacidade de interagir com outros sistemas
• Conformidade
– Observância de padrões e regras estabelecidas
• Segurança de acesso:
– Prevenção do acesso não autorizado
Sub-Características de
Confiabilidade
• Maturidade
– Baixa freqüência de falhas
• Tolerância
– Capacidade de manter o desempenho mesmo
com problemas
• Recuperabilidade
– Capacidade do produto para re-estabelecer o
nível de desempenho desejado e recuperar
dados em caso de ocorrência de falha
Sub-Caracteristicas de
Usabilidade
• Inteligibilidade
– Medida da facilidade do usuário para
reconhecer a lógica de funcionamento da
aplicação
• Apreensibilidade
– Medida da facilidade encontrada pelo usuário
para aprender a utilizar o produto
• Operacionalidade
– Medida da facilidade para operar o produto
Sub-Caracteristicas de Eficiência
• Comportamento em relação ao tempo
– Medida do tempo de resposta e de processamento,
assim como as taxas de processamento(throughput)
• Comportamento em relação ao uso de recursos
– Medida da quantidade de recursos necessários (CPU,
memória, disco rígido) e a duração do seu uso ao
executar as funções definidas
Sub-Caracteristicas de
Manutenibilidade
• Analisabilidade
– Esforço necessário para diagnosticar deficiências ou causas
de falhas ou localizar as partes a serem modificadas para se
corrigir o problema
• Modificabilidade
– Esforço necessário para realizar alterações, remover falhas,
ou para adequar o produto a mudanças de ambiente
operacional
• Estabilidade
– Medida do risco de efeitos inesperados provenientes de
modificações
• Testabilidade
– Esforço necessário para testar o produto
Sub-Caracteristicas de
Portabilidade
• Adaptabilidade
– Facilidade de se adaptar o produto a outro ambiente
operacional
• Facilidade de Instalação
– Esforço necessário para se instalar o produto
• Capacidade para co-existir
– Conformidade do produto em relação aos padrões de
portabilidade
• Facilidade de Substituir
– Esforço necessário para a utilização do produto em
substituição a um outro
Métricas ISO 9126
• Não há métricas para as 6 características
• A organização deve propor suas métricas e o critério
numérico de aceitação
• Considerar classe de aplicação do produto:
– Confiabilidade: produtos de missão crítica (controle de
transações financeiras)
– Eficiência: tempo real
– Usabilidade: aplicações interativas visando o usuário
fnal não especializado
Avaliando o Produto
• 3 passos
– Definição dos requisitos de qualidade
– Preparação da Avaliação
– Avaliação
Definição do Requisitos de
Qualidade
• Definição das características e sub-características
de interesse em relação ao uso do sistema ANTES
do início do desenvolvimento
• Módulos do produto podem conter diferentes
características e sub-características.
Preparação da Avaliação
• Selecionar Métricas de Qualidade
– Relação dos critérios numéricos com os atributos.
• Definir intervalos de pontuação
– Escala sugerida pela norma (Satisfatório ou
Insatisfatório)
• Definir critérios de Avaliação
– Critérios para a transcrição das características para
valores numéricos
Escala de Pontuação
Excelente
valor
medido
Bom
satisfatória
Médio
Fraco
escala para métrica
níveis de pontuação
não satisfatória
Procedimentos da Avaliação
• Medida
– Aplicação da métricas definidas
– Resultados demonstrados pela escala
• Pontuação
– A medida é classificada nas faixas de pontuação (fraco,
médio, bom ,excelente)
• Avaliação
– Compilação dos resultados
– Resultado é a declaração da qualidade do produto
– Resultado+Custo+Prazo  decisão gerencial de
aceitação ou não do produto.
O processo de avaliação
necessidades
9126 & outros
especificação de
requisitos da qualidade
Definições de
Critérios de
Avaliação
Desenvolvimento
De Software
Seleção
de
Métricas
Definição de
Níveis de
Pontuação
requisitos
gerenciais
definição de
requisitos
Definição de
Requisitos de
Qualidade
preparação
produtos
valor médio
Medida
Pontuação
nível pontuado
Avaliação
Resultado
avaliação
(aceitável
ou não)
Princípios de Medição
• Formulação: a derivação de medidas e métricas de
software adequadas para a representação do software
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
Princípios de Medição
• 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
Atributos de Métricas
efetivas
• Simples e computáveis: Deve ser relativamente fácil
aprender como derivar métrica e seu cálculo não deve
exigir esforço ou tempo exagerado.
• Empíricas e Intuitivamente Persuasivas: A métrica
deve satisfazer às noções intuitivas do engenheiro
sobre o atributo do produto que está sendo
considerado.
• Consistentes e objetivas: A métrica deve produzir
sempre resultados que não sejam ambíguos.
Atributos de Métricas
efetivas
• Consistentes no uso de unidades e dimensões: O
cálculo matemático da métrica deve usar medidas que
não levam a combinações de unidades bizarras.
• Independentes da linguagem de programação:
Métricas devem ser baseadas no modelo de análise,
modelo de projeto ou na estrutura do programa
propriamente dita.
• Mecanismo efetivo para realimentação de alta
qualidade: A métrica deve levar a um produto final da
mais alta qualidade.
Taxonomia de Métricas
•
•
•
•
Métricas para o modelo de análise
Métricas para o modelo de projetos
Métricas para código-fonte
Métricas de teste
Medidas de tamanho de
software
LOC - linhas de código
Medir software contando as linhas de código (LOC) é
uma das medidas mais antigas para determinar o
tamanho, esforço e produtividade no
desenvolvimento de software.
– É muito fácil de usar e aplicar; basta contar a
quantidade do número de linhas de código de um
programa.
– A medida de LOC é considerada uma medida física
do tamanho de software por medir o volume de
código-fonte de um programa.
Desvantagens da métrica
LOC
• Depende da linguagem de programação usada
(o número de linhas de um programa Cobol é
totalmente diferente de um em Java)
• Ausência de padrões de contagem. (Cada
linguagem possui suas características de
sintaxe e semântica)
• Não pode ser aplicada nas fases iniciais de
desenvolvimento (No início o programa ainda
não esta escrito).
Métricas Orientadas ao
Tamanho
Projeto
Esforço
$
KLOC Págs. Docum.
Erros
Pessoas
Aaa-01
24
168
12.1
365
29
3
Ccc-04
62
440
27.2
1224
86
5
Fff-03
43
314
20.2
1050
64
6
.
.
.
.
.
.
.
.
.
A tabela orientada a tamanho
possibilita a medir vários itens:
Projeto
Esforço
$
KLOC
Págs. Docum.
Erros
Pessoas
Aaa-01
24
168
12.1
365
29
3
Ccc-04
62
440
27.2
1224
86
5
Fff-03
43
314
20.2
1050
64
6
.
.
.
.
.
.
.
.
.
Produtividade = KLOC /Pessoa
Custo aaa1
Custo aaa1 = $/KLOC
Custo aaa1 = 168 /12.1
Custo aaa1 = 13.88
Qualidade aaa1
Qualidade aaa1 = Defeitos/KLOC
Qualidade aaa1= 29/12.1
Qualidade aaa1 = 2.39
Produtividade aaa1 = 12.1/3
Produtividade aa1 = 4.03
Esforço = Número de
pessoas * tempo
Tipos de medidas de
tamanho de software
• APF - Análise de Pontos por função
– Podemos dizer que atualmente á a técnica mais
usada para medir o tamanho de projetos de
software.
– Foi criada por Alan Albrecht na IBM na década de 70
e consiste em determinar o tamanho funcional (o
que é entregue) do sistema através da visão do
usuário.
– Ela possui as seguintes vantagens:
– Independe da tecnologia utilizada
– É simples de usar e ser entendida pelo usuário e
desenvolvedores
– É consistente e intercambiável
– Pode ser utilizada desde o início do sistema.
APF - Análise de Pontos por
função
• A APF (Análise de Pontos por Função) pode ser
vista como um técnica que permite dimensionar o
tamanho de um software a ser desenvolvido ,
melhorado ou adquirido; e também um técnica
para realizar estimativas de custo e recursos para
o desenvolvimento e manutenção de software.
O esquema do processo de contagem de pontos
por função é dado na figura abaixo:
Tabela do tamanho aproximado
de algumas aplicações.
Como funciona a APF?
• As funções são identificadas e classificadas como:
Arquivo Lógico Interno -ALI
mantidos pela aplicação
Arquivo de Interface Externa - AIE
arquivo de outra aplicação
Entrada Externa -EE
Transações de outras aplicações (p.ex. tela, txt)
Saída Externa - SE
Relatórios em que há cálculos ou totais.
Consulta Externa - CE
Envia dados para fora do sistema, sem cálculos.
Exemplo: Desenvolvimento de um
sistema cadastro de clientes
• Funções solicitadas:
– Listagem por ordem alfabética
– Exportar o cadastro para outro sistema via arquivo
texto
Cálculo PF
• Primeiro passos identificar e contar,
usando o manual de contagem da APF.
• Teríamos:
ALI
AIE
EE
SE
CE
- 01 ( o arquivo de clientes )
-0
- 01 ( inclusão de cliente )
- 01 ( listagem por ordem alfabética )
- 01 ( exportar arquivo texto)
Cálculos
• Se considerarmos todos os tipos de função
como de complexidade Baixa teremos:
– Pontos de função Brutos não ajustados :
– PFB = ALI x 7 + AIE x 5 + EE x 3 + SE x 4 + CE
x 3 = 1 x 7 + 0 x 5 + 1 x 3 + 1 x 4 + 1 x 3 = 17
Tabela para cálculo de PF não
ajustados
ALI
AIE
EE
SE
CE
7
5
3
4
3
MEDIA 10
7
4
5
4
ALTA
10
6
7
6
BAIXA
15
Cálculo do ajuste de PF
Avaliação das 14 características
Somar NI individuais
Calcular fator de ajuste
Calcular PF ajustados
PF ajustados
Cálculo do ajuste de PF
 São analisadas 14 características sendo atribuído um peso
de 0 a 5 para cada uma delas.
 Este peso representa o impacto de cada características
sobre o desenvolvimento da aplicação.
 Calcular o nível de influência (NI) somando os pesos de
cada uma.
 Calcular o fator de ajuste a partir da equação:
Fator de ajuste = (NI * 0,001) + 0.65
0,65 <= FA <= 1,35
14 características para o
fator de ajuste
• O cálculo do fator de ajuste é
calculado a partir de 14
características gerais dos sistemas,
que permitem uma avaliação geral
da funcionalidade da aplicação.
• As características gerais de um
sistema são:
1.
2.
3.
4.
5.
O sistema requer backup e recuperação confiável?
São exigidas comunicação de Dados?
Há funções de processamento distribuídas?
O desenho é crítico?
O sistema funcionará num ambiente operacional
existente, intensivamente utilizado?
6. O sistema requer entrada de dados on-line?
7. A entrada de dados on-line exige que a transação de
entrada seja elaborada em múltiplas telas ou
operações?
8. Os arquivos mestres são atualizados on-line?
9 – A entrada, saída, arquivos ou consultas são
complexo?
10 – O processamento interno é complexo?
11 – O código é projetado de forma a ser
reusável?
12 – A conversão e a instalação estão incluídas
no projeto?
13 – O sistema é projetado para múltiplas
instalações em diferentes organizações?
14 – A aplicação é projetada de forma a facilitar
mudanças e o uso pelo usuário?
Nível de Influência
• Atribui-se um peso de 0 a 5 para cada característica, de
acordo com o seu nível de influência na aplicação.
• 0 - Nenhuma influência;
• 1 - Influência mínima;
• 2 - Influência moderada;
• 3 - Influência média;
• 4 - influência significativa;
• 5 - Grande influência
Cálculo do fator de ajuste
• Contando os fatores de ajustes para o nosso
exemplo* teremos um total igual a 45.
–
–
–
–
Valor de fator de ajuste :
VFA = 0,65 + (0,001 x 45 ) = 1.1
Valor dos pontos de função Ajustados:
PFA = VFA x PFB = 1,1 x 17 = 18,7
• OK! Usando APF chegamos ao tamanho
do sistema que e´ 18,7 pontos por
função.
*
Estamos supondo 45, aqui não
detalharemos a pontuação
considerada
Cálculo do Custo
• Agora podemos estimar esforço , prazo e custo. Para
isto iremos usar as seguintes considerações:
• 1- Considerando que uma produtividade média de 10 hs
/ PF.
• 2- Considerando que a média de jornada de trabalho é
de 6 horas.
• 3- Considerando que o valor de uma hora de trabalho é
de R$ 25,00.
• Concluímos que :
• Esforço = 10hs / PF = 10 x 18,7 = 187 horas
• Prazo = 187 h / ( 4 x 6 ) = 7,8 dias
• Custo = 187 h x R$ 25,00 = R$ 4.675,00
Fator de Ponderação
Parâmetros de Medidas
Contagem
Simples
Médio
Complexo
Núm. de entradas do Usuário
X
3
4
6
=
Núm. de Saídas do Usuário
X
4
5
7
=
Núm. de Consultas do Usuário
X
3
4
6
=
Núm. de Arquivos
X
7
10
15
=
Núm. de interfaces externas
X
5
7
10
=
Total Contagem
Download

APF - Análise de Pontos por função