1. Análise de Pontos de Função
Uma visão geral do mundo das Métricas
“Não se consegue controlar o que não se consegue medir.¹”
Tom de Marco - Controlling Software Projects, Yourdon Press, 1982.
Humbertho Mattar
2. Agenda
Por que medir?
Indicadores derivativos do PF
Medida do Tamanho do Produto
ISO 14143-1
Visão Geral da Análise de Pontos de Função
Práticas de Contagens Estimadas
Análise do Mercado de Métrica no Brasil e no Mundo
Humbertho Mattar
3. Por que medir?
Estimar custos e recursos de projetos
Avaliar a aquisição de pacotes (make-or-buy)
Suportar análises de produtividade e qualidade
Remunerar fornecedores
Apoiar a gerência de escopo do projeto
Apoiar a gerência de requisitos do projeto
Benchmarking
Tornar o gerenciamento de projetos baseado em fatos, não em
“achismos”
Humbertho Mattar
4. Indicadores derivativos do PF
A APF, junto com outras métricas permite a geração de vários
indicadores para o GP
Horas / PF
PF / Homem Mês
R$ / PF
Defeitos / PF
Estabilidade dos requisitos
Baseline da organização
Tamanho do backlog
Humbertho Mattar
5. Medida do Tamanho do Produto
Os Pontos de Função podem ser utilizados para medir sistemas em várias
fases do ciclo de vida, no desenvolvimento ou na manutenção.
Quadro comparativo:
Fase do Ciclo de vida Estimado Medido
Proposta Sim Não
Requisitos Sim Sim
Projeto Sim Sim
Construção Sim Sim
Implantação Sim Sim
Manutenção Adaptativa Sim Sim
Manutenção Corretiva Não Não
Manutenção Perfectiva Não Não
Humbertho Mattar
6. ISO 14143-1/2007 – Medição Funcional
Definição de Conceitos
Avaliação da Conformidade de Métodos de Medição de Software com
Relação ao padrão ISO/IEC 14143-1:1998
Verificação de um Método de Medição Funcional de Tamanho
Modelo de Referência para Medição Funcional de Tamanho
Determinação de Domínios Funcionais para uso com Medição Funcional de
Tamanho.
Uso da APF
Humbertho Mattar
7. Histórico da Análise de Pontos de Função
1979 Allan Albrecht (IBM) cria as primeiras regras da APF
1983 primeiro curso de APF no Brasil (Unisys)
1984 primeiro manual de APF
1986 criação da primeira diretoria do IFPUG *
1996 primeiro exame CFPS no Brasil
1998 criação do BFPUG
2004 CFPS no Brasil = 200
2007 CPM (Manual de Práticas de Contagem) versão 4.2.1 em
português
Humbertho Mattar
8. Análise de Pontos de Função
Análise de Pontos de Função (APF) é um método padrão para medir o
desenvolvimento de software do ponto de vista do usuário.
A APF mede o software através da quantificação da funcionalidade que o
software provê ao usuário com base principalmente no projeto lógico
Objetivo do processo de Contagem de Pontos de Função:
Suficientemente simples para minimizar a sobrecarga no processo de
medição;
Uma medida consistente entre os vários projetos e organizações.
Humbertho Mattar
9. APF - Objetivos e Benefícios
Objetivos
Medir a funcionalidade que o usuário solicita e recebe
Independe da tecnologia e considerações técnicas
Benefícios
Fator de normalização e comparação de softwares
Estimativa de custos e recursos
Linguagem comum usuário x desenvolvedor
Transparente
Reduz conflitos de negociação
Permite auditagem
Possibilita geração de histórico de projetos
Indicador de qualidade de projetos
Humbertho Mattar
10. APF - Processo de Contagem
• Diagrama do Procedimento de Contagem:
Humbertho Mattar
11. APF – Propósito
O propósito significa o porquê da análise
Determina algumas premissas para o processo de contagem;
Determina o tipo de contagem, ou seja, se ela abrangerá uma ou mais
aplicações ou então apenas parte de uma aplicação
Afeta o posicionamento da fronteira da aplicação
Define o nível de detalhe da contagem
Ex.: Uma contagem está sujeita a uma auditoria posterior, será
necessário que cada etapa do processo esteja bem documentada para
facilitar a tarefa.
Humbertho Mattar
12. APF – Tipo de Contagem
Projeto de Desenvolvimento
Referencia as funcionalidades disponíveis na primeira instalação
Incluem as funcionalidades de conversão de dados
Projeto de Melhoria
Modificações (inclusões, alterações, exclusões e conversão)
Aplicação (Baseline)
Funcionalidades já disponíveis
Esta contagem é inicializada quando a contagem de pontos de função
do projeto de desenvolvimento é finalizado e é atualizado sempre ao
final de um projeto de melhoria da aplicação.
Humbertho Mattar
13. APF – Fronteira e Escopo da Contagem
Definição:
Fronteira:
A fronteira da aplicação indica o limite entre o sistema que
está sendo medido e o usuário.
Escopo:
Escopo da Contagem define as funcionalidades que serão
incluídas em uma contagem específica.
A fronteira da aplicação é independente do escopo da contagem
Humbertho Mattar
14. APF – Fronteira da Contagem
Define o que é externo à aplicação
É uma interface conceitual entre a aplicação “interna” e o mundo
“externo” do usuário
Atua como uma “membrana” através da qual os dados processados
pelas transações (EEs, SEs e CEs) passam para dentro e para fora
da aplicação
Inclui dados lógicos mantidos pela aplicação (ALIs)
Ajuda na identificação dos dados lógicos referenciados mas não
mantidos dentro da aplicação (AIEs)
Depende da visão externa do negócio do usuário da aplicação. É
independente de considerações técnicas ou de implementação.
Humbertho Mattar
15. APF – Escopo da Contagem
Define um (sub)grupo do software que está sendo medido
É determinado pelo propósito de executar a contagem de pontos de
função
Identifica na contagem de pontos de função para fornecer respostas
relevantes ao propósito da contagem
Pode incluir mais de uma aplicação
Escopo de:
Pontos de função de melhoria
Pontos de função de desenvolvimento
Pontos de função de aplicação
Humbertho Mattar
16. APF – Funções de Dados
As funções de dados representam a funcionalidade fornecida ao
usuário para satisfazer requisitos de dados internos e externos.
Arquivos Lógico Internos (ALIs)
Arquivos de Interface Externa (AIEs)
O termo “arquivo” não significa arquivo no sentido tradicional de
processamento de dados. Neste caso, para a APF, arquivo refere-se a um
grupo de dados logicamente relacionados e não à implementação física
destes grupos de dados.
Diferença principal entre ALIs e AIEs, é que o arquivo lógico interno está
dentro da fronteira da aplicação e é mantido por processos elementares
enquanto o AIE não é. Necessariamente o AIE deverá ser um ALI de outra
aplicação.
Humbertho Mattar
17. APF – Arquivos Lógico Internos
Um arquivo Lógico (ALI) é um grupo de Dados ou de informações
de controle logicamente relacionados, reconhecido pelo usuário,
mantido dentro da fronteira da aplicação. A intenção primária de
uma ALI é armazenar dados mantidos através de um ou mais
processos elementares da aplicação que está sendo contada.
Regras de identificação:
O Grupo de dados ou informações de controle é lógico e
reconhecido pelo usuário
O grupo de dados é mantido através de um processo elementar
dentro da fronteira da aplicação que está sendo contada
Humbertho Mattar
18. APF – Arquivo de Interface Externa
Um arquivo de interface externa (AIE) é um grupo de dados ou de
informações de controle logicamente relacionados, reconhecido pelo
usuário, referenciado pela aplicação, porém mantido dentro da fronteira
de uma outra aplicação. A intenção primária de um AIE é armazenar
dados referenciados através de um ou mais processos elementares
dentro da fronteira da aplicação que está sendo contada. Isto significa
que um AIE contado para uma aplicação deve ser um ALI em outra
aplicação.
Regras de identificação:
O grupo de dados ou de informações de controle é lógico e reconhecido
pelo usuário.
O grupo de dados é referenciado por, e externo à aplicação que está sendo
contada.
O grupo de dados não é mantido pela aplicação que está sendo contada.
O grupo de dados é mantido em um ALI de outra aplicação.
Humbertho Mattar
19. APF – Contar Funções de Dados
DER – Dado Elementar Referenciado
Campo único não repetido e reconhecido por usuário
RLR – Registro Lógico Referenciado
Subgrupo de dados reconhecidos pelo usuário dentro de ALI/AIE
Complexidade Contribuição
RLRs/DETs 1-19 20-50 >50 # AIE ALI
1 Baixa Baixa Média Baixa 5 7
2–5 Baixa Média Alta Média 7 10
>5 Média Alta Alta Alta 10 15
Humbertho Mattar
20. APF – Arquivos Lógicos
Exemplos:
Arquivos de configuração mantidos pela aplicação ALI
Dados de negócio mantidos pela aplicação ALI
Arquivos mantidos pela aplicação e por outra também ALI
Arquivos mantidos por outra aplicação AIE
Arquivos de backup -
Tabelas de dado de código (dados do desenvolvedor) -
Arquivo movimento para manter dados de negócio -
Arquivos de segurança mantidos pela aplicação ALI
Arquivos de help, mantidos por outra aplicação AIE
Arquivo para processamento em outra aplicação -
Humbertho Mattar
21. APF – Funções de Transação
As funções de transação representam a funcionalidade fornecida ao
usuário para o processamento de dados por uma aplicação
Entrada Externas (EE)
Saídas Externas (SE)
Consultas Externas (CE)
A diferença principal entre os tipos de função transação é a sua
intenção primária.
Humbertho Mattar
22. APF – Funções de Transação
EE – Entradas Externas
Uma entrada externa (EE) é um processo elementar que processa dados ou informações de controle que
vêm de fora da fronteira da aplicação. A intenção primária de uma EE é manter um ou mais ALIs e/ou alterar
o comportamento do sistema.
SE – Saídas Externas
Uma saída externa (SE) é um processo elementar que envia dados ou informações de controle para fora da
fronteira da aplicação. A intenção primária de uma SE é apresentar informações ao usuário através de lógica
de processamento que pode incluir, ou não, a recuperação de dados ou informações de controle. O
processamento lógico deve conter pelo menos uma fórmula matemática ou cálculo, criar dados derivados,
manter um ou mais ALIs ou alterar o comportamento do sistema.
CE – Saídas Externas
Uma consulta externa (CE) é um processo elementar que envia dados ou informações de controle para fora
da fronteira da aplicação. A intenção primária de uma CE é apresentar informações ao usuário através da
recuperação de dados ou informações de controle de um ALI ou AIE. O processamento lógico não deve
conter fórmulas matemáticas ou cálculos, nem criar dados derivados. Nenhum ALI é mantido durante o
processamento e nem o comportamento do sistema é alterado.
Humbertho Mattar
23. APF – Contar Funções de Transação
DER Dado Elementar Referenciado
Campo único não repetido e reconhecido por usuário
Capacidade de envio de mensagem de resposta
Habilidade de especificar uma ação a ser executada
ALR Arquivo Lógico Referenciado
ALI mantido ou AIE referenciado pela função de transação
Complexidade Contribuição
ALRs/ DERs 1–4 5 – 15 > 16 # EE CE SE
0–1 Baixa Baixa Média Baixa 3 3 4
EE
2 Baixa Média Alta Média 4 4 5
>3 Média Alta Alta Alta 6 6 7
ALRs/ DERs 1–5 6 – 19 > 20
0–1 Baixa Baixa Média
SE/CE
2 Baixa Média Alta
>3 Média Alta Alta
Humbertho Mattar
24. APF – Contar Funções de Transação
Regras de Identificação
Lógicas EE SE CE
Alterar Comportamento Principal Deve* Nunca
Apresentar Informações Pode ser Principal Principal
Cálculos Pode ser Deve* Nunca
Manter ALIs Deve Deve* Nunca
Referenciar AIE / ALI Pode ser Pode ser Deve
Travessia de dados – fronteira Recebe Envia Envia
Deve* - O processo elementar deve conter pelo menos uma das lógicas de
processamento listadas acima.
Humbertho Mattar
25. APF – Contar Funções de Transação
Exemplos
Relatório sem totalizador e que não atualiza ALI CE
Drop-down que não acessa ALI ou AIE -
Drop-down que recupera dados de um arquivo lógico CE
Função de inclusão, alteração ou exclusão em arquivo lógico EE
Script de atualização de ALI, a partir de arquivo movimento EE
Telas estáticas de help -
Menus gerados dinamicamente CE
Mensagens de confirmação de uma transação -
Relatórios com campos calculados ou que atualizem ALIs SE
Receber dados externos utilizados na manutenção de ALIs EE
Consulta com totalização de dado SE
Menus estáticos -
Humbertho Mattar
26. APF – Fator de Ajuste
Calculado com base em pesos entre 0 e 5, atribuídos à 14
Características Gerais do Sistema. Ajusta a contagem em +/- 35%.
Para fins de auditoria cada peso atribuído deverá ser justificado.
CGS – Características Gerais dos Sistemas:
• Comunicação de Dados • Processamento Distribuído
• Performance • Configuração Intensa utilizada
• Taxa de Transação • Entrada de dados online
• Eficiência do Usuário Final • Atualização online
• Processamento Complexo • Reutilização
• Facilidade de Instalação
• Múltiplos Locais
• Facilidade de Operação
• Facilidade de Mudança
Humbertho Mattar
27. APF – Calcular Ponto de Função Ajustado
Estimada
Para estimar a complexidade do processo elementar e por conseqüência
sua contribuição a NESMA normatiza o uso da seguinte fórmula:
UFP = # EE * 4 + # SE * 5 + # CE * 4 + # ALI * 7 + # AIE * 5
Sendo:
• UFP, total de pontos de função não-ajustados
• #, Número de processos elementares categorizados por tipo de transação
• Exemplo:
UFP = (12 EE * 4) + (7 SE * 5) + (8 CE * 4) + (5 ALI * 7) + (2 AIE * 5)
UFP = 160
Humbertho Mattar
28. APF – Calcular Ponto de Função Ajustado
Estimada
A contagem estimada da aplicação cabe para o início do projeto e durante
boa parte do ciclo de desenvolvimento do projeto. Esta contagem é
importante para criar insumos de prazo e esforço que será demandado.
• Valor do fator de ajuste [VAF]
• Nível de Influência Total [TDI] = Somatório dos Valores atribuídos nas CGS
• Fator de Ajuste [VAF] = [TDI]*0,01+0,65
• Cálculo do Ponto de Função Ajustado [AFP], para projeto de desenvolvimento:
• DFP = (UFP + CFP) X VAF
• Sendo CFP, total de pontos de função incluídos para conversão de dados.
Exemplo:
DFP = (160 + 0) X 0,95 = 152 FP
Humbertho Mattar
29. APF – Quadro Comparativo
• Exemplos de aplicativos e suas dimensões:
Produtos de Software Sistemas Comerciais Diversos
Aplicação PF Aplicação PF
Ferramenta Case IEF 20.000 Imposto de Renda Pessoal 2.000
Compilador VB (MS) 3.000 Contabilidade Geral 1.500
SGBD IMS (IBM) 3.500 Processamento de Pedidos 1.250
Gerenciador CICS (IBM) 2.000 Recursos Humanos 1.200
Word 7.0 (MS) 2.500 Suporte a Vendas 975
Excel 6.0 (MS) 2.500 Preparação de Orçamento 750
MS Project (MS) 3.500
Humbertho Mattar
30. Quem usa APF em contratos
BNDES PETROBRÁS
CEF EMBRATEL
SERPRO PRODEB
PM- SP EDS
DATAPREV POLITEC
CORREIOS MSAInfor
BRADESCO DBA
ABN/REAL CPM
EXÉRCITO STEFANINI
STJ ANVISA
Vem tornando-se padrão no mercado de contratação de
desenvolvimento de software
Humbertho Mattar
31. Quanto custa o Ponto de Função?
O valor R$/PF irá variar de acordo com o trabalho exigido para a entrega das
funcionalidades do software;
Padrão técnico e de qualidade solicitado pelo cliente
Quantidade de entregáveis (artefatos, documentos, modelos, etc)
Em resumo, tudo aquilo que afeta custo de forma significativa mas que não tem
relação direta com o tamanho medido pela APF acaba sendo computado no
preço do ponto de função.
Exemplo : Ao se contratar uma empresa apenas para o trabalho de
codificação e testes de um sistema espera-se que o preço do ponto de função
seja inferior ao caso da contratação da mesma empresa para a realização de
todo o ciclo de desenvolvimento do sistema, desde o levantamento de
requisitos até a implantação.
Outra possibilidade para se obter essa tabela de preços é recorrer às
organizações que mantém base histórica de projetos de software (exemplo:
ISBG - www.isbsg.or) e efetuar uma conversão dos indicadores de taxa de
entrega (H/PF) para preço (R$/PF). Porém mesmo que se consiga obter uma
tabela de valores R$/PF, a variação dos números é tão significativa que
facilmente se encontra uma faixa de valores cuja variação entre o mínimo e o
máximo pode ser de até 10 vezes, por exemplo de R$100/PF a R$1.000/PF.
Humbertho Mattar
32. Mercado de Métrica?
CFPS - Certified Function Point Specialist - é a certificação conferida pelo
International Function Point Users Group às pessoas aprovadas no exame
de certificação CFPS
A certificação CFPS é reconhecida internacionalmente e é válida por até 3
(três) anos. A Prova é dividida em três partes e o êxito na prova é obtido
com 90% de aproveitamento
CFPS no Mundo = 995 Mercado
CFPS no Brasil = 269 Restrito mas
valoroso.
Número de CFPS por País (5 maiores):
1º Brasil - 269
2º Coréia - 264
3º India - 176
4º Itália - 99
5º EUA - 93
Humbertho Mattar