O documento discute o método de pontos de função para medir o esforço no desenvolvimento de software. Em três frases:
1) Pontos de função medem a funcionalidade entregue ao usuário de forma independente da tecnologia ou estilo de programação utilizado.
2) O método foi proposto em 1979 e formalizado em 1984, tendo como objetivo mensurar a funcionalidade oferecida aos usuários de forma independente da tecnologia utilizada para a implementação.
3) A análise de pontos de função permite determinar o tamanho de uma aplic
2. Pontos de Função
Medem a funcionalidade entregue ao
usuário.
Independem de:
– plataforma ou linguagem de programação;
– estilo de programação utilizado.
Permitem comparações entre
empresas, linguagens, etc.
3. Pontos de Função
Histórico
– Foram propostos por Allan Albrecht em
1979.
– A formalização das regras de contagem
teve início em 1984, pela IBM.
– Em 1986 foi criado o IFPUG:
International Function Points Users Group.
– Atualmente, o manual de contagem
encontra-se na versão 4.1.1.
4. Pontos de Função
Objetivos
– Mensurar a funcionalidade que o software
oferece a seus usuários.
Independentemente da tecnologia utilizada
para implementação.
– Oferecer uma forma de contagem:
simples o suficiente para minimizar o overhead
gerado pela medição; e,
consistente entre diferentes projetos e
organizações.
5. Pontos de Função
A Análise de Pontos de Função (APF)
permite:
– determinar o tamanho de uma aplicação a
partir da funcionalidade nela contida;
– mensurar o desenvolvimento de software
para analisar qualidade e produtividade;
– estimar custo e recursos necessários ao
desenvolvimento ou manutenção;
– normalizar dados para comparação.
6. Pontos de Função
Principais vantagens:
– Transparência para o usuário final.
– Apoio à estimativa de tempo, recursos e
custos:
desde o início do ciclo de desenvolvimento
mesmo sem ter todas as informações
necessárias sobre o sistema.
– Melhora na qualidade dos contratos de
terceirização.
7. ETAPAS DO PROCESSO
1. Identificação das funções do sistema1. Identificação das funções do sistema
2. Classificação de cada função quanto à complexidade2. Classificação de cada função quanto à complexidade
funcional relativa como: simples, média ou complexafuncional relativa como: simples, média ou complexa
3. Cálculo dos pontos de função brutos através da3. Cálculo dos pontos de função brutos através da
aplicação dos pesos de acordo com uma tabelaaplicação dos pesos de acordo com uma tabela
específicaespecífica
4. Avaliação de 14 características gerais do sistema4. Avaliação de 14 características gerais do sistema
5. Determinação do Fator de Ajuste5. Determinação do Fator de Ajuste
6. Cálculo dos pontos de função ajustados6. Cálculo dos pontos de função ajustados
8. Contagem de Pontos de Função
Tipos de Pontos de Função:
Entradas externas:
Processo elementar no qual dados cruzam a
fronteira da aplicação de fora para dentro com
o objetivo de alterar o comportamento da
aplicação ou dados.
Consultas externas:
Processo elementar no qual dados cruzam a
fronteira da aplicação de fora para dentro sem
envolver cálculos ou alteraçào de dados.
9. Contagem de Pontos de Função
Tipos de Pontos de Função
Saídas externas:
Processo elementar no qual dados
cruzam a fronteira da aplicação de
dentro para fora.
Arquivos lógicos internos:
Grupo de dados logicamente correlatos,
identificável pelo usuário, mantido
dentro da fronteira da aplicação.
10. Contagem de Pontos de Função
Tipos de Pontos de Função
Arquivos de interface externa:
Grupo de dados logicamente correlatos,
identificável pelo usuário, mantido por
outra aplicação.
12. Contagem de Pontos de Função
Identificação de funções de transação
Exemplo – em um sistema de biblioteca
Incluir Obra
Alterar dados existente
Consultar lista de títulos
Registrar empréstimo
Emitir relatório de empréstimos por período
...
13. Contagem de Pontos de Função
Contagem de elementos:
Para cada função de dados:
Contar os Tipos de registros e os Campos de
dados.
Para cada função de transação:
Contar os Arquivos referenciados e os Campos
de dados.
Classificar cada tipo de função quanto à
complexidade: Baixa, Média ou Alta.
14. Contagem de Pontos de Função
Atribuição de pesos:
Cada tipo de função possui um peso, de
acordo com sua complexidade.
O peso corresponde à quantidade de PF
não ajustados que a função agrega à
aplicação.
Somando-se os pesos de todas as
funções, obtém-se o total de PF não
ajustados.
15. Contagem de Pontos de Função
Atribuição de pesos – tabela de referência
Função C. Baixa C. Média C. Alta
ALI 7 10 15
AIE 5 7 10
EE 3 4 6
SE 4 5 7
CE 3 4 6
16. PONTOS DE FUNÇÃO É APLICADO ATRAVÉS DE 03 PASSOS:
1) Completar a seguinte tabela:
Fator de Ponderação
Parâmetro Contagem Simples Médio Complexo
No. de entradas x 3 4 6
do usuário
No. de saídas x 4 5 7
do usuário
No. de consultas x 3 4 6
do usuário
No. de arquivos x 7 10 15
No. de interfaces x 5 7 10
externas
Contagem-Total
ANÁLISE DE PONTOS DE FUNÇÃOANÁLISE DE PONTOS DE FUNÇÃO
17. PONTOS POR FUNÇÃO É APLICADO ATRAVÉS DE 03 PASSOS:
1) Completar a seguinte tabela:
Fator de Ponderação
Parâmetro Contagem Simples Médio Complexo
No. de entradas x 3 4 6
do usuário
No. de saídas x 4 5 7
do usuário
No. de consultas x 3 4 6
do usuário
No. de arquivos x 7 10 15
No. de interfaces x 5 7 10
externas
Contagem-Total
entradas de usuário (formulários)
que forneçam dados estáticos
ANÁLISE DE PONTOS DE FUNÇÃOANÁLISE DE PONTOS DE FUNÇÃO
18. PONTOS POR FUNÇÃO É APLICADO ATRAVÉS DE 03 PASSOS:
1) Completar a seguinte tabela:
Fator de Ponderação
Parâmetro Contagem Simples Médio Complexo
No. de entradas x 3 4 6
do usuário
No. de saídas x 4 5 7
do usuário
No. de consultas x 3 4 6
do usuário
No. de arquivos x 7 10 15
No. de interfaces x 5 7 10
externas
Contagem-Total
saídas de usuário que forneçam
informações (cada página de um website)
ANÁLISE DE PONTOS DE FUNÇÃOANÁLISE DE PONTOS DE FUNÇÃO
19. PONTOS POR FUNÇÃO É APLICADO ATRAVÉS DE 03 PASSOS:
1) Completar a seguinte tabela:
Fator de Ponderação
Parâmetro Contagem Simples Médio Complexo
No. de entradas x 3 4 6
do usuário
No. de saídas x 4 5 7
do usuário
No. de consultas x 3 4 6
do usuário
No. de arquivos x 7 10 15
No. de interfaces x 5 7 10
externas
Contagem-Total
entrada on-line de formulários que
resulte em saída on-line
ANÁLISE DE PONTOS DE FUNÇÃOANÁLISE DE PONTOS DE FUNÇÃO
20. PONTOS POR FUNÇÃO É APLICADO ATRAVÉS DE 03 PASSOS:
1) Completar a seguinte tabela:
Fator de Ponderação
Parâmetro Contagem Simples Médio Complexo
No. de entradas x 3 4 6
do usuário
No. de saídas x 4 5 7
do usuário
No. de consultas x 3 4 6
do usuário
No. de arquivos x 7 10 15
No. de interfaces x 5 7 10
externas
Contagem-Total
cada arquivo lógico
ANÁLISE DE PONTOS DE FUNÇÃOANÁLISE DE PONTOS DE FUNÇÃO
21. PONTOS POR FUNÇÃO É APLICADO ATRAVÉS DE 03 PASSOS:
1) Completar a seguinte tabela:
Fator de Ponderação
Parâmetro Contagem Simples Médio Complexo
No. de entradas x 3 4 6
do usuário
No. de saídas x 4 5 7
do usuário
No. de consultas x 3 4 6
do usuário
No. de arquivos x 7 10 15
No. de interfaces x 5 7 10
externas
Contagem-Total
todas as interfaces usadas para transmitir
informação para outro sistema
ANÁLISE DE PONTOS DE FUNÇÃOANÁLISE DE PONTOS DE FUNÇÃO
22. CÁLCULO DE PONTOS DE FUNÇÃO
SIMPLES
MÉDIA
COMPLEXA
SIMPLES
MÉDIA
COMPLEXA
SIMPLES
MÉDIO
COMPLEXO
99
52
12
163
32
30
28
90
91
20
15
126
054
433433
ENTRADAS
TOTAL
SAÍDAS
TOTAL
ARQUIVOS
TOTAL
---
33
13
2
48
8
6
4
18
13
2
1
16
--
3
4
6
4
5
7
7
10
15
--
--
---»»
TOTAL BRUTO DE PONTOS DE FUNÇÃO = 433TOTAL BRUTO DE PONTOS DE FUNÇÃO = 433
ANÁLISE DE PONTOS DE FUNÇÃOANÁLISE DE PONTOS DE FUNÇÃO
23. Passos para calcular o fator de ajuste:
Avaliar o impacto de cada uma das
quatorze características atribuindo para cada
característica um peso de 0 a 5.
Calcular o nível de influência através da
soma dos pesos de cada uma das
características.
Calcular o fator de ajuste a partir da
equação Fator = (NI * 0,01) + 0,65.
Contagem de Pontos de Função
24. Critério de Avaliação das
Características Gerais e seu NI
Cada uma das 14 características gerais deve ser avaliada e
a ela atribuído um nível de influência que varia de 0 a 5.
Nível de Influência Descrição %
0 Não existe ou não exerce
1 Pouca Influência 1 - 20
2 Influência Moderada 21 - 40
3 Influência Média 41 - 60
4 Influência Significativa 61 - 80
5 Influência Total 81 - 100
25. 2) Responder as questões 1-14, considerando a escala de 0 a 5:
influência 0 1 2 3 4 5
nenhuma pouca moderada média significante essencial
1. É requerida comunicação de dados?
2. Existem funções de processamento
distribuído?
3. O desempenho é crítico?
4. A conversão e a instalação estão incluídas no
projeto?
5. O sistema exige backup e recuperação
confiáveis?
6. São requeridas entrada de dados on-line?
7. Entradas, saídas, arquivos e consultas são
complexos?
8. Os arquivos são atualizados on-line?
9. O processamento interno é complexo?
10. O código é projetado para ser reusával?
11. As entradas on-line requerem que as
transações de entrada sejam construídas
com várias telas e operações?
12. O sistema funcionará num sistema
operacional existente e intensamente
utilizado?
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?
ANÁLISE DE PONTOS DE FUNÇÃOANÁLISE DE PONTOS DE FUNÇÃO
26. NÍVEIS DE INFLUÊNCIA
FATOR DE AJUSTE
0,65 + (0,01 * NI) = FA
0,65 + (0,01 * 42) = 1,07
PONTOS DE FUNÇÃOPONTOS DE FUNÇÃO
AJUSTADOAJUSTADO
PF * FA = PFPF * FA = PFajustadoajustado
433 * 1,07 = 463433 * 1,07 = 463
CARACTERÍSTICAS
1. COMUNICAÇÃO DE DADOS 3
2. FUNÇÕES DISTRÍBUIDAS 0
3. DESEMPENHO 4
4. CARGA DE CONFIGURAÇÃO 4
5. VOLUME DE TRANSAÇÕES 5
6. ENTRADA DE DADOS ON-LINE 5
7. EFICIÊNCIA DO USUÁRIO FINAL 4
8. ATUALIZAÇÃO ON-LINE 1
9. PROCESSAMENTO COMPLEXO 3
10. REUTILIZAÇÃO 0
11. FACILIDADE DE IMPLEMENTAÇÃO 4
12. FACILIDADE DE OPERAÇÃO 5
13. MÚLTIPLOS LOCAIS 0
14. FACILIDADE DE MUDANÇA 4
NÍVEL DE INFLUÊNCIA TOTAL (NI) 42
ANÁLISE DE PONTOS DE FUNÇÃOANÁLISE DE PONTOS DE FUNÇÃO
27. 3) Ajustar os Pontos por Função de acordo com a complexidade
do sistema, através da seguinte fórmula:
PF = Contagem-Total x 0,65 + 0,01 x (Fi)
14
i = 1
Fi = valores de ajuste da complexidade
das perguntas 1-14
MÉTRICAS
DERIVADAS
PRODUTIVIDADE =
QUALIDADE =
CUSTO =
DOCUMENTAÇÃO =
PF / pessoas-mês
erros / PF
$ / PF
pags.docum. / PF
ANÁLISE DE PONTOS DE FUNÇÃOANÁLISE DE PONTOS DE FUNÇÃO
28. PONTUAÇÃO
OO tamanhotamanho de uma sistema independe do ambientede uma sistema independe do ambiente
tecnológico ou metodologias utilizadas no seutecnológico ou metodologias utilizadas no seu
desenvolvimentodesenvolvimento
Um sistema de 500 PF terá o mesmo tamanhoUm sistema de 500 PF terá o mesmo tamanho
independente do ambienteindependente do ambiente
– Ex: Cliente-servidor, mainframe, orientação a objeto, etcEx: Cliente-servidor, mainframe, orientação a objeto, etc
OO esforçoesforço para desenvolver um sistema depende dapara desenvolver um sistema depende da
produtividade do ambiente tecnológico selecionadoprodutividade do ambiente tecnológico selecionado
ANÁLISE DE PONTOS DE FUNÇÃOANÁLISE DE PONTOS DE FUNÇÃO
29. Tamanho do sistema: 500 PF
Produtividade
• Ambiente A: 2,0 horas/PF
• Ambiente B: 5,0 horas/PF
Tempo de Desenvolvimento
• Ambiente A: 1.000 horas/homem
• Ambiente B: 2.500 horas/homem
PRODUTIVIDADE - ExemploPRODUTIVIDADE - Exemplo
30. Solicitação de melhoria de um sistemaSolicitação de melhoria de um sistema
Cliente requer a mudança em 6 mesesCliente requer a mudança em 6 meses
Acredita-se que a modificação pode ser feitaAcredita-se que a modificação pode ser feita
com uma equipe de 3 técnicos no prazocom uma equipe de 3 técnicos no prazo
solicitadosolicitado
O gerente de projetos é chamado a opinar ...O gerente de projetos é chamado a opinar ...
EXEMPLO DE UTILIZAÇÃO DA APFEXEMPLO DE UTILIZAÇÃO DA APF
31. As implementações solicitadas foram dimensionadasAs implementações solicitadas foram dimensionadas
pela APF em 750 PFpela APF em 750 PF
Modificações neste sistema registraram no passadoModificações neste sistema registraram no passado
produtividade de 25 PF/homem mêsprodutividade de 25 PF/homem mês
O gerente de projetos pode assumir o compromissoO gerente de projetos pode assumir o compromisso
ou negociar:ou negociar:
– mais pessoasmais pessoas - quantas ?- quantas ?
– maior prazomaior prazo - quando ?- quando ?
– menos modificaçõesmenos modificações - quanto ?- quanto ?
ANÁLISE DA SITUAÇÃOANÁLISE DA SITUAÇÃO
32. Alocar mais 2 técnicos qualificadosAlocar mais 2 técnicos qualificados
• 750 PF / (6 meses * 25 PF/hm) = 5 homens750 PF / (6 meses * 25 PF/hm) = 5 homens
Aumentar o prazo em 4 mesesAumentar o prazo em 4 meses
• 750 PF / (3 homens * 25 PF/hm) = 10 meses750 PF / (3 homens * 25 PF/hm) = 10 meses
Reduzir o volume de modificações em 40%Reduzir o volume de modificações em 40%
• 3 homens * 6 meses * 25 PF/hm = 450 PF3 homens * 6 meses * 25 PF/hm = 450 PF
OPÇÕES PARA O GERENTEOPÇÕES PARA O GERENTE
33. A indústria considera aplicações com mais de 500A indústria considera aplicações com mais de 500
Pontos de Função como complexas.Pontos de Função como complexas.
A produtividade média da linguagem JAVA fica em torno de 15 a 20A produtividade média da linguagem JAVA fica em torno de 15 a 20
horas/PFhoras/PF
Considerando a produtividade de 15 horas/PF e um produto a serConsiderando a produtividade de 15 horas/PF e um produto a ser
desenvolvido em JAVA com 671 PFdesenvolvido em JAVA com 671 PF
Conclui-se que o desenvolvimento das funcionalidades do produtoConclui-se que o desenvolvimento das funcionalidades do produto
levariam em média 10.065 horas (671 * 15) para serem implementadas.levariam em média 10.065 horas (671 * 15) para serem implementadas.
Ou seja, seriam necessários 76,3 homem-meses para desenvolver oOu seja, seriam necessários 76,3 homem-meses para desenvolver o
software considerando um mês com 22 úteis e um dia com 6 horas desoftware considerando um mês com 22 úteis e um dia com 6 horas de
produtividade efetiva (10.065 / (22*6)).produtividade efetiva (10.065 / (22*6)).
CONSIDERAÇÕESCONSIDERAÇÕES
34. VANTAGENS:VANTAGENS:
DESVANTAGENS:DESVANTAGENS:
•• Independentes da linguagemIndependentes da linguagem
•• Ideal para aplicações que usamIdeal para aplicações que usam
linguagem não procedimentallinguagem não procedimental
•• Baseados em dados mais fáceis deBaseados em dados mais fáceis de
serem conhecidos durante a evoluçãoserem conhecidos durante a evolução
do projetodo projeto
•• Cálculo baseado em dados subjetivosCálculo baseado em dados subjetivos
•• Não é uma medida direta; é apenas umNão é uma medida direta; é apenas um
númeronúmero
MÉTRICAS ORIENTADAS A FUNÇÃOMÉTRICAS ORIENTADAS A FUNÇÃO
35. Coletar dados, calcular e analisarColetar dados, calcular e analisar
métricas são passos que devem sermétricas são passos que devem ser
implementados para iniciar um programaimplementados para iniciar um programa
de métricasde métricas
CONSIDERAÇÕESCONSIDERAÇÕES
37. Contagem de Pontos de Função
Funções de transação
Funcionalidade Tipo Complexidade Pontos de Função
Consultar dados de
mercadoria
Consulta Externa Média 4
Incluir mercadoria Entrada Externa Média 4
Alterar mercadoria Entrada Externa Média 4
Excluir mercadoria Entrada Externa Média 4
Funções de dados
Arquivo Tipo Complexidade Pontos de Função
Mercadoria Arquivo Lógico
Interno
Simples 7
Fornecedor Arquivo Lógico
Interno
Simples 7
Total de pontos de função
Total de pontos de função não ajustados 4 + 4 + 4 + 4 + 7 + 7 = 30
Fator de ajuste 0,89
Total de pontos de função ajustados 30 x 0,89 = 26,7