Métricas para
Software
Análise de Ponto de
Função
Qualidade em Engenharia de
Software
Especialização em Tecnologia da
Informação
Análise de Ponto de Função
 Mantido pela (www.ifpug.org):

No Brasil www.bfpug.com.br
Objetivo de uma Métrica para
software
 Estabelecer um tamanho para o produto
de software, de forma que, seja possível
gerenciar aspectos como custos, tempo,
produtividade, qualidade, etc.
 É requisito básico para um efetivo
planejamento de um projeto de software.
“Não se pode controlar aquilo que não se
consegue medir.”
Análise de Ponto de Função
 Metodologia para Contagem de Pontos
de Função descrita no “Counting
Practices Manual” versão 1.4 (CPM4.1),
publicado pela IFPUG
 É um método padrão para definir um
“tamanho” para um software, em Pontos
de Função
Análise de Ponto de Função
 É apoiada na funcionalidade
implementada pelo software, sob o
ponto de vista do usuário
 É uma métrica “A priori ”, ou seja, pode
ser aplicada antes que o produto seja
desenvolvido
 Também pode ser utilizada sobre
software já implementado
Análise de Ponto de Função
 Não depende da implementação
(linguagem, compilador, banco de
dados, etc.)
 Foi criada por Allan J. Albrecht,
engenheiro de software da IBM em
1974.
Tamanho de um Software
 Qual o tamanho de um P.F.?
 Quantas linhas de código tem um P.F.?
 Quanto custa um P.F?
 Quanto tempo é necessário para
implementar um P.F?
Tamanho de um Software
 Atualmente os Contratos para
Desenvolvimento de Software são
Baseados em Medidas – a maioria em
P.F.
 Valores podem ser revistos (tanto para
mais quanto para menos) em função do
tamanho previsto para o software em
relação ao tamanho real do software
entregue ao cliente
Tamanho de um Software
Dados Históricos
 Não basta ter um “tamanho” de
software, é necessário saber converter
este tamanho em número reais
 O software X tem tamanho = 150 PF

E daí?
 É precisa conhecer projetos passados
para determinar o custo de um 1 PF, o
tempo de desenvolvimento de 1 PF...
Exemplo de Planejamento de
Software
 Métricas na Prática – Informática é um
negócio
Dados Históricos
 Uma empresa interessada em aplicar métricas
deve manter de cada projeto os seguintes
dados, além do tamanho do projeto:





Quanto custou todo o projeto
Quanto tempo consumiu todo o projeto
Quanto tempo consumiu cada fase do processo de
engenharia de software
Quanto custou cada fase do processo de
engenharia de software
Qual a equipe e custos foram considerados nos
cálculos
Contagem de Pontos de
Função
 Procedimento
Determinar
Tipo de
Contagem
Identificar
Escopo
Calcular
PF
Ajustado
Contar
Funções de
Dados
Contar
Funções
Transacionais
Calcular
PF não
Ajustado
Determinar
Fator
Ajuste
Contagem das Funções de
Dados
 Para cada tabela (ou entidade do DER) deve
ser determinada sua complexidade
 Para calcular a complexidade é necessário
determinar


número de itens de dados: campos com valores
atômicos e únicos. Chaves estrangeiras são
contadas como um item de dados
número de registros lógicos: atributos
multivalorados – DER; ou a tabela criada em
decorrência de um atributo multivalorado)
Contagem das Funções de
Dados
 Tabela para Determinar a Complexidade
das Funções de Dados
Número de
Registros
Lógicos
Número de Itens de Dados
De 1 a 19
De 20 a 50
51 ou mais
Apenas 1
Simples
Simples
Média
De 2 a 5
Simples
Média
Complexa
6 ou mais
Média
Complexa
Complexa
Contagem das Funções de
Dados
 Exemplo
Nome
Cód
Endereço
Cliente
Tipo
Telefones
Número
- Item de Dados: 5 (são os atributos atômicos)
- Registros Lógicos: 2 (são as tabelas físicas que serão geradas)
- Complexidade: Simples
Contagem das Funções de
Dados
 Cada Arquivo deve ser classificado como
sendo:


ALI – Arquivo Lógico Interno: são arquivos
mantidos pelo sistema
AIE – Arquivo de Interface Externa: são
arquivos mantidos por um outro sistema ou
organização mas que são acessados pelo
software que está sendo avaliado
Considerações Importantes
para Contagem dos Dados
 Os chamados “Dados de Código” ou “Metadados”
não devem ser contados.
 Dados de código não especificados pelos usuários,
mas sim pelo desenvolvedor para solucionar
problemas de projeto.
 São exemplos de dados de código:


Uma tabela com os estados federativos, utilizada para
evitar codificação redundante
Uma tabela com os dados da empresa (nome,
logomarca, etc) onde o sistema está instalado – também
chamados de dados de uma ocorrência
Considerações Importantes
para Contagem dos Dados
 São exemplos de dados de código:


Tabelas com dados que raramente mudam. Como
tabelas com unidades de medida, ou tabelas com
intervalos de valores válidos – domínio de valores.
Tabelas com valores default para outros campos da
aplicação.
 Entidades que existem somente para implementar
relacionamentos N:M não devem ser contadas como
1 AL, mas sim como tipos de registros (ou registros
lógicos) – não fazem parte de uma visão funcional,
mas sim de uma visão implementacional
Considerações Importantes
para Contagem dos Dados
 Entidades como Venda e Itens da Venda devem ser
contadas como um único ALI – isto também em
conseqüência da visão funcional
 Quando há uma relacionamento 1:1 entre duas
entidades que se complementam, as mesmas devem
ser contadas como um único AL e um único tipo de
registro
 Quando há o conceito de herança para os dados, a
dados genéricos e os específicos devem ser
contados como um único AL, contudo, cada “classe”
deverá ser contada como um tipo de registro
Considerações Importantes
para Contagem dos Dados
 Entidades associativas (geralmente que
implementam relacionamentos N:M) serão
contadas como 1 AL somente se sua
existência independe dos dados das
entidades que estão sendo vinculadas
Exemplo:
Funcionário <-> Serviços <-> Departamentos
Mesmo que um funcionário ou um departamento
seja excluído o serviço deverá ser mantido –
logo o mesmo é contado como 1 AL

Contagem das Funções de
Dados
 Prática – SVInternet




Determinar o tamanho das funções de dados do
SVInternet
Cada grupo deverá realizar a contagem das
funções dos dados do SVInternet
Os resultados dos grupos serão confrontados
O resultado final será utilizado para o
estabelecimento de um plano de
desenvolvimento do sistema
Contagem das Funções
Transacionais
 São considerados três tipos básicos de
Funções Transacionais



Cadastros – chamados de Entradas Externas
Consultas sem a realização de cálculos –
chamadas de Consultas Externas
Consultas com a realização de cálculos –
chamadas de Saídas Externas
Contagem das Funções
Transacionais
 São exemplos de Entradas Externas (EE)



Cadastros ou transações que recebam dados
externos utilizados na manutenção de ALI;
Janelas que permitam adicionar, excluir e alterar
registros em arquivos. Nesse caso contribuem
com três Entradas Externas;
Processamento com lotes de atualização de
bases cadastrais a partir de arquivos de
movimentos.
Contagem das Funções
Transacionais
 Não são exemplos de Entradas Externas
(EE)



Telas de filtros de relatórios e consultas;
Menus;
Telas de Login.
Contagem das Funções
Transacionais
 São exemplos de Saídas Externas (SE)





Relatórios com totalização de dados;
Relatórios que atualizem arquivos;
Consultas com apresentação de dados
derivados ou cálculos;
Arquivo de movimento gerado para outra
aplicação;
Informações em formato gráfico.
Contagem das Funções
Transacionais
 Não são exemplos de Saídas Externas (SE)



Telas de Help;
Drop-downs;
Consultas simples que simplesmente recuperam
e apresentam dados.
Contagem das Funções
Transacionais
 São exemplos de Consultas Externas (CE)



Telas de Help;
Telas de Logon;
Menus e Drop-Downs gerados dinamicamente a
partir de dados de um aquivo.
Considerações Importantes para a
Contagem das Funções
Transacionais
 É preciso compreender bem o conceito de
Processo Elementar – caso contrário vários
processos transacionais podem ser contados
como um único, implicando em um cálculo
errôneo.
 Processo Elementar é a menor unidade de
atividade significativa para o usuário final.
Considerações Importantes para a
Contagem das Funções
Transacionais
 Regras para determinar o número de Processos
Elementares(PE):

A lógica de processamento é diferente da executada por
outros processos elementares da aplicação – então
conta-se dois PE’s (Dois relatórios se diferenciam somente pela
ordenação dos dados – então ambos devem ser contados como
um PE);


O conjunto de tipos de dados identificado é diferente do
identificado em outros PE – então conta-se dois PE’s;
Os ALI e AIE referenciados são diferentes dos arquivos
referenciados por outros processos elementares da
aplicação.
Considerações Importantes para a
Contagem das Funções
Transacionais
 Por exemplo um cadastro de clientes que
permita a inclusão, a alteração e a exclusão
de dados do cliente deverá ser contado com
três Entradas Externas diferentes – isto
porque cada funcionalidade desta possui um
processamento elementar diferente (lógica
de execução)
Contagem das Funções
Transacionais
 Para calcular a complexidade de uma
Entrada, Saída ou Externa deve-se
determinar:


O número de Arquivos Referenciados: arquivos
lidos ou gravados durante a execução do
cadastro
O número de Itens de Dados: deve ser contado
como item de dado todo campo de dados, toda
mensagem emitida pelo cadastro e toda
operação executada pelo cadastro
Regras para Contar o Número
de Arquivos Referenciados
 Regras válidas para se contar os AR:



Conte um AR para cada ALI mantido;
Conte apenas um AR para cada ALI lido e
mantido pela função;
Conte um AR para cada ALI ou AIE lido durante
o processamento.
Obs: As duas primeiras regras supracitadas não se aplicam
para as consultas externas
Regras para Contar o Tipos de
Dados (TD)
 Regras de Contagem de Tipos de Dados:



Conte um TD para cada campo, não repetido e
reconhecido pelo usuário, que entra ou saí pela fronteira
da aplicação;
Se um campo tanto entra como saí da fronteira da
aplicação, deve ser contado uma única vez (Um campo de
uma tela de filtro de relatório por exemplo);
Campos que são recuperados ou derivados e
armazenados em ALI, mas que não ultrapassam a
fronteira da aplicação não devem ser contados (Um código
gerado automaticamente para um registro e que não é
apresentado ao usuário, por exemplo);
Regras para Contar o Tipos de
Dados (TD)
 Regras de Contagem de Tipos de Dados:
 Conte um único TD para uma mensagem
enviada para fora da fronteira da aplicação –
seja esta mensagem de erro, de confirmação ou
de verificação (Por exemplo, se um cadastro existem
mensagens para alertar sobre a falta de dados ou ainda a
inconsistência de dados, conte apenas um TD para ambas);

Conte um único TD para a capacidade de
especificar uma ação a ser tomada – mesmo
que haja múltiplas formas de acionar esta ação
(Por exemplo, para se gravar um registro pode-se clicar no
botão salvar ou pressionar a tecla <CTRL> + <s>, mesmo
assim deve-se contar somente um TD);
Regras para Contar o Tipos de
Dados (TD)
 Regras de Contagem de Tipos de Dados:

Não conte itens literais como TD (Por exemplo,
Títulos de cadastros, títulos de relatórios, cabeçalhos de
colunas, nomes de campos);

Não conte variáveis de paginação ou campos
automáticos gerados pelo sistema (Número da
páginas de relatórios, campos de data e hora, campos de
paginação como barra de rolagens).
Contagem das Funções
Transacionais
 Tabela para Determinar Complexidade
da Entrada Externa
Número de
Arquivos
Referenciados
Número de Itens de Dados
De 1 a 4
De 5 a 15
16 ou mais
0 ou 1
Simples
Simples
Média
2
Simples
Média
Complexa
3 ou mais
Média
Complexa
Complexa
Contagem das Funções
Transacionais
 Tabela para Determinar a Complexidade
das Consultas e Saídas Externas
Número de
Arquivos
Referenciados
Número de Itens de Dados
De 1 a 5
De 6 a 19
20 ou mais
0 ou 1
Simples
Simples
Média
2 ou 3
Simples
Média
Complexa
4 ou mais
Média
Complexa
Complexa
Cálculo do Tamanho do
Software Não Ajustado
 Para determinar o tamanho não ajustado
do software existe uma tabela padrão
 Antes de lançar os dados da tabela
padrão é necessário:


Classificar os arquivos como ALI ou AIE
Classificar os relatórios como Consultas
Externas ou Saídas Externas
Tamanho Não Ajustado
Tipos de Função
Complexidade
Arquivos Lógicos
Internos
6 simples x 7 =
média x 10 =
complexas x 15 =
Arquivos de
Interface Externa
simples x 5 =
média x 7 =
complexas x 10 =
Entrada Externa
simples x 3 =
média x 4 =
complexas x 6 =
Consulta Externa
simples x 3 =
média x 4 =
complexas x 6 =
Saída Externa
simples x 4 =
média x 5 =
complexas x 7 =
Total Final:
Total de Pontos
42 p.f
0 .pf.
Cálculo do Nível de Influência
Total - NIT
 Ao se determinar o tamanho de um software
deve ser considerado a tecnologia que será
utilizada, os métodos de desenvolvimento, etc;
 Um DER e um protótipo são independentes de
tecnologia;
 É necessário ajustar o tamanho do software,
considerando fatores técnicos e externos
variados;
 Até o presente momento toda a contagem se
baseou nas funcionalidades da aplicação.
Cálculo do Nível de Influência
Total (NIT)
 O NIT é calculado através da soma das notas
fornecidas para 14 itens previamente definidos
 Para cada item deve ser dada uma nota de 0 à
5 (0 – representa nenhuma influência; 5 –
representa forte influência)
 O NIT geralmente é definido para previamente
para um determinado software, em caso de
uma concorrência
Cálculo do Nível de Influência
Total - NIT
 Exemplo de um Item de Influência no
Tamanho do Sistema

Processamento Distribuído = 5 (O sistema
deverá operar de forma distribuída)
 A interpretação de cada Característica
Geral de Sistema (CGS) é um processo
complexo, que muitas vezes, depende
de aspectos empíricos.
Características Gerais de
Sistemas de Acordo com IFPUG
 1. Comunicação de Dados – determina
se as aplicações são processadas em
batch ou on-line



Aplicações atuais geralmente pontuam
com 4 neste item – nunca menos de 2
Aplicações Cliente-Servidor com duas
camadas geralmente possuem pontuação
4
Aplicações de tempo real, com servidores
de aplicação e middlewares pontuarão
com 5.
Características Gerais de
Sistemas de Acordo com IFPUG
 2. Processamento Distribuído –
descreve em que nível a aplicação
transfere dados entre seus componentes



Uma aplicação desktop isolada (aplicação
e BD na mesma máquina) irá pontuar com
0
Um sistema com N camadas pontuará
com 4
Para pontuar com 5 o sistema deverá ter
componentes sendo executados em vários
servidores
Características Gerais de
Sistemas de Acordo com IFPUG
 3. Performance – descreve o nível em
que o tempo de resposta e taxa de
transações influenciam o
desenvolvimento da aplicação


Uma aplicação bancária cujo tempo de
resposta deve ser praticamente
instantâneo pontuará com 5;
Tempo de resposta são críticos durante os
momentos de pico. Não foi necessário um
projeto especial para uso da CPU.
Pontuação igual a 3.
Características Gerais de
Sistemas de Acordo com IFPUG
 4. Configuração Altamente Utilizada –
descreve o nível em que restrições de
recursos computacionais influenciam no
desenvolvimento da aplicação


Em geral, a grande maioria dos sistemas
pontuaria com 0 ou 1;
Aplicações científicas ou de engenharia
com grandes exigências de
processamento pontuariam de 3 a 5.
Características Gerais de
Sistemas de Acordo com IFPUG
 5. Volume de Transações – descreve o
nível em que o alto volume de
transações influenciam no
desenvolvimento da aplicação


Tem forte relação com CGS 3 –
Performance;
Um e-commerce com altos picos de
acesso em conseqüência de promoções
rápidas podem ser pontuados com 5.
Características Gerais de
Sistemas de Acordo com IFPUG
 6. Entrada de Dados On-line – descreve
o nível em que são efetuadas entradas
de dados on-line (interativas)


Aplicações com mais de 30% das entradas
sendo realizadas de forma on-line são
pontuadas com 5;
Atualmente a maioria absoluta das
aplicações pontuam com 5 nesta CGS.
Características Gerais de
Sistemas de Acordo com IFPUG
 7. Eficiência do Usuário Final – descreve
o nível em que fatores humanos e
facilidade de uso influenciam o
desenvolvimento


A pontuação para esta CGS é definida de
acordo com uma tabela de itens a serem
respondidos;
Aplicações tipicamente Windows e Web
pontuarão de 3 a 5.
Características Gerais de
Sistemas de Acordo com IFPUG
 8. Processamento Complexo – descreve
o nível em que o processamento lógico
ou matemático influenciam o
desenvolvimento

Aplicações comerciais e de gestão
geralmente possuem uma baixa
pontuação para esta CGS – de 0 a 2
pontos.
Características Gerais de
Sistemas de Acordo com IFPUG
 10. Reusabilidade – a aplicação e seu
código foi especialmente projetados,
desenvolvidos e suportados para serem
utilizados em outras aplicações

Aplicações muito bem projetadas, com
design patterns e alta-reutilização podem
receber pontuação de 4 a 5.
Características Gerais de
Sistemas de Acordo com IFPUG
 11. Facilidade de Instalação –
descrevem em que nível a conversão de
ambientes preexistentes influenciam o
desenvolvimento

Projetos que irão substituir aplicações
existentes tendem a ter uma pontuação
elevada nesta CGS – de 3 a 5 pontos –
dependendo do facilidade e automação
deste processo de substituição
Características Gerais de
Sistemas de Acordo com IFPUG
 12. Facilidade de Operação –
descrevem em que nível a aplicação
atende a alguns aspectos operacionais,
como: inicialização, segurança e
recuperação

Aplicações em que não há a necessidade
de um operador, pois o usuário consegue
facilmente realizar todos os tipos de
operações possuem pontuação 5 para
esta CGS.
Características Gerais de
Sistemas de Acordo com IFPUG
 13. Múltiplos Locais – a aplicação foi
especialmente projetada para ser
instalada e atender múltiplos locais para
múltiplas organizações

Aplicações projetadas para operar em
diferentes plataformas (hardware e
software) devem ter pontuação igual ou
acima de 3.
Características Gerais de
Sistemas de Acordo com IFPUG
 14. Modificação Facilitada – descreve
em que nível a aplicação foi projetada
para facilitar sua manutenção e
evolução

O número de consultas flexíveis (com
parâmetros e condições de busca
definidas pelo usuário) e a quantidade de
dados de configuração mantidos de forma
on-line determinam esta CGS.
Cálculo do Nível de Influência
Total - NIT
 Com NIT deve ser calculado o Valor
Fator de Ajuste (FA) do tamanho do
software
 FA = (NIT * 0,01) + 0,65
 Para um NIT = 45 temos o FA = 1,1
 O FA pode alterar o tamanho do
software não ajustado em +-35%
Cálculo do Tamanho Ajustado
de uma Aplicação
 Tamanho Ajustado = Tamanho Não
Ajustado * FA
 Existem fórmulas especiais para
Projetos de Desenvolvimento e para
Projetos de Manutenção (ou melhoria)
de Software;
 Estas fórmulas consideram pontos de
função de funcionalidades alteradas,
excluídas, adicionadas e preservadas.
Realizando as Primeiras
Estimativas
 Custo por PF = R$ 590,00
 Tempo médio por PF = 10 H/H (horas-
homem)
Fim...
Download

- GEOCITIES.ws