You are on page 1of 62

Análise por Pontos de Função

APF

CARLOS AUGUSTO DE SOUZA LIMA

JOSÉ CORRÊA VIANA


OBJETIVOS

Medir funcionalidade do sistema de acordo com a


perspectiva do usuário;

Medir o desenvolvimento e manutenção do software


independente da tecnologia utilizada;

Comparar a produtividade entre diferentes ambientes de


desenvolvimento (P=PF/Esforço);

Prover uma forma para estimativa de software;

Fornecer um padrão para medição de software;


BENEFÍCIOS

Auxilia na análise Make or buy;

Apóia no gerenciamento do projeto de escopo


(aumento ou diminuição do escopo);

Completa o gerenciamento de requisitos (torna-se


mais sólido e completo);

Meio para fundamentar a negociação de contratos.


PROCEDIMENTO PARA CONTAGEM
ETAPA 1: DETERMINAR O TIPO DE CONTAGEM

Existem três tipos de contagem:

 Contagem de um projeto de desenvolvimento: usado para a


primeira instalação do software, um novo software;

 Contagem de um projeto de melhoria: contagem para


manutenção, exclusão, alteração ou inclusão de
funcionalidades (CRUD);

 Contagem de uma aplicação (ou baseline): mede a


funcionalidade de uma aplicação já instalada, fornecendo uma
medida atual da funcionalidade obtida pelo usuário da
aplicação.
ETAPA 2: IDENTIFICAR O ESCOPO DA CONTAGEM E A
FRONTEIRA DA APLICAÇÃO

Escopo da Contagem

 Define a funcionalidade que será incluída em uma particular contagem de


pontos de função;

 Define quais funções serão incluídas na contagem, podendo abranger:


 Todas as funcionalidades disponíveis;
 Apenas as funcionalidades efetivamente utilizadas pelo usuário;
 Algumas funcionalidades específicas;

 Se abrangerá um ou mais sistemas ou apenas parte de um sistema.


ETAPA 2: IDENTIFICAR O ESCOPO DA CONTAGEM E A
FRONTEIRA DA APLICAÇÃO

Fronteira da Aplicação

 Define o que é externo à aplicação;

 Interface conceitual entre a aplicação “interna” e o mundo


“externo” do usuário;

 Dependente da visão de negócio do usuário;

 Independente de considerações tecnológicas.


ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS

Arquivo Lógico Interno (ALI):

 Grupo de dados ou informações de controle;

 Identificáveis pelo usuário;

 Mantidos dentro da fronteira de aplicação;

 A principal intenção de um ALI é armazenar dados mantidos


por meio de um ou mais processos elementares da aplicação.
ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS

Arquivo de Interface Externa (AIE):

 Grupo de dados ou informações de controle;

 Identificáveis pelo usuário;

 Mantido dentro da fronteira de outra aplicação (referenciado pela


aplicação);

 A principal intenção de um AIE é armazenar dados referenciados por


meio de um ou mais processos elementares dentro da fronteira da
aplicação;

 Um AIE deve ser um ALI de outra aplicação.


ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS

Passo Ação Como Fazer

1 Identificar os ALI’s Aplicar as regras de identificação de


ALI’s

2 Identificar os AIE’s Aplicar as regras de identificação de


AIE’s

3 Determinar a complexidade Seguir os procedimentos para calcular


dos ALI’s e AIE’s e suas a complexidade e a contribuição para
contribuições contagem não ajustada de pontos de
função
ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS

Tabela de complexidade funcional dos ALI e AIE:

Tipos de dados
Tipos de Registros

####### < 20 20 – 50 > 50


1 Baixa Baixa Média
2-5 Baixa Média Alta
>5 Média Alta Alta
Um ALI contendo 45 tipos de dados e 1 tipo de registro é de
complexidade baixa e outro AIE contendo 55 tipos de dados e 1 tipo de
registro é de complexidade média.
ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS

Cada ALI ou AIE deve ser classificado de acordo com


sua complexidade, com base em:

 Número de Tipos de Dados (TD);

 Número de Tipos de Registros (TR);


ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS

Determinação da Contribuição dos PF não ajustados:

Tipo de Função Baixa Média Alta


Arquivo Lógico Interno (ALI) 7 PF 10 PF 15 PF
Arquivo de Interface Externa (AIE) 5 PF 7 PF 10 PF
ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS

 Tipos de Dados: são campos reconhecidos pelo usuário como únicos e não
repetidos, incluindo atributos de chave estrangeira, mantidos no arquivo.

 Tipos de Registros: são subgrupos de dados contidos dentro de um ALI ou


AIE. Subgrupos são tipicamente representados em um DER como entidades
de Subtipos. São classificados em:

 Opcionais: usuário tem a opção de não informar no processo elementar


que cria ou adiciona dados ao arquivo;

 Obrigatórios: usuário requer que sejam sempre utilizados para criar ou


adicionar dados ao arquivo
ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS

 Exemplo entidade de Subtipos:

 Designam entidades cujas ocorrências herdam atributos de uma super-entidade e que


possuem atributos específicos às ocorrências dessa mesma sub-entidade;

 Endereço Comercial e Endereço Residencial são Subtipos de Endereço (que é um


Supertipo).
ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS
EXEMPLO

Exemplo:

 CD de Música;

 CD: Cantor, Grupo, Gravadora, Nome, Data e Músicas;

 Música: Nome da Música, Compositor e Tempo de Duração;

ALI: 1 (O CD de música);
Tipo de Dado (TD): 9 (Campos únicos) ;
Tipo de Registro (TR): 2 (Grupo CD e Grupo Música).
ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS
EXEMPLO

 Exemplo:

Controle de Ponto – Análise de Pontos de Função – pág. 96


Descrição Tipo TD TR Complexidade
Pessoa AIE 4 1 BAIXA
Apontamento ALI 4 1 BAIXA
Justificativa ALI 3 1 BAIXA

 Pessoa (AIE): matrícula, nome, senha criptografada e tipo


(gerente ou trabalhador);
 Apontamento (ALI): matrícula, data, horário de entrada,
horário de saída;
 Justificativa (ALI): matrícula, data, texto.
ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS
EXEMPLO

Porque complexidade baixa? Lembre-se da tabela de


complexidade:
Tipos de dados
Tipos de Registros

###### < 20 20 – 50 > 50


1 Baixa Baixa Média
2-5 Baixa Média Alta
>5 Média Alta Alta

Descrição Tipo TD TR Complexidade


Pessoa AIE 4 1 BAIXA
Apontamento ALI 4 1 BAIXA
Justificativa ALI 3 1 BAIXA
ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS
EXEMPLO

Tipo de Função Complexidade Totais por Tipo Totais por Tipo


Funcional de Complexidade de Função

ALI 2 (BAIXA) x 7 = 14
0 (MÉDIA) x 10 =0 14
0 (ALTA) x 15 =0
AIE 1 (BAIXA) x 5 =5
0 (MÉDIA) x 7 =0 5
0 (ALTA) x 10 =0

Utilização da Tabela de Contribuição para chegar ao total de PF não ajustados


Tipo de Função Baixa Média Alta
Arquivo Lógico Interno (ALI) 7 PF 10 PF 15 PF
Arquivo de Interface Externa (AIE) 5 PF 7 PF 10 PF
CONTAGEM DAS FUNÇÕES DE DADOS NÃO AJUSTADOS
EXEMPLO

• Internal Logical File (ILF): Arquivo Lógico Interno (ALI);

•External Interface File (EIF): Arquivo de Interface Externa (AIE).


ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Representam a funcionalidade fornecida ao usuário


para atender às suas necessidades de
processamentos de dados pela aplicação.

São classificadas em:

 Entradas Externas (EE);

 Saídas Externas (SE);

 Consultas Externas (CE).


ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Entradas Externas (EE):

 Processo elementar;

 Processa dados ou informações de controle recebidos de fora


da fronteira de aplicação;

 Principal intenção é manter (incluir, alterar ou excluir dados)


um ou mais ALI e/ou manter o comportamento do sistema.
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Entradas Externas (EE) – Exemplos:

 Transações que recebem dados externos utilizados na


manutenção de ALI’s;

 Janela que permite adicionar, excluir ou alterar registros


arquivos contribui com 3 entradas externas.
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Exemplo – Entrada Externa (EE):


ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Saída Externa (SE):

 Processo elementar;

 Envia dados ou informações de controle para fora da fronteira de


aplicação;

 Principal intenção é apresentar informação para o usuário através de


lógica de processamento, ou seja, conter ao menos uma fórmula
matemática ou cálculo;

 Criar dados derivados;

 Manter um ou mais ALI’s e/ou alterar o comportamento do sistema.


ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Saída Exerna (SE) – Exemplos:

 Relatórios com totalização de dados;

 Consultas com cálculos ou apresentação de dados derivados;

 Informações em formato gráfico;


ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Exempo – Saída Externa (SE):


ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

 Consulta Externa (CE):

 Processo Elementar;

 Envia dados ou informações de controle para fora da fronteira da aplicação;

 Apresentar informação ao usuário por meio de uma simples recuperação de


dados ou informações de controle de ALI’s ou AIE’s;

 A lógica de processamento não contém fórmulas matemáticas ou cálculos;

 Não cria dados derivados;

 Não altera o comportamento do sistema.


ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Consulta Externa (CE) – Exemplos:

 Informações em formato gráfico;

 Menus gerados dinamicamente com base em configuração da


aplicação.
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Exemplo – Consulta Externa (CE):


ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS
TERMOS UTILIZADOS

Processo Elementar: menor quantidade de


unidade significativa para o usuário final;

 Inclusão, alteração, consulta e exclusão são os mais aplicados;

 Regras de negócio podem alterar um registro;

 “Alterar dados” por exemplo; pode contemplar os vários


processos de negócios existentes.
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS
TERMOS UTILIZADOS

Informação de Controle: dados que influenciam um


processo elementar da aplicação que está sendo controlada;

Especificam o quê, quando ou como os dados devem ser


processados; são parâmetros;

Exemplos:

 O quê: determinado campo especifica que o cálculo da parcela deve


contemplar somente o valor vencido ou o valor corrigido com juros e
multa;
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS
TERMOS UTILIZADOS

 Quando: Uma enquete pode ter um fechamento automático


(votações finalizadas) definido pela data de seu encerramento;

 Como: durante a compra de uma passagem aérea, o cliente informa


em um campo como deseja receber a confirmação da compra: por e-
mail, torpedo SMS ou fax.

Em uma loja de comércio eletrônico, a operação de


compra possui uma informação de controle – forma de
pagamento – que determina como o processo ocorrerá:
emissão de boleto, débito na conta ou cartão de crédito;

Cada forma de pagamento possui um tratamento


diferenciado.
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS
TERMOS UTILIZADOS

Dado Derivado: Informação criada a partir de dados


existentes, gerado através de ALI ou AIE;

Dado apresentado pelo sistema, porém não está


armazenado em um arquivo lógico;

Criado através de uma lógica de processamento, como


cálculo por exemplo;

Total de faturamento, tempo médio entre falhas,


participação em % de um produto em uma venda.
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS
TERMOS UTILIZADOS

Lógica de Processamento:
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS
TERMOS UTILIZADOS
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Determinação da Complexidade:

 Cada EE, SE ou CE é classificada em relação à sua


Complexidade baseado no número de Arquivos Referenciados
(AR) e no número e Tipos de Dados (TD);

 Determinadas as quantidades de AR’s e TD’s sua complexidade


pode ser medida pelas seguintes tabelas:
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Tipos de Dados (TD’s)


Referenciados

<5 5 – 15 > 15
Arquivos

(AR’s)

<2 BAIXA BAIXA ALTA


2 BAIXA MÉDIA ALTA
>2 MÉDIA ALTA ALTA
Tabela de complexidade para entradas externas (EE’s)

Tipos de Dados (TD’s)


Referenciados

<5 5 – 15 > 15
Arquivos

(AR’s)

<2 BAIXA BAIXA ALTA


2 BAIXA MÉDIA ALTA
>2 MÉDIA ALTA ALTA
Tabela de complexidade para saídas externas (SE’s) e consultas extenas (CE’s)
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Arquivo Referenciado (AR)

 É um ALI lido ou mantido pela função do tipo de transação;

OU
 AIE lido pela função do tipo de transação.

• Tipo de Dado (TD): Campo único, reconhecido pelo


usuário, não repetido.
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Após a determinação da complexidade, se calcula a


contribuição através da seguinte tabela:

TIPO DE FUNÇÃO BAIXA MÉDIA ALTA


Entrada Externa (EE) 3 PF 4 PF 6 PF
Saída Externa (SE) 4 PF 5 PF 7 PF
Consulta Externa (CE) 3 PF 4 PF 6 PF

Tabela de contribuição dos pontos de função não ajustados das funções do tipo de transação
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Exemplo de contribuição de Funções do Tipo de


Transação:
Tipo de Função Complexidade Totais por Tipo Totais por Tipo
Funcional de de Função
Complexidade
2 (BAIXA) x 3 =6
EE 2 (MÉDIA) x 4 =8 14
0 (ALTA) x6 =0
1 (BAIXA) x 4 =4
SE 2 (MÉDIA) x 5 = 10 14
0 (ALTA) x7 =0
1 (BAIXA) x 3 =3
CE 0 (MÉDIA) x 4 =0 3
0 (ALTA) x6 =0
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS

Observa-se que as EE contribuem com 14 pontos de função


não ajustados para a aplicação, as SE com 14 pontos de função
não ajustados e as CE com 3 pontos de função não ajustados.
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS
EXEMPLO
ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS
VISÃO GERAL

Consultas Fronteira da Aplicação


Saídas
Externas Externas
(Sem Dados Derivados)
APLICAÇÃO ( Com Dados Derivados)

Arquivos Lógicos Internos

Entradas Arquivos de Outra Aplicação


Externas Interface
Arquivo Lógico Interno
Externa
Funções de dados
Funções transacionais
ETAPA 5: DETERMINAR O FATOR DE AJUSTE

O Valor de Fator de Ajuste é baseado em 14


características gerais de sistema (CGS):
1. Comunicação de Dados;
2. Processamento de Dados Distribuído (Funções
Distribuídas);
3. Performance;
4. Configuração do equipamento;
5. Volume de Transações;
6. Entrada de Dados On-Line;
7. Interface com o usuário;
8. Atualização On-Line;
9. Processamento Complexo;
10. Reusabilidade;
11. Facilidade de Implantação;
12. Facilidade Operacional;
13. Múltiplos Locais;
14. Facilidade de mudanças.
ETAPA 5: DETERMINAR O FATOR DE AJUSTE

Cada característica possui um nível de influência


sobre a aplicação que pode variar de um intervalo de 0
a 5:

 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.
ETAPA 5: DETERMINAR O FATOR DE AJUSTE

O Valor Fator de Ajuste (VFA) é calculado pela


fórmula:

VFA = (TDI x 0,01) + 0,65

TDI = somatório dos níveis de influência das


características gerais
ETAPA 5: DETERMINAR O FATOR DE AJUSTE

Exemplo: Em um sistema apurou-se que o nível de


influência de cada uma das características gerais é o
seguinte: CGS Peso
CGS Peso Atualização Online 5
Comunicação de Dados 5 Complexidade de 2
Processamento Processamento
2
Distribuído
Reusabilidade 0
Performance 2
Facilidade de Instalação 1
Configuração Altamente 2
Utilizada
Facilidade de Operação 2
Volume de Transações 2
Entrada de Dados Online 5 Múltiplos Locais 2
Eficiência do Usuário Final 2 Facilidade de Mudanças 2
ETAPA 5: DETERMINAR O FATOR DE AJUSTE

Logo, o nível de influência será: TDI = 34.

E o fator de ajuste: VAF = (34 x 0,01) + 0,65 = 0,99.


ETAPA 5: DETERMINAR O FATOR DE AJUSTE

Fórmula para contagem inicial da aplicação:

AFP = ADD x VAF

 AFP: Valor dos pontos de função ajustados;

 ADD: Valor total dos Pontos de Função não ajustados;

 VAF: Valor do fator de ajuste da aplicação.


ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

 Calcule os pontos de função para um sistema que mantém


um Cadastro de Clientes onde é possível tirar uma listagem
por ordem alfabética e exportar o cadastro para outro
sistema através de um arquivo texto.

 Contagem

 ALI = 01(Arquivo de Clientes)


 AIE = 0
 EE = 01 (Processo de inclusão)
 SE = 01 (Listagem por ordem alfabética)
 CE = 01 (Exportação de Arquivo Texto)
ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

Nesse exemplo considera-se que todos os tipos de


função tem complexidade BAIXA;

ADD = ALI x 7 + AIE x 5 + EE x 3 + SE x 4 + CE x 3


=1x7+0x5+1x3+1x4+1x3
= 17 (Pontos de função não ajustados)
ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

Contado-se os fatores de ajuste segundo os níveis


de influência temos, considerando-se TDI
(somatório) = 45, temos:

VAF = 0,65 + (0,01*45 ) = 1,1 (Fator de Ajuste)

AFP = VAF x ADD = 1,1 x 17 = 18,7


ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

Estimando custo, tempo e prazo:

 Produtividade no desenvolvimento = Horas por PF

 Esforço de desenvolvimento = Produtividade(H/PF) *


Tamanho(PF)

 Custo de software = Tamanho (PF) * Custo(R$/PF)


ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

1. Considerando que uma produtividade média de 10 hrs /


PF;

2. Considerando que a média de jornada de trabalho é de 6


horas;

Possuem 4 pessoas alocadas ao desenvolvimento da


aplicação;

3. Considerando que o valor de uma hora de trabalho é de


R$ 25,00.
ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

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


ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

Algumas aplicações da APF:

 Produtividade no desenvolvimento: Horas por PF

 Esforço de desenvolvimento: Produtividade (H/PF) * Tamanho


(PF)

 Custo de software: Tamanho (PF) * Custo (R$/PF)

 Taxa de produção de software: PF/Mês; PF/Ano

 Taxa de manutenção de software: PF manutenção / PF aplicativo


ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

 Influências:

 Linguagem de codificação;

 Tamanho do sotware;

 Exeperiência da equipe;

 Métodos estruturados;

 Ambiente de desenvolvimento;

 Qualidade de expansão/manutenção;

 Reutilização de código;

 Métodos de remoção de erros;

 Organização da equipe.
ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

 Vantagens:

 Uma ferramenta para determinar o tamanho de um pacote de aplicação comprado contando


todas as funções incluídas no pacote;

 Uma ferramenta para ajudar os usuários a determinar o benefício de um pacote de aplicação


para a sua organização contando funções que especificamente atendam seus requisitos;

 Uma ferramenta para medir as unidades de um produto de software para apoiar a análise de
qualidade e produtividade;

 Um veículo para calcular custos e recursos requeridos para desenvolvimento e manutenção de


software;

 Um fator de normalização para comparação de softwares.


ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

Limitações e/ou desvantagens:

 Para ter uma boa utilização é necessária uma base histórica;

 É necessário ter uma boa visão (profundidade do sistema para


poder estimar com mais segurança);

 Utilização de pesos para definir a classificação das funções.


ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

 International Function Point Users Group: http://www.ifpug.org/

 IFPUG -Function Point Counting Practices Manual

 BFPUG Brazilian Function Point Users Group:


http://www.bfpug.com.br/
 “Análise de Pontos de Função – Medição, Estimativas e
Gerenciamento de Projetos de Software”, Carlos Eduardo Vazquez
 http://www.analisetotal.hpg.ig.com.br/Material/APFTexto.pdf

 www.cin.ufpe.br/~if720/slides/Pontos-de-funcao.ppt
ETAPA 5: DETERMINAR O FATOR DE AJUSTE
EXEMPLO

OBRIGADO!
Carlos Augusto de Sousa Lima:

 carloslima_2008@hotmail.com

José Corrêa Viana

 jcorreavian@hotmail.com

You might also like