You are on page 1of 49

FPA

Function Point Analysis

(Análise de Pontos de Função)

Release 4.0 - IFPUG
Análise de Pontos de Função 2

ÍNDICE
1. INTRODUÇÃO ....................................................................................................................................................... 3
1.1 - HISTÓRICO ......................................................................................................................................................... 3
2. VISÃO GERAL DA FPA ...................................................................................................................................... 5
2.1. OBJETIVOS DA ANÁLISE POR PONTOS DE FUNÇÃO .............................................................................. 5
2.2. APLICAÇÕES DA FPA.................................................................................................................................... 6
2.3. TIPOS DE CÁLCULO DA TÉCNICA FPA...................................................................................................... 6
2.4. VISÃO GERAL DE UMA APLICAÇÃO ......................................................................................................... 7
2.5. RESUMO DO CÁLCULO DE PONTOS DE FUNÇÃO ................................................................................................... 7
3. REGRAS DE CONTAGEM................................................................................................................................... 9
3.1. IDENTIFICAÇÃO E CLASSIFICAÇÃO DE FUNÇÕES ................................................................................................. 9
3.2. EXEMPLO ...................................................................................................................................................... 23
3.3. EXERCÍCIO.................................................................................................................................................... 24
3.4. CARACTERÍSTICAS GERAIS DOS SISTEMAS......................................................................................... 25
3.5. EXEMPLO ...................................................................................................................................................... 31
3.6. EXERCÍCIO.................................................................................................................................................... 31
4. CÁLCULO DE PONTOS DE FUNÇÃO ........................................................................................................... 31
4.1. CÁLCULO DE PONTOS DE FUNÇÃO NÃO AJUSTADOS....................................................................... 31
4.2. CÁLCULO DO FATOR DE AJUSTE............................................................................................................. 33
4.3. CÁLCULO DE PONTOS DE FUNÇÃO AJUSTADOS ................................................................................. 34
5 DIMENSIONANDO PROJETOS COM FPA .................................................................................................... 41
5.1. MÉTODO DE ESTIMATIVA POR PERCENTUAL..................................................................................... 41
5.2. EXEMPLO ...................................................................................................................................................... 43
5.3. EXERCÍCIO.................................................................................................................................................... 43
6. APÊNDICE........................................................................................................................................................... 44
A. APLICAÇÕES DA TÉCNICA FPA .................................................................................................................. 44
Análise de Pontos de Função 3

1. INTRODUÇÃO
Atualmente, o nível de competitividade das organizações está diretamente ligado à eficiência
de seus sistemas de informação, que estão cada vez mais baseados em computadores. Com o
amadurecimento desses sistemas, o volume dos programas vem aumentando e assim os custos
de desenvolvimento e manutenção vão se tornando parâmetros críticos para gerenciamento.

E como gerenciar a área de desenvolvimento de sistemas dentro da empresa ?

No aspecto do controle econômico do software, uma tarefa essencial é a de determinar o valor
ou tamanho dos sistemas, pois não se pode gerenciar aquilo que não se pode medir.
Esta medida, para ser aceitável, deveria:

ser independente da tecnologia empregada no desenvolvimento do software.

produzir resultados consistentes.

Além disso, seria desejável que pudesse:

ser obtida por não-especialistas em processamento de dados

ser compreendida pelo usuário final

ser utilizada para estimativas

ser coletada automaticamente.

1.1 - Histórico
Por pelo menos uns cem anos, a definição econômica padrão de produtividade tem sido “bens
ou serviços produzidos por unidade de trabalho e custo”. Esta definição era extremamente
difícil de ser aplicada ao software devido à discordância sobre o que exatamente constituía
“bens ou serviços” num projeto de desenvolvimento de aplicação.

Procurando desenvolver uma forma de medida de sistemas que fosse aceitável e consistente,
foi gasto muito esforço para tentar formalizar este processo. Algumas técnicas foram
implementadas visando mensurar os sistemas e identificar a produtividade na área de
informática:

a. Contagem de Linhas do Código Fonte
A primeira forma encontrada para medir o tamanho de um sistema foi a contagem de suas
linhas de código. Esta técnica tem como vantagem a simplicidade, mas está muito presa à
linguagem utilizada, tendo pouco significado para o usuário final e podendo levar a uma falsa
idéia de que aumentar a produtividade significa aumentar o número de linhas desenvolvidas
durante um período.
Além disso, esta técnica só é aplicável após a codificação dos programas, não permitindo
estimativas em projetos.

b. Sistema Métrico de Halstead
Em 1972, Maurice Halstead da Universidade de Purdue iniciou estudos sobre algoritmos
tentando testar empiricamente a hipótese de que os operadores (comandos e palavras
reservadas) e os operandos (itens de dados) em um programa deviam se relacionar com a
quantidade de erros no algoritmo.
Análise de Pontos de Função 4

Dado o sucesso do estudo, a pesquisa continuou em 1977, dando origem a um sistema que
consiste em registrar para cada programa desenvolvido o número de operadores e operandos
utilizados, permitindo o cálculo do tamanho do programa e o esforço de programação.
Esta medida é independente da linguagem de programação, mas está baseada na sintaxe dos
programas e não considera seu conteúdo. Outra desvantagem é que seu processo é
incompreensível ao usuário final.
Além disso, esta técnica só é aplicável após a codificação dos programas, não permitindo
estimativas em projetos.

c. Análise de Pontos de Função
No início da década de 70, pesquisadores do Serviço de Processamento de Dados da IBM, a
pedido do grupo de usuários (GUIDE), começaram a analisar centenas de programas para
isolar as variáveis críticas, que determinam a produtividade da programação. Descobriam que
poderiam basear a avaliação de um sistema, medindo-se o valor das funções executadas pelos
programas, em vez de utilizar como base o volume ou a complexidade do código dos
programas.
Em 1979, Allan J. Albrech (IBM, White Plains), prosseguindo essas pesquisas, introduziu uma
técnica de avaliação conhecida como Análise de Pontos de Função (FPA - Function Point
Analysis). A técnica FPA mede uma aplicação baseada na visão externa do usuário, sendo,
portanto, independente da linguagem utilizada, permitindo calcular o esforço de programação e
auxiliando o usuário final a melhorar o exame e avaliação de projetos.
Em 1986, foi formado o Grupo Internacional de Usuários da FPA (IFPUG - International
Function Point Users Group) destinado a divulgar informações e novas implementações da
técnica a todos os seus associados.
Pontos de função não são estáticos nem deveriam ser. As regras para contar pontos de função
devem ser revistas e expandidas periodicamente para representar o modelo em termos de
tecnologias novas e modificadas.
Até 1988, mais de 25.000 sistemas de informação haviam sido avaliados utilizando a FPA e a
taxa de crescimento de seu uso tem dobrado a cada ano, sendo bem aceita como padrão
mundial de medição de sistemas de informação.

Atualmente essa técnica vem sendo muito utilizada nos EUA, Canadá, Reino Unido, Austrália
e Nova Zelândia. Incluídas entre as principais organizações usuárias estão as seguintes
empresas:

UNISYS Air Canada Air New Zealand
American American AT&T
Airlines Express
Bank of America Bank of N. Boeing
Scotia
British Airways Caterpillar CBS Records
Delta Airlines DU PONT Eastman Kodak
EXXON FORD Fujitsu
General Eletric IBM Jonhson & Jonhson
NCR Pacific Bell Rolls Royce
Royal Bank of SHELL Texas Instruments
Canada
3M U.S.Navy XEROX
Análise de Pontos de Função 5

Quadro Comparativo das Técnicas
Na figura 1.1 apresentamos um resumo das principais características das técnicas apresentadas
nesta seção.

Características Linhas Sistema Pontos
de de de
Código Halstead Função
1. Independência de não sim sim
tecnologia
2. Produção de resultados sim sim sim
consistentes
3. Avaliação por usuários não não sim
sem conhecimento de PD
4. Significância para o não não sim
usuário final
5. Utilização em estimativas não não sim
6. Contabilização automática sim sim sim (*)
Figura 1.1: Quadro Comparativo das Técnicas Apresentadas

(*) Existem ferramentas no mercado, sem certificação do IFPUG, que permitem o cálculo
automático dos Pontos de Função a partir de uma especificação da análise e/ou código-fonte da
aplicação.

Conclusão
A criação dos Pontos de Função causou uma revolução na engenharia de software. O impacto
dos Pontos de Função nos estudos de produtividade de software foi proporcional à invenção do
barômetro e do termômetro de mercúrio para física. Pela primeira vez na história, fatores
importantes que afetam o software puderam ser medidos mais precisamente.
O impacto do IFPUG na indústria também foi significativo. Não existia nenhuma organização
equivalente durante os 45 anos de uso de método de “linhas de código-fonte”, e o caos
resultante dificultou estudos econômicos e ocultou problemas mais profundos devido à métrica
insatisfatória.

2. VISÃO GERAL DA FPA
A técnica FPA (Function Point Analysis) dimensiona uma aplicação na perspectiva do usuário
final, ao invés de levar em consideração as características técnicas da linguagem utilizada.

A FPA dimensiona software quantificando a funcionalidade que ele proporciona aos usuários
baseado, principalmente, no seu desenho lógico.

2.1. OBJETIVOS DA ANÁLISE POR PONTOS DE FUNÇÃO
Os objetivos da técnica são:

medir o que foi requisitado e recebido pelo usuário,

medir independentemente da tecnologia utilizada para implementação,

prover uma métrica de medição para apoiar a análise de produtividade e qualidade,

prover uma forma de estimar o tamanho do software, e

prover um fator de normalização para comparação de software.
Análise de Pontos de Função 6

Além de atingir os objetivos descritos acima, o processo de contagem de pontos de função
deve ser:

simples para minimizar o trabalho adicional do processo de mensuração

conciso para permitir consistência, ao longo do tempo, dos projetos, e entre os usuários da
técnica.

2.2. APLICAÇÕES DA FPA
A função principal da FPA é medir o tamanho de uma aplicação ou de um projeto. Entretanto,
quando utilizada em combinação com outras medidas, esta técnica pode ser utilizada para
determinar:

Nível de produtividade da equipe

Esforço de desenvolvimento de software

Custo de software

Taxa de produção de software

Taxa de manutenção de software

Etc.

2.3. TIPOS DE CÁLCULO DA TÉCNICA FPA
A técnica FPA pode ser aplicada tanto no dimensionamento de aplicações já implantadas
quanto do dimensionamento de projetos de desenvolvimento ou manutenção de aplicações.

Dimensionamento de um Projeto de Desenvolvimento
Este cálculo é utilizado para dimensionar (em pontos de função) o tamanho de um projeto de
desenvolvimento de uma nova aplicação. O objetivo deste cálculo é quantificar as funções
solicitadas e entregues ao usuário pela nova aplicação, incluindo neste caso, as funções
referentes ao processo de conversão de dados. Este valor menos os PF associados às atividades
de conversão torna-se o tamanho da aplicação, após sua implantação.

Dimensionamento de um Projeto de Manutenção
Este cálculo é utilizado para dimensionar o tamanho de um projeto de manutenção em uma
aplicação já existente. O objetivo deste cálculo é medir todas as modificações (inclusões,
alterações e exclusões) de funções do usuário, incluindo também, as funções providas pelo
processo de conversão de dados. Ao final de um projeto de manutenção, é necessário
recalcular o tamanho da aplicação para refletir as mudanças nas funções da aplicação.

Dimensionamento de uma Aplicação
Este cálculo é utilizado para dimensionar o tamanho real de uma aplicação em pontos de
função. O valor encontrado representa a funcionalidade da aplicação do ponto de vista do
usuário. Esse valor pode diferir da Dimensão do Projeto de Desenvolvimento desta aplicação
uma vez que não inclui as funções do processo de conversão de dados.
Análise de Pontos de Função 7

2.4. VISÃO GERAL DE UMA APLICAÇÃO
Uma aplicação, vista sob a ótica do usuário, é um conjunto de funções ou atividades do
negócio que o beneficiam na realização de suas tarefas. Essas funções podem ser divididas nos
seguintes grupos:

Arquivo Lógico Interno
Grupo lógico de dados do ponto de vista do usuário cuja manutenção é feita internamente pela
aplicação. Por exemplo, o cadastro de funcionários cujas atualizações ficam sob a
responsabilidade do Depto. RH é considerado um arquivo lógico interno para esse
departamento.

Arquivo de Interface Externa
Grupo lógico de dados utilizado na aplicação cuja manutenção pertence a outra aplicação. Por
exemplo, se uma cópia do cadastro de funcionários é necessária para auxiliar as atividades do
Depto. De Empréstimos e Benefícios Sociais, então esta cópia é considerada um arquivo de
interface externa para esse departamento.

Entrada Externa
Transações vindas diretamente do usuário com o objetivo de atualizar os arquivos lógicos
internos. Por exemplo, a atividade de inclusão de um novo funcionário no cadastro.

Saída Externa
São dados extraídos da aplicação, tais como relatórios e mensagens do terminal de vídeo. Por
exemplo, um relatório do cadastro de funcionários em ordem alfabética.

Consulta Externa
Combinação de uma entrada externa e uma saída de dados, isto é, uma requisição de dados que
gera uma aquisição e exibição imediata de dados. Por exemplo, a atividade de consulta de
saldo em um banco onde o correntista informa o número da conta e recebe imediatamente o
valor do seu saldo.

Fronteiras da Aplicação
É necessário delimitar as fronteiras da aplicação que está sendo dimensionada, para se
estabelecer a propriedade dos dados e relacionamentos com aplicações externas.
Para isso, é necessário observar a aplicação sempre do ponto de vista do usuário, e não do
ponto de vista tecnológico, isto é, o que o usuário pode entender e descrever. Através da
especificação e diagramas gráficos, pode-se desenhar uma fronteira ao redor do sistema,
evidenciando o que é interno e o que é externo à aplicação.

2.5. Resumo do cálculo de pontos de função
Determinam-se os pontos de função de uma aplicação em três etapas de avaliação.
A primeira resulta na contagem de PONTOS DE FUNÇÃO NÃO-AJUSTADOS, que refletem
as funções específicas e mensuráveis do negócio, providas ao usuário pela aplicação, cuja
fronteira foi claramente identificada.
A segunda etapa da avaliação gera o FATOR DE AJUSTE, que representa a funcionalidade
geral provida ao usuário pela aplicação.
A terceira etapa resulta na contagem de PONTOS DE FUNÇÃO AJUSTADOS, que refletem a
aplicação do fator de ajuste sobre o resultado apurado na primeira etapa.

Cálculo de Pontos de Função Não-Ajustados
Uma função específica do usuário em uma aplicação é avaliada em termos do que é fornecido
pela aplicação e não como é fornecido. Somente componentes solicitados pelo usuário e
visíveis são contados.
As funções específicas da aplicação devem ser identificadas e agrupadas por tipo de função,
considerando a fronteira definida. Os tipos de função são :

Arquivo Lógico Interno
Análise de Pontos de Função 8

Arquivo de Interface Externa

Entrada Externa

Saída Externa

Consulta Externa

Cada tipo de função dever ser classificado de acordo com sua complexidade funcional relativa,
como :

SIMPLES

MÉDIA

COMPLEXA

O critério de classificação varia entre os tipos de função e é abordado na Seção 3.
O valor dos pontos para cada função varia de 3 a 15, dependendo do seu tipo e grau de
complexidade. Totalizando seus valores, gera-se o total de PONTOS DE FUNÇÃO NÃO-
AJUSTADOS da aplicação avaliada. Esses valores obtidos através da figura 4-1 da Seção 4.

Cálculo do Fator de Ajuste
O valor 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. Na seção 3.4. há uma
abordagem completa dessas características.
As características gerais de um sistema são :

1. Comunicação de Dados
2. Processamento Distribuído
3. Performance
4. Utilização do Equipamento
5. Volume de Transações
6. Entrada de Dados "on-line"
7. Eficiência do Usuário Final
8. Atualização "on-line"
9. Processamento Complexo
10. Reutilização de Código
11. Facilidade de Implantação
12. Facilidade Operacional
13. Múltiplos Locais
14. Facilidade de Mudanças

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 de Pontos de Função Ajustados
Finalmente, o total de Pontos de Função da aplicação, do projeto de desenvolvimento ou do
projeto de manutenção pode ser encontrado combinando-se o Fator de Ajuste e a quantidade
de Pontos de Função Não-Ajustados calculados anteriormente, segundo fórmulas apresentadas
na seção 4.3.
Análise de Pontos de Função 9

3. REGRAS DE CONTAGEM
As regras de contagem da FPA, aqui descritas, estão baseadas no Function Point Counting
Practices Manual - Release 4.0, publicado pelo IFPUG em janeiro de 1994.

Para facilitar inclusões ou modificações à medida que novas regras de contagem da FPA são
aprovadas pelo IFPUG, cada tipo de função descrito nesta seção está organizado da seguinte
forma :

Visão Geral

Definições

Identificação

Exemplos

Classificação

3.1. Identificação e Classificação de Funções
O primeiro passo a ser seguido para a contagem de pontos de função de um projeto ou
aplicação envolve a determinação:

do Tipo de Contagem de pontos de função a ser realizado

da Fronteira da aplicação ou do projeto a ser dimensionado.
Como mencionado anteriormente, a técnica FPA pode ser utilizada para o dimensionamento
tanto de uma aplicação quanto de um projeto de desenvolvimento ou manutenção,
diferenciando-se estes tipos de contagem pelo universo de funções a ser considerado. No caso
dos projetos de desenvolvimento e manutenção, devem ser também avaliadas as funções
referentes à conversão de dados necessárias para a efetiva implantação da aplicação.

Complementarmente, deve ser claramente identificada, no início dos procedimentos de
contagem, a fronteira da aplicação ou projeto, estabelecendo-se desta forma:

os limites entre as funções a serem atendidas pela aplicação ou projeto dimensionado e
àquelas pertencentes ao ambiente externo

a propriedade dos dados considerados pelo processo de contagem

o relacionamento entre processos, com a indicação de onde estes ocorrem.

Para a identificação da Fronteira do processo de contagem, devem ser adotadas as seguintes
regras:

A fronteira é determinada considerando-se o ponto de vista do usuário, ou seja, o que o
usuário pode entender e descrever como função da aplicação.

A fronteira entre aplicações relacionadas deve considerar a funcionalidade das aplicações
em termos das funções de negócio identificadas pelo usuário, e não sob a perspectiva
técnica das interfaces necessárias.

3.1.1. Arquivos Lógicos Internos

Visão Geral
Análise de Pontos de Função 10

Os Arquivos Lógicos Internos representam os requerimentos de armazenamento de dados cuja
manutenção é feita pela própria aplicação. Os Arquivos Lógicos Internos contribuem para o
Cálculo de Pontos de Função com base na sua quantidade e complexidade funcional relativa.

Definições
Arquivo Lógico Interno é um grupo de dados logicamente relacionados ou informações de
controle identificadas pelo usuário, que é utilizado e sofre manutenção dentro da Fronteira da
aplicação.

Grupo de Dados Logicamente Relacionados refere-se a dados relacionados em um nível em
que o usuário experiente consegue perceber como sendo importante para permitir que a
aplicação realiza uma atividade específica. Em um Diagrama de Fluxo de Dados, um Arquivo
Lógico Interno seria equivalente a um depósito de dados; no Modelo de Entidades e
Relacionamentos (DER) equivale a uma entidade.

Informações de Controle são dados utilizados pela aplicação para garantir total conformidade
com os requerimentos das funções do negócio especificadas pelo usuário.

Manutenção é a habilidade de adicionar, alterar ou remover dados de um arquivo através de
um processo elementar da aplicação.

Identificação
(1) Identificar todos os dados ou informações de controle:

(a) Armazenados dentro da Fronteira da aplicação

(b) Que sofrem manutenção por um processo elementar da aplicação

(c ) Identificados pelo usuário como sendo um requerimento da aplicação.

(2) Agrupar os dados logicamente com base na visão do usuário:

a) Em um nível de detalhe que possa satisfazer um requerimento específico da
aplicação;

b) Visualizando os arquivos lógicos. Embora algumas tecnologias de armazenamento
de dados (tabelas, arquivos convencionais, arquivos indexados, etc.) possam equivaler
a um Arquivo Lógico Interno, não deve ser necessariamente assumido que um arquivo
físico sempre eqüivale a um arquivo lógico.

Exemplos
São considerados um ou mais Arquivos Lógicos Internos, dependendo da visão do usuário:

Dados da aplicação (arquivos mestres como cadastro de clientes ou cadastro de
funcionários);

Arquivos de dados de segurança da aplicação;

Arquivos de dados de auditoria;

Arquivos de mensagens de auxílio;

Arquivos de mensagens de erro;
Análise de Pontos de Função 11

Arquivo de backup. Somente será considerado se especificamente solicitado pelo usuário
para atender requerimentos da aplicação;

Um arquivo que sofre manutenção por mais de uma aplicação deve ser considerado
Arquivo Lógico Interno em todas as aplicações com esta característica.

NÃO são considerados Arquivos Lógicos Internos:

Arquivos temporários;

Arquivos de trabalho;

Arquivos de classificação (SORT);

Arquivos suspensos. Arquivos contendo transações incompletas de uma Entrada Externa
não devem ser contados a menos que os dados desse arquivo possam ser acessados ou
atualizados pelo usuário através de uma Entrada Externa, Saída Externa e/ou Consulta
Externa específica;

Arquivos de backup requeridos pelos procedimentos de backup e recuperação do CPD;

Arquivos introduzidos somente por causa da tecnologia utilizada, por exemplo, um arquivo
de parâmetros para um software com WFL, JCL, etc.;

Arquivos de índices alternativos (métodos alternativos de acesso físico a um arquivo);

Operações de junção e projeção (os itens já foram contabilizados em outros arquivos
internos e interfaces).

Classificação
Cada Arquivo Lógico Interno deve ser classificado de acordo com sua complexidade funcional
relativa, que é baseada no número de Registros Lógicos e no número de Itens de Dados do
arquivo.

(a) Identificação do Número de Registros Lógicos

Registro Lógico pode ser definido como um subgrupo de dados reconhecido pelo usuário
dentro de um Arquivo Lógico Interno. Dependendo da visão do usuário, um Arquivo Lógico
Interno pode ter mais de um Registro Lógico.

Há dois tipos de subgrupos de dados que podem ser identificados como registros lógicos:

Mandatórios são aqueles subgrupos de dados que o usuário deve utilizar pelo menos um
durante o processo elementar de criação de um item num Arquivo Lógico Interno;

Opcionais são aqueles subgrupos de dados que o usuário tem a opção de utilizar um ou
nenhum durante o processo elementar de criação de um item num ARquivo Lógico Interno.

Por exemplo, num Sistema de Recursos Humanos, o processo de inclusão de informações
sobre um empregado compreende o preenchimento de dados de caráter cadastral. Em adição às
informações cadastrais, o empregado pode ser incluído como horista ou mensalista. Cada
empregado pode ter também informações adicionais sobre seus dependentes. Considerando os
requerimentos do Sistema de Recursos Humanos, podemos identificar para o Arquivo Lógico
Interno Empregados o seguinte conjunto de registros lógicos:
Análise de Pontos de Função 12

Informações Cadastrais (mandatório)
Informações para Mensalistas (opcional)
Informações para Horistas (opcional)
Informações sobre Dependentes (opcional)

As seguintes regras devem ser aplicadas para a contabilização dos registros lógicos:

Conte 1 registro lógico para cada subgrupo identificado, opcional ou madatório;

Considere 1 registro lógico caso o Arquivo Lógico Interno não possua subgrupos.

(b) Identificação do Número de Itens de Dados
Item de Dado representa um segmento de um Arquivo Lógico Interno que tem um significado
único e pode ser identificado pelo usuário.

Cada item de dado ou campo referenciado em um Arquivo Lógico Interno deve ser
contabilizado, considerando as seguintes observações:

Os itens de dados devem ser considerados de acordo com a visão do usuário. Por exemplo,
um número contábil ou data que é armazenado em múltiplos campos dever ser contado
como um único item de dados.

Itens de dados que aparecem mais de uma vez em um Arquivo Lógico Interno por causa da
tecnologia ou técnica de implementação devem ser contados apenas uma vez. Por exemplo,
se um Arquivo Lógico Interno é composto de mais de uma tabela em DBMS relacional, as
chaves utilizadas para relacionar as tabelas são contadas uma única vez.

Campos repetitivos que são idênticos no formato e existem para permitir múltiplas
ocorrências de um determinado item de dados são contados um única vez. Por exemplo, em
um Arquivo Lógico Interno contendo um campo valor-mensal ocorrendo 12 vezes e um
campo valor-anual devemos contar dois itens de dados, um para o campo valor-mensal e
outro para o campo valor-anual.

De acordo com o número de itens de dados referenciados e de registros lógicos, classifica-se o
Arquivo Lógico Interno em simples, médio ou complexo, conforme apresentado na Figura 3.1

1 a 19 20 a 50 51 ou mais
itens de dados itens de dados itens de dados
1 SIMPLES SIMPLES MÉDIA
registro lógico
2a5 SIMPLES MÉDIA COMPLEXA
registros lógicos
6 ou mais MÉDIA COMPLEXA COMPLEXA
registros lógicos
Figura 3-1: Tabela de Complexidade de Arquivo Lógico Interno

3.1.2. Arquivo de Interface Externa

Visão Geral
Os Arquivos de Interface Externa representam os requerimentos de dados cuja manutenção é
feita fora dos limites da aplicação. Os Arquivos de Iterface Externa contribuem para o Cálculo
de Pontos de Função com base na sua quantidade e complexidade funcional relativa.

Definições
Análise de Pontos de Função 13

Arquivo de Interface Externa é um grupo de dados logicamente relacionados ou informações
de controle identificadas pelo usuário, que é utilizado pela aplicação, mas sofre manutenção a
partir de outra aplicação.

Grupo de Dados Logicamente Relacionados refere-se a dados relacionados em um nível que o
usuário experiente consegue perceber como sendo importante para permitir que a aplicação
realize uma atividade específica.

Informações de Controle são dados utilizados pela aplicação para garantir total conformidade
com os requerimentos das funções do negócio especificadas pelo usuário.

Identificação
(1) Identificar todos os dados ou informações de controle:
(a) Armazenados fora da Fronteira da Aplicação,

(b) Que NÃO sofram manutenção pela Aplicação,

(c ) Identificados pelo usuário como sendo um requerimento da aplicação.

(2) Agrupar os dados logicamente com base na visão do
usuário:
a) Em um nível de detalhe que possa satisfazer um requerimento específico da
aplicação;

b) Visualizando os arquivos lógicos. Embora algumas tecnologias de armazenamento
de dados (tabelas, arquivos convencionais, arquivos indexados, etc.) possam
eqüivaler a um Arquivo de Interface Externa, não deve ser necessariamente
assumido que um arquivo físico sempre eqüivale a um arquivo lógico.

Exemplos
São considerados um ou mais Arquivos de Interface Externa, dependendo da visão do usuário:

Dados de Referência (dados externos utilizados pela aplicação, mas que não utilizados para
manutenção em Arquivos Lógicos Internos)

Arquivos de mensagens de auxílio

Arquivos de mensagens de erro

NÃO são considerados Arquivos de Interface Externa:

Dados recebidos de outra aplicação utilizados para adicionar, alterar ou remover dados em
Arquivo Lógico Interno. (Estes dados externos são considerados dados de transação e,
portanto, este processo de manutenção é considerado uma Entrada Externa).

Dados cuja manutenção é feita pela aplicação que está sendo avaliada, mas que são
acessados e utilizados por outra aplicação.

Dados formatados e processados para uso por outra aplicação devem ser considerados uma
Saída Externa.

Classificação
Análise de Pontos de Função 14

Cada Arquivo de Interface Externa deve ser classificado de acordo com sua complexidade
funcional relativa, que é baseada no número de Registros Lógicos e do número de Itens de
Dados do arquivo.

(a) Identificação do Número de Registros Lógicos
Registro Lógico pode ser definido como um subgrupo de dados reconhecido pelo usuário
dentro de um Arquivo de Interface Externa. Dependendo da visão do usuário, um Arquivo de
Interface Externa pode ter mais de um Registro Lógico.

Há dois tipos de subgrupos de dados que podem ser identificados como registros lógicos:

Mandatórios são aqueles subgrupos de dados que o usuário deve utilizar pelo menos um
durante o processo elementar de criação de um item num arquivo.

Opcionais são aqueles subgrupos de dados que o usuário tem a opção de utilizar um ou
nenhum durante o processo elementar de criação de um item num arquivo.

As seguintes regras devem ser aplicadas para a contabilização dos registros lógicos:

Conte 1 registro lógico para cada subgrupo identificado, opcional ou mandatório, e
efetivamente utilizado pela aplicação.

Considere 1 registro lógico caso o Arquivo de Interface Externa não possua subgrupos.

(b) Identificação do Número de Itens de Dados
Item de Dado representa um segmento de um Arquivo de Interface Externa que tem um
significado e pode ser identificado pelo usuário.

Cada item de dado ou campo referenciado de um Arquivo de Interface Externa deve ser
contabilizado, considerando as seguintes observações:

Os itens de dados devem ser considerados de acordo com a visão do usuário. Por exemplo,
um número contábil ou data que é armazenado em múltiplos campos deve ser contado
como um único item de dados.

Itens de dados que aparecem mais de uma vez em um Arquivo de Interface Externa por
causa da tecnologia ou técnica de implementação devem ser contados apenas uma vez. Por
exemplo, se um Arquivo de Interface Externa é composto de mais de uma tabela em um
DBMS relacional, as chaves utilizadas para relacionar as tabelas são contadas uma única
vez.

Campos repetitivos que são idênticos no formato e existem para permitir múltiplas
ocorrências de um determinado item de dados são contados uma única vez. Por exemplo,
em um Arquivo de Interface Externa contendo campo valor-mensal ocorrendo 12 vezes e
um campo valor-anual devemos contabilizar dois itens de dados, um para o campo valor-
mensal e outro para o campo valor-anual.
Análise de Pontos de Função 15

De acordo com o número de itens de dados referenciados e de registros lógicos, classifica-se o
Arquivo de Interface Externa em simples, médio ou complexo, conforme apresentado na
Figura 3-2.

1 a 19 20 a 50 51 ou mais
itens de dados itens de dados itens de dados
1 SIMPLES SIMPLES MÉDIA
registro
lógico
2a5 SIMPLES MÉDIA COMPLEXA
registros
lógicos
6 ou mais MÉDIA COMPLEXA COMPLEXA
registros
lógicos
Figura 3-2: Tabela de Complexidade de Arquivo de Interface Externa

3.1.3. Entradas Externas

Visão Geral
As Entradas Externas representam as atividades de manutenção de dados e processamento de
controle de aplicação. As Entradas Externas contribuem para o Cálculo de Pontos de Função
com base na sua quantidade e complexidade funcional.

Definições
Uma Entrada Externa processa dados ou informações de controle que entram pela fronteira da
aplicação. Esses dados, através de um processo lógico único, atualizam Arquivos Lógicos
Internos. Informações de controle podem ou não atualizar diretamente um Arquivo Lógico
Interno.

Uma Entrada Externa é considerada única para a aplicação se possuir um formato diferente
das demais ou se necessitar de uma lógica de processamento diferente de outras Entradas
Externas que tenham o mesmo formato.

Informações de Controle são dados utilizados pela aplicação para garantir total conformidade
com os requerimentos das funções do negócio especificadas pelo usuário.

Manutenção é a habilidade de adicionar, alterar ou remover dados de um arquivo através de
um processo elementar da aplicação.

Processo Elementar é o menor conjunto de atividades com significado para o usuário final em
termos de função de negócio.

Formato é definido como um conjunto de dados arrumados em uma ordem ou seqüência única
dentro da aplicação. Por exemplo: o layout de uma tela de terminal de vídeo.

Lógica de Processamento é definida como o conjunto de críticas, cálculos, algoritmos e
referências/utilização de Arquivos Lógicos Internos ou Arquivos de Interface Externa,
especificamente requeridos pelo usuário para a realização de um processo elementar.

Identificação
(1) Identificar todos os processos que recebem dados de fora da aplicação e que atualizam um
Arquivo Lógico Interno.
Para cada processo identificado:
a) Se dados utilizados em um processo podem ser recebidos em mais de um formato, então
cada formato deve ser considerado uma Entrada Externa.
b) Se o processo necessitar de uma lógica de processamento diferente da utilizada em outras
Entradas Externas que tenham o mesmo formato, então este deverá ser considerado uma
Entrada Externa distinta.
Análise de Pontos de Função 16

c) Contabilizar uma Entrada Externa para cada atividade de manutenção (adição, alteração e
remoção) executada.

(2) Identificar os processos que permitem a entrada de informações de controle dentro da
fronteira da aplicação, com o objetivo de atender aos requerimentos do usuário.

Exemplos
Assumindo que as condições de identificação citadas estejam satisfeitas, são consideradas
Entradas Externas:

Dados de Transações: Dados Externos utilizados na manutenção de Arquivos Lógicos
Internos.

Tela de Entrada: Contar uma Entrada Externa para cada função de manutenção de um
Arquivo Lógico Interno. Se as capacidades de adição, alteração e remoção estiverem
presentes, a tela de entrada deve ser considerada como três Entradas Externas.

Tela de Entrada: Neste contexto, é uma tela lógica que pode ser composta de uma ou várias
telas físicas processadas como uma única transação. Já uma tela física que permite a
execução de várias transações deve considerar tantas Entradas Externas quantas forem as
transações.

Entrada “batch”: Para cada processo de manutenção de um Arquivo Lógico Interno,
contabilize uma Entrada Externa para cada adição, alteração e remoção.

Entradas Externas Duplicadas: Processos de entrada, especificamente solicitados pelo
usuário devem ser contados separadamente. Por exemplo, um sistema bancário, que aceita
transações idênticas de depósito, uma através de uma caixa automático (ATM) e a segunda
feita pelo caixa do banco.

Atualizações em Arquivos Suspensos: Se um arquivo suspenso pode ser acessado e
atualizado pelo usuário, então cada atividade de manutenção deve ser considerada uma
Entrada Externa.

NÃO são consideradas Entradas Externas:

Dados de Referência: Dados externos utilizados pela aplicação, mas que não são
atualizados em Arquivos Lógicos Internos. Por exemplo, informações fornecidas em uma
tela de logon que permite o acesso ao sistema mas não atualiza nenhum Arquivo Lógico
Interno.

Parte de Entrada de uma Consulta Externa: Parâmetros de entrada que direcionam a
recuperação de dados de uma consulta.

Telas de Logon: Telas que facilitam o acesso a uma aplicação e não atualizam Arquivos
Lógicos Internos não são consideradas Entradas Externas.

Telas de Menu: Telas que fornecem somente funcionalidade de seleção ou navegação e não
atualizam Arquivos Lógicos Internos que não são consideradas Entradas Externas.

Múltiplos métodos de executar uma mesma lógica de entrada: Por exemplo, entrar “A” ou
“ADD” numa linha de comando, ou utilizar uma tecla de função, deve ser considerada uma
única Entrada Externa.

Classificação
Cada Entrada Externa deve ser classificada de acordo com sua complexidade funcional
relativa, que é baseada no número de Arquivos Referenciados e no número de Itens de Dados.
Análise de Pontos de Função 17

a) Identificação do Número de Arquivos Referenciados
Arquivo Referenciado é qualquer Arquivo Lógico Interno consultado ou atualizado pelo
processo ou qualquer Arquivo de Interface Externa consultado. O número de Arquivos
Referenciados é o somatório dos Arquivos Lógicos Internos e Arquivos de Interface Externa
atualizados ou consultados na Entrada Externa.

b) Identificação do Número de Itens de Dados
Item de Dado é um campo único, não recursivo, identificado pelo usuário, que é atualizado em
um Arquivo Lógico Interno pela Entrada Externa.

Cada item de dado atualizado em um Arquivo Lógico Interno pela Entrada Externa deve ser
contabilizado, considerando as seguintes observações:

Os itens de dados devem ser considerados de acordo com a visão do usuário. Por exemplo,
um número contábil que é armazenado em múltiplos campos deve ser contado como um
único item de dados.

Itens de dados que aparecem mais de uma vez em um arquivo por causa da tecnologia ou
técnica de implementação devem ser contados apenas uma vez. Por exemplo, se um
arquivo é composto de mais de uma tabela em um DBMS relacional, as chaves utilizadas
para relacionar as tabelas são contadas uma única vez.

Linha(s) de comando ou teclas de função que fornecem a capacidade para especificar a
ação a ser tomada pela Entrada Externa. Um item de dado adicional deve ser considerado
na Entrada Externa. Não deve ser contabilizado um item por comando/tecla de função
existente.

Campos não informados pelo usuário, mas que são atualizados em um Arquivo Lógico
Interno por uma Entrada Externa, devem ser contabilizados. Por exemplo: um sistema que
gera chaves seqüenciais, atualizadas em um Arquivo Lógico Interno, mas que não são
fornecidos pelo usuário, deve ser contado como um item de dados da Entrada Externa.

Mensagem de erro ou confirmação relacionadas aos processos lógicos executados pela
Entrada Externa. Caso sejam requeridas pelo usuário mensagens de erro/confirmação, um
item de dado adicional deve ser considerado para a Entrada Externa, independente da
quantidade de mensagens de erro/confirmação previstas.
De acordo com o número de itens de dados e das referências a arquivos lógicos internos e
arquivos de interface externa, classifica-se a Entrada Externa em simples, média ou complexa,
conforme apresentado na Figura 3.3.

1a4 5 a 15 16 ou mais
itens de dados itens de dados itens de
dados
0 ou 1 SIMPLES SIMPLES MÉDIA
arquivo
referenciado
2 SIMPLES MÉDIA COMPLEXA
arquivos
referenciados
3 ou mais MÉDIA COMPLEXA COMPLEXA
arquivos
referenciados
Figura 3.3: Tabela de Complexidade de Entrada Externa
Análise de Pontos de Função 18

3.1.4. Saídas Externas

Visão Geral
As Saídas Externas representam as atividades da aplicação que tem como resultado saídas de
dados. As Saídas Externas contribuem para o Cálculo de Pontos de Função com base na sua
quantidade e complexidade funcional.

Definições
Uma Saída Externa é uma atividade que envia dados ou informações de controle para fora da
fronteira da aplicação.

Uma Saída Externa é considerada única para a aplicação, se referenciar um conjunto de itens
de dados diferente das demais ou se necessitar de uma lógica de processamento diferente de
outras Saídas Externas que tenham o mesmo formato.

Informações de Controle são dados utilizados pela aplicação para garantir total conformidade
com os requerimentos das funções de negócio especificadas pelo usuário.

Formato é definido como um conjunto de dados arrumados em uma ordem ou seqüência única
dentro da aplicação. Por exemplo, layout de um relatório.

Lógica de Processamento é definida como o conjunto de críticas, cálculos, algoritmos e
referência/acesso a arquivos especificamente requeridos pelo usuário.

Identificação
(1) Identificar todos os processos que:

(a) Enviam dados para fora da fronteira da aplicação

(b) Enviam informações de controle para fora da fronteira da aplicação.
(2) Para cada processo identificado:

(a) Deve ser considerada uma Saída Externa para cada processo que envia dados ou informações de
controle para fora da fronteira da aplicação.

(b) Se o processo necessitar de uma lógica de processamento diferente da utilizada em outras Saídas
Externas que tenham o mesmo formato, então este deverá ser considerado uma Saída Externa
distinta.

Exemplos
Assumindo que as condições de identificação descritas estejam satisfeitas, devem ser
consideradas Saídas Externas.

Dados transferidos para outra aplicação: Dados residentes em um Arquivo Lógico Interno,
que são formatados e processados para uso por uma aplicação externa. A identificação de
uma Saída Externa é baseada no tipo de processamento necessário para manipular os
dados. Um arquivo físico de saída pode corresponder a um certo número de Saídas
Externas, quando visto logicamente. Por outro lado, uma Saída Externa pode corresponder
a mais de um arquivo físico de saída se a lógica de processamento e formato for idêntica
para cada arquivo físico.

Relatórios: Cada relatório produzido por uma aplicação pode ser considerado uma Saída
Externa. Dois relatórios de formatos idênticos, inclusive detalhes e sumário final, devem
ser considerados como duas Saídas Externas, se necessitarem de lógicas de processamento
distintas ou cálculos distintos para serem produzidos.
Análise de Pontos de Função 19

Relatórios Duplicados: Relatórios idênticos, produzidos em diferentes meios para atender
necessidades específicas do usuário, devem ser considerados como Saídas Externas
distintas. Cada processo requerido para produzir uma saída em um meio diferente é
considerado um processamento lógico distinto. Por exemplo, dois relatórios idênticos, um
em formulário contínuo e o outro em microficha, devem ser considerados duas Saídas
Externas.

Relatórios “On-line”: Saída de dados “on-line” que não seja a parte de saída de uma
Consulta Externa.

Dados Derivados: Dados derivados, resultantes de cálculos ou outras operações
sobre dados originais, que não necessariamente atualizem um arquivo.

Formatos Gráficos: Devem ser contados da mesma forma, como saída em formato
texto, ou seja, cada formato gráfico diferente deverá ser considerado como uma
saída externa.

Gerador de Relatórios: Saídas desenvolvidas para o usuário através de um gerador
de relatório deverão ser considerados como uma saída externa para cada relatório
específico.

NÃO são consideradas Saídas Externas:

Telas de Help: Ver Consultas Externas.

Múltiplas Formas de Executar uma Mesma Lógica de Saída.

Relatórios Múltiplos com Mesma Lógica e Formato: Relatórios que possuem o mesmo
formato e lógica, mas que existem para mostrar valores distintos, não devem ser contados
como Saídas Externas distintas. Por exemplo, dois relatórios com o mesmo formato e
lógica, o primeiro contendo clientes de “A a L” e o segundo de “M a Z”, são considerados
como uma única Saída Externa.

Relatórios Ad-Hoc: Quando o usuário é responsável diretamente pela criação (através do
uso de uma linguagem como FOCUS ou SQL) de um número indefinido de relatórios,
nenhuma Saída Externa é considerada.

Classificação
Cada Saída Externa deve ser classificada de acordo com sua complexidade funcional, que é
baseada no número de Arquivos Referenciados e no número de Itens de Dados.

(a) Identificação do Número de Arquivos Referenciados
Arquivo Referenciado é qualquer Arquivo Lógico Interno ou Arquivo de Interface Externa
consultado pelo processamento da Saída Externa. O número de Arquivos Referenciados é o
somatório dos Arquivos Lógicos Internos e Arquivos de Interface Externa consultados na
Saída Externa.

(b) Identificação do Número de Itens de Dados
Item de Dado é um campo único, não recursivo, identificado pelo usuário, que é apresentado
na Saída Externa.

Cada item de dado de uma Saída Externa deve ser contabilizado, considerando as seguintes
observações:

Os itens de dados devem ser considerados de acordo com a visão do usuário, por exemplo,
um número contábil que é exibido no relatório em múltiplos campos deve ser considerado
como um único item de dados.
Análise de Pontos de Função 20

Gráficos: contar um item para cada tipo de legenda ou equivalente numérico na saída
gráfica. Por exemplo, um gráfico de pizza deve ter dois itens: um para designar a categoria
e um para percentual.

Literais não devem ser contados como itens de dados.

Data, hora, controles de paginação etc. não devem ser considerados.

Deve ser contado um item de dado adicional para cada campo de sumário ou de total que
aparece na Saída Externa.
De acordo com o número de itens de dados e dos arquivos referenciados, classifica-se a Saída
Externa em simples, média ou complexa, conforme apresentado na Figura 3.4.

1a5 6 a 19 20 ou mais
itens de itens de dados itens de
dados dados
0 ou 1 SIMPLES SIMPLES MÉDIA
arquivo
referenciado
2a3 SIMPLES MÉDIA COMPLEXA
arquivos
referenciados
4 ou mais MÉDIA COMPLEXA COMPLEXA
arquivos
referenciados
Figura 3.4: Tabela de Complexidade de Saída Externa

3.1.5. Consultas Externas

Visão Geral
As Consultas Externas representam as necessidades de processamento de consultas da
aplicação. As Consultas Externas contribuem para o Cálculo de Pontos de Função com base na
sua quantidade e complexidade funcional.

Definições
Uma Consulta Externa é uma combinação de entrada/saída de dados onde uma de dados
ocasiona uma recuperação e saída de dados correspondente. Uma Consulta Externa não
contém dados derivados e não atualiza nenhum Arquivo Lógico Interno.

Uma Consulta Externa é considerada única para a aplicação se possui um formato diferente de
outras consultas tanto na parte de entrada quanto na parte de saída, ou se requer uma lógica de
processamento (edição) diferente de outras consultas.

Dados Derivados são definidos como dados que requerem um processamento diferente de um
acesso, recuperação ou edição de dados de um Arquivo Lógico Interno e/ou Arquivo de
Interface Externa.

Formato é definido como um conjunto de dados arrumados em uma ordem ou seqüência única
dentro da aplicação. Por exemplo, layout de uma tela de terminal de vídeo.

Identificação
(1) Identificar todos os processos onde uma entrada está associada a uma
correspondente recuperação e exibição de dados, sem derivação dos mesmos e
sem atualização de Arquivos Lógicos Internos.
(2) Para cada processo identificado:
Análise de Pontos de Função 21

(a) Verificar se a lógica de processamento envolvida tanto na parte de entrada quanto na de Saída
é diferente da de Consultas Externas da aplicação.

(b) Verificar se os itens de dados, tanto na parte de entrada quanto na de Saída, são diferentes
das de outras Consultas Externas da aplicação.

Exemplos
Assumindo que as condições de identificação descritas estejam satisfeitas, são consideradas
Consultas Externas:

Um processo de recuperação de dados, que seleciona os dados com base em uma entrada
fornecida.

Consultas implícitas: Telas de alteração/remoção, que mostram o que será alterado ou
removido antes de sua ação efetiva, devem ser consideradas como Consultas Externas
devido à sua capacidade de consulta. Se a parte de entrada e saída da consulta for idêntica
para as funções de remoção e de alteração, conte apenas uma Consulta Externa. Se a
aplicação possui telas distintas de alteração e exclusão, e ambas fornecerem capacidade de
consulta idêntica, considere apenas uma Consulta Externa.

Menus com consultas implícitas: Telas de menus, que além de permitir funcionalidade de
seleção de telas, permitem também informar parâmetros para consulta na tela escolhida,
devem ser consideradas Consultas Externas. O menu será considerado a parte de entrada da
consulta e a tela selecionada será a parte de saída da consulta.

Telas de Logon: Telas de logon que fornecem funcionalidade de segurança devem ser
consideradas Consultas Externas.

Telas de Help: Telas de auxílio, que podem ser acessadas ou exibidas através de diferentes
técnicas de seleção ou a partir de diferentes locais da aplicação, devem ser contadas uma
única vez. Textos de help, que podem ser acessados em múltiplas áreas de uma tela ou em
várias telas de uma aplicação, devem ser contados uma única vez.
Duas categorias de telas de help são consideradas Consultas Externas.

Help de uma Tela (“Full Screen Help”): Recurso de help que é dependente da tela da
aplicação. Mostra o texto de help que está relacionado à tela. Contar uma Consulta Externa
simples por aplicação que possuir este recurso, independentemente do número de telas de
help associadas.

Help de um campo da Tela (“Field Sensitive Help”): Um recurso de help dependente da
localização do cursor ou algum outro método de identificação para exibição de
documentação específica para aquele item de dados. Considere uma Consulta Externa
simples por aplicação, de forma independente do número de telas de ajuda associadas.

Consulta em formato gráfico.

NÃO são consideradas Consultas Externas:

Múltiplas Formas de Executar uma Mesma Lógica de Consulta: Por exemplo, entrar “I” ou
“Inquiry” na linha de comando ou uma tecla de função deve ser contado uma única vez.

Telas de menus que fornecem somente funcionalidade de seleção de telas não são
consideradas Consultas Externas.

Dados derivados: Dados derivados devem ser tratados como uma entrada ou saída de dados
ao invés de consulta.
Análise de Pontos de Função 22

Documentação On-Line

Sistema de Teste

Subsistema de Help: Deve ser considerado uma aplicação em separado.

Sistemas Tutoriais: São considerados aplicações em separado.

Classificação
Estes são os passos para se classificar uma Consulta Externa:
1. Calcular a complexidade funcional da parte de entrada da Consulta Externa.
2. Calcular a complexidade funcional da parte de saída da Consulta Externa.
3. Escolher a maior complexidade encontrada.

(a) Identificação do Número de Arquivos Referenciados - Partes de Entrada e
Saída
O número de Arquivos Referenciados é o somatório de todos os Arquivos Lógicos Internos e
Arquivos de Interface Externa acessados, considerando separadamente as partes de entrada e
de Saída da Consulta Externa.

(b) Identificação do Número de Itens de Dados - Parte de Entrada
Todos os itens de dados que servem de parâmetro no processamento da Consulta Externa
devem ser contados.
Deve ser contabilizado um item de dado adicional caso sejam requeridas mensagens de erro ou
campos de confirmação associados à parte de entrada da Consulta Externa.

(c ) Identificação do Número de Itens de Dados - Parte de Saída
O número de itens de dados é a quantidade de campos não recursivos, identificados pelo
usuário, que aparecem na parte de Saída da Consulta Externa.
Todos os campos que aparecem na parte de Saída devem ser contabilizados, considerando as
seguintes observações:

Os itens de dados devem ser considerados de acordo com a visão do usuário, por exemplo,
um número contábil ou data que é apresentado em múltiplos campos deve ser contado
como um único item de dados.

Literais não devem ser contados como itens de dados.

Data, hora, controles de paginação, etc. não devem ser contados.
De acordo com o número de itens de dados e dos arquivos referenciados, classifica-se a
complexidade funcional das Consultas Externas como o maior nível obtido, comparando-se a
complexidade da parte de entrada e da de Saída, utilizando-se as Figuras 3.5 e 3.6.

1a4 5 a 15 16 ou mais
itens de dados itens de dados itens de dados
0 ou 1 SIMPLES SIMPLES MÉDIA
arquivo
referenciado
2 SIMPLES MÉDIA COMPLEXA
arquivos
referenciados
3 ou mais MÉDIA COMPLEXA COMPLEXA
arquivos
referenciados
Figura 3.5: Tabela de Complexidade da Consulta - Parte da Entrada
Análise de Pontos de Função 23

1a5 6 a 19 20 ou mais
itens de dados itens de dados itens de dados
0 ou 1 SIMPLES SIMPLES MÉDIA
arquivo
referenciado
2a3 SIMPLES MÉDIA COMPLEXA
arquivos
referenciados
4 ou mais MÉDIA COMPLEXA COMPLEXA
arquivos
referenciados
Figura 3.6: Tabela de Complexidade da Consulta - Parte da Saída

3.2. EXEMPLO
Com base na especificação do Sistema de Reservas - Projeto de Desenvolvimento,
identificamos e classificamos as seguintes funções:

Tipo de Função: Arquivo Lógico Interno

DESCRIÇÃO DA Reg. Itens S M C
FUNÇÃO
Arquivo de Reservas 1 9 X

Arquivo de 1 2 X
Apartamentos

Arquivo de Clientes 1 9 X

TOTAL DE ARQUIVOS LÓGICOS 3
INTERNOS

Tipo de Função: Arquivo de Interface Externa

DESCRIÇÃO DA Reg. Itens S M C
FUNÇÃO
Arquivo de 1 2 X
Funcionários

TOTAL DE ARQUIVOS DE 1
INTERFACE EXTERNA
Análise de Pontos de Função 24

Tipo de Função: Entradas Externas

DESCRIÇÃO DA Arq. Itens S M C
FUNÇÃO
Registro de Reservas 3 10 X
Alteração de Reserva 3 10 X
Exclusão de Reserva 2 3 X

Inclusão de 1 4 X
Apartamentos
Alteração de 1 4 X
Apartamentos
Exclusão de 1 3 X
Apartamentos

Inclusão de Clientes 2 12 X
Alteração de Clientes 2 12 X
Exclusão de Clientes 1 3 X

TOTAL DE ENTRADAS EXTERNAS 5 2 2

Tipo de Função: Saídas Externas

DESCRIÇÃO DA Arq. Itens S M C
FUNÇÃO
Relatório de Reservas 1 5 X

Relatório de 1 2 X
Apartamentos

Relatório de Clientes 1 4 X

TOTAL DE SAÍDAS EXTERNAS 3

Tipo de Função: Consultas Externas

Entrada Saída
DESCRIÇÃO DA S M C
FUNÇÃO A I A I
Consulta de Reservas 1 2 3 8 X

Consulta ao Cadastro 1 3 1 1 X
de Apartamentos

Consulta ao Cadastro 1 3 2 10 X
de Clientes

TOTAL DE CONSULTAS EXTERNAS 1 2

3.3. EXERCÍCIO
Com base na especificação do Sistema Integrado de Estoque - Projeto de desenvolvimento
descrita no Manual de Estudos de Casos, identifique e classifique as funções do sistema.
Análise de Pontos de Função 25

3.4. CARACTERÍSTICAS GERAIS DOS SISTEMAS
Após a identificação dos tipos de funções que representam a funcionalidade específica de uma
aplicação, é necessário medir a funcionalidade global desta aplicação. A técnica FPA mede a
funcionalidade geral de uma aplicação através da avaliação do nível de influência de 14
Características Gerais dos sistemas.

As características gerais de um sistema são:
1. Comunicação de Dados
2. Processamento Distribuído
3. Performance
4. Utilização do Equipamento
5. Volume de Transações
6. Entrada de Dados “On-Line”
7. Eficiência do Usuário Final
8. Atualização “On-Line”
9. Processamento Complexo
10.Reutilização de Código
11.Facilidade de Implantação
12.Facilidade Operacional
13.Múltiplos Locais
14.Facilidade de Mudanças

Cada característica deve ser avaliada de acordo com o seu Nível de Influência, atribuindo-se
um peso que varia de 0 a 5, segundo a tabela abaixo:

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

Os textos associados aos níveis de influência, descritos a seguir, têm como objetivo direcionar
e facilitar a classificação de cada uma das características de um sistema. Se nenhum dos textos
se adequar à aplicação avaliada, deve ser escolhido o que melhor se aproximar do caso.

3.4.1. Comunicação de Dados
Os dados e informações de controle utilizados na aplicação são enviados ou recebidos através
de recursos de comunicação de dados. Terminais conectados a um computador utilizam os
recursos de comunicação de dados.
Protocolo é um conjunto de convenções que permite a troca ou transferência de informações
entre dois sistemas ou periféricos. Toda comunicação de dados requer algum tipo de protocolo.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0 - O processamento da aplicação é puramente “batch” ou é executado em um PC isolado.
1 - A aplicação é “batch” mas tem entrada de dados remota ou impressão remota.
2 - A aplicação é “batch” mas tem entrada de dados remota e impressão remota.
3- Captura de Dados “on-line” via terminal de vídeo ou via um processador “front-end”, para
alimentar processos “batch” ou sistemas de consultas (“Query Systems”). Por exemplo, as
transações de um banco são armazenadas em um computador “front-end” durante o dia e, à
noite, estas informações alimentam os processos batch e o sistema de consulta de saldo do
banco.
4 -Mais que um “front-end”, mas a aplicação suporta apenas um tipo de protocolo de
comunicação.
5 -Mais que um “front-end” e a aplicação suporta mais de um tipo de protocolo de
comunicação.

3.4.2. Processamento Distribuído
Dados ou processamento distribuído entre várias unidades de processamento (CPUs) são uma
característica da aplicação dentro de sua fronteira.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:
Análise de Pontos de Função 26

0 - A aplicação não auxilia na transferência de dados ou processamento entre as CPUs da
instalação.
1 - A aplicação prepara dados para o usuário final processar em outra CPU da instalação. Por
exemplo, planilhas eletrônicas ou gerenciadores de banco de dados de PC.
2 - Os dados são preparados para transferência, transferidos e processados em uma outra
CPU da instalação (mas NÃO para processamento pelo usuário final como visto no item
(1).
3 - Processamento distribuído e transferência de dados “on-line” apenas em uma direção.
4 - Processamento distribuído e transferência de dados “on-line” em ambas as direções.
5 - As funções de processamento são executadas dinamicamente na CPU mais
apropriada.

3.4.3. Performance
Esta característica identifica os objetivos de performance da aplicação, estabelecidos e
aprovados pelo usuário, que influenciaram (ou irão influenciar) o desenho, desenvolvimento,
implantação e suporte da aplicação.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0 - Nenhuma exigência especial de performance foi fixada pelo usuário.
1 - Requerimentos de performance foram estabelecidos e revisados, mas nenhuma ação
especial foi necessária.
2 - O tempo de resposta ou throughput é crítico durante as horas de pico. Nenhuma
consideração especial para utilização de CPU foi requerida. O intervalo de tempo limite
(“deadline”) do processamento é sempre para o próximo dia útil.
3 - O tempo de resposta ou throughput é crítico durante todo o horário de utilização. Não foi
necessário nenhum procedimento especial para utilização de CPU. Os requerimentos de
prazo de processamento com outros sistemas são limitantes.
4 - Os requerimentos de performance estabelecidos pelo usuário são rigorosos o bastante para
requerer tarefas de análise de performance na fase de análise e desenho da aplicação.
5 - Além do descrito no item 4, ferramentas de análise de performance foram usadas nas fases
de desenho, desenvolvimento e/ou implementação a fim de proporcionar a performance
estabelecida pelo usuário.

3.4.4. Utilização do Equipamento
Característica que representa a necessidade de se fazer considerações especiais no desenho dos
sistemas para que a configuração do equipamento não fique sobrecarregada. Por exemplo, o
usuário deseja executar a aplicação no equipamento atual ou no que será contratado.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0 - Não há restrições operacionais explícitas ou implícitas.
1 - Existem restrições operacionais, mas são menos restritivas do que aplicações típicas.
Nenhum esforço extra é necessário para suplantar as restrições.
2 - Algumas considerações sobre tempo e segurança são necessárias.
3 - Necessidades especiais de processador para uma parte específica da aplicação.
4 - Restrições operacionais estabelecidas requerem atenção especial a nível de processador
central ou processador dedicado para executar a aplicação.
5 - Além do descrito acima, existem sobrecargas a nível das unidades de processamento
(CPUs) distribuídas da instalação.

3.4.5. Volume de Transações
O volume de transações é alto e tem influência no desenho, desenvolvimento, implantação e
manutenção da aplicação.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0- Nenhum período de pico de transações é esperado.
1- Picos de transações mensais, quadrimestrais, sazonais e anuais são esperados.
2- Picos semanais de transações são esperados.
3- Picos diários de transações são esperados.
4- Altos volumes de transações foram fixados pelo usuário para a aplicação, o que força a
execução de tarefas de análise de performance na fase de desenho da aplicação.
Análise de Pontos de Função 27

5 - Requer o uso de ferramentas de análise de performance nas fases de desenho,
desenvolvimento e/ou implantação, além das considerações acima.

3.4.6. Entrada de Dados “On-line”
A aplicação possui entrada de dados “on-line”.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0- Todas as transações são processadas em modo batch.
1- 1% a 7% das transações são entradas de dados interativas.
2- 8% a 15% das transações são entradas de dados interativas.
3- 16% a 23% das transações são entradas de dados interativas.
4- 24% a 30% das transações são entradas de dados interativas.
5- Mais de 30% das transações são entradas de dados interativas.

3.4.7. Eficiência do Usuário Final
As funções “on-line” fornecidas enfatizam um desenho da aplicação voltado para a eficiência
do usuário final.

Menus

Documentação/Help On-line

Movimento automático do cursor

Movimento de Tela (“Scrolling”) vertical e horizontal

Impressão remota (via transações “on-line”)

Teclas de Função pré-definidas

Execução de “jobs batch” a partir de transações “on-line”

Seleção de dados da tela via movimentação do cursor

Uso intenso de vídeo reverso, brilho intensificado, sublinhado, cores e outros recursos de
vídeo

Impressão da documentação via “hard copy” em transações “on-line”

Interface para “mouse”

“Pop-up Windows”

O mínimo possível de telas para executar as funções do negócio

Fácil navegação entre telas (por exemplo, através de teclas de função)

Suporte bilíngüe (suporta dois idiomas, contar como quatro itens)

Suporte multilingüe (suporta mais de dois idiomas, contar como seis itens)

Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0- A aplicação não apresenta nenhum dos itens acima.
1- Apresenta de 1 a 3 dos itens acima.
2- Apresenta de 4 a 5 dos itens acima.
Análise de Pontos de Função 28

3 - Apresenta 6 ou mais dos itens acima, mas não há nenhum requerimento do usuário
relacionado à eficiência.
4 - Apresenta 6 ou mais dos itens acima, e os requerimentos estabelecidos para eficiência do
usuário são rigorosos o suficiente para que a fase de desenho da aplicação inclua fatores
para minimizar a digitação, maximizar os “defaults”, utilizar “templates” etc.
5 - Apresenta 6 ou mais dos itens acima, e os requerimentos estabelecidos para eficiência do
usuário são rigorosos o suficiente para que seja necessário o uso de ferramentas e
processos especiais para demonstrar que os objetivos de eficiência foram alcançados.

3.4.8. Atualização “On-line”
A aplicação possibilita a atualização “on-line” dos Arquivos Lógicos Internos.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0 - Nenhuma atualização.
1 - Atualização “on-line” de 1 a 3 arquivos de controle. O volume de atualizações é baixo e a
recuperação de dados é simples.
2 - Atualização “on-line” de 4 ou mais arquivos de controle. O volume de atualizações é
baixo e a recuperação de dados é simples.
3 - Atualização “on-line” da maioria dos Arquivos Lógicos Internos.
4 - Além dos itens anteriores, a proteção contra perda de dados é essencial e foi
especificamente projetada e codificada nos sistema.
5 - Além dos itens anteriores, altos volumes de dados trazem considerações sobre custo para
o processo de recuperação. Exigem procedimentos de recuperação totalmente
automatizados com a mínima intervenção do operador.

3.4.9. Processamento Complexo
O processamento complexo é uma característica da aplicação, podendo ser divido nas
seguintes categorias:

Processamento especial de auditoria e/ou processamento especial de segurança.

Processamento lógico extensivo.

Processamento matemático extensivo.

Grande quantidade de processamento de exceções, resultando em transações incompletas
que necessitam de reprocessamento. Por exemplo: transações incompletas de ATMs
causadas por interrupções de comunicação, valores de dados ou falha de edição.

Processamento complexo para manipular múltiplas possibilidades de entrada /saída. Por
exemplo: múltiplos meios e independência de equipamentos.

Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0- Não apresenta nenhum dos itens acima.
1- Apresenta um dos itens acima.
2- Apresenta dois dos itens acima.
3- Apresenta três dos itens acima.
4- Apresenta quatro dos itens acima.
5- Apresenta todos os itens acima.

3.4.10. Reutilização de Código
A aplicação e o seu código foram especificamente projetados, desenvolvidos e suportados para
serem reutilizados em outras aplicações.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0- Não apresenta código reutilizável.
1- O código reutilizável é usado somente dentro da própria aplicação.
Análise de Pontos de Função 29

2 - Menos de 10% da aplicação foi feita, levando-se em conta a sua utilização para outras
aplicações.
3 - 10% ou mais da aplicação foi feita, levando-se em conta a sua utilização por outras
aplicações.
4 - A aplicação foi feita projetada e documentada para facilitar a reutilização de código e a
aplicação é customizada pelo usuário a nível do código fonte.
5 - A aplicação foi projetada e documentada para facilitar a reutilização de código e a
aplicação é customizada para uso de parâmetros que podem ser atualizados pelo usuário.

3.4.11. Facilidade de Implantação
Facilidade de implantação e conversão de dados são características da aplicação. Um plano de
implantação e conversão de dados e/ou ferramentas de conversão de dados foi preparado e
testado durante a fase de testes dos sistemas.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0 - Nenhuma consideração especial foi feita pelo usuário, e nenhum procedimento especial foi
requerido para a implantação.
1 - Nenhuma consideração especial foi feita pelo usuário, mas um procedimento especial foi
requerido para a implantação.
2 - Requerimentos de implantação e conversão de dados foram fixados pelo usuário, e
roteiros de implantação e conversão de dados foram preparados e testados. O impacto da
conversão de dados no projeto não é considerado importante,.
3 - Requerimentos de implantação e conversão de dados foram fixados pelo usuário, e roteiros
de implantação e conversão de dados foram preparados e testados. O impacto da
conversão de dados no projeto é considerado importante.
4 - Além do descrito no item (2), ferramentas automatizadas de implantação e conversão de
dados foram preparados e testadas.
5 - Além do descrito no item (3), ferramentas automatizadas de implantação e conversão de
dados foram preparadas e testadas.

3.4.12. Facilidade Operacional
Facilidade operacional é uma característica da aplicação. Procedimentos efetivos de
inicialização, backup e recuperação foram desenvolvidos e testados durante a fase de teste do
sistema. A aplicação minimiza a necessidade de atividades manuais, tais como montagem de
fitas magnéticas, manuseio de formulários e intervenção manual do operador.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0 - Nenhuma consideração especial sobre facilidade operacional, além dos procedimentos
normais de backup, foi feita pelo usuário.
1 - Selecionar os seguintes itens que se aplicam à aplicação. Cada item selecionado possui o
valor um.

Procedimentos eficientes de inicialização, backup e recuperação foram preparados, mas a
intervenção do operador é necessária.

Procedimentos eficientes de inicialização, backup e recuperação foram preparados, mas
nenhuma intervenção do operador é necessária (contar como dois itens).

A aplicação minimiza a operação de montagem de fitas magnéticas.

A aplicação minimiza a necessidade de manuseio de formulários.
5 - A aplicação foi projetada para não precisar de intervenção do operador no seu
funcionamento normal. Apenas a inicialização e parada do sistema ficam a cargo do
operador. A recuperação automática de erros é uma característica da aplicação.
Análise de Pontos de Função 30

3.4.13. Múltiplos Locais
A aplicação foi especificamente projetada, desenvolvida e suportada para ser instalada em
múltiplos locais de uma organização ou para múltiplas organizações.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0 - Nenhuma solicitação do usuário para considerar a necessidade de instalar a aplicação em
mais de um local.
1 - Necessidade de instalação em múltiplos locais foi levada em consideração no projeto do
sistema e a aplicação foi projetada para operar somente em ambiente idênticos de
hardware e software.
2 - Necessidade de instalação em múltiplos locais foi levada em consideração no projeto do
sistema e a aplicação foi projetada para operar somente em ambientes similares de
hardware e software.
3 - Necessidade de instalação em múltiplos locais foi levada em consideração no projeto do
sistema e a aplicação foi projetada para operar inclusive em ambientes diferentes de
hardware e/ou software.
4 - Um plano de documentação e manutenção foi elaborado e testado para suportar a aplicação
em múltiplos locais e a aplicação atende aos itens (1) e (2).
5 - Um plano de documentação e manutenção foi elaborado e testado para suportar a aplicação
em múltiplos locais e a aplicação atende ao item (3).

3.4.14. Facilidade de Mudanças
A aplicação foi especificamente projetada, desenvolvida para suportar manutenção, visando a
facilidade de mudanças. Por exemplo:

Capacidade de consultas/relatórios flexíveis está disponível.

Dados de controle do negócio são agrupados em tabelas passíveis de manutenção pelo
usuário.

Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:
0 - Nenhum requerimento especial foi solicitado pelo usuário para projetar a aplicação,
visando minimizar ou facilitar mudanças.
1 - Selecionar quais dos seguintes itens se aplicam à aplicação. Cada item possui valor um:

É fornecido recurso de consulta/relatórios flexíveis capaz de manipular solicitações simples
de consulta (“query requests”). Por exemplo: lógica de and/or aplicada a somente um
Arquivo Lógico Interno (contar como um item).

É fornecido recurso de consultas/relatórios flexíveis capaz de manipular solicitações de
consulta (“query requests”) de média complexidade. Por exemplo: lógica de and/or
aplicada a mais de um Arquivo Lógico Interno (contar como dois itens).

É fornecido recurso de consulta/relatórios flexíveis capaz de manipular solicitações
complexas de consulta (“query requests”).Por exemplo: combinações de lógica de and/or
aplicadas a um ou mais Arquivos Lógicos Internos (contar como três itens).

Dados de controle são mantidos em tabelas que são atualizadas pelo usuário através de
processos “on-line” e interativos, mas as alterações só são efetivadas no próximo dia útil.

Dados de controle são mantidos em tabelas que podem ser atualizadas pelo usuário através
de processos “on-line” e interativos e as alterações são efetivadas imediatamente (contar
como dois itens).
Análise de Pontos de Função 31

3.5. EXEMPLO
O nível de influência do Sistema de Reservas - Projeto de Desenvolvimento tem os seguintes
valores baseados nas suas características:

CARACTERÍSTICAS GERAIS NÍVEL DE
DOS SISTEMAS INFLUÊNCIA
1. Comunicação de Dados 4
2. Processamento Distribuído 0
3. Performance 0
4. Utilização do Equipamento 1
5. Volume de Transações 1
6. Entrada de Dados “On-Line” 5
7. Eficiência do Usuário Final 1
8. Atualização “On-Line” 5
9. Processamento Complexo 0
10. Reutilização de Código 0
11. Facilidade de Implantação 0
12. Facilidade Operacional 1
13. Múltiplos Locais 0
14. Facilidade de Mudanças 0
NÍVEL DE INFLUÊNCIA (NI) 18

3.6. EXERCÍCIO
Identifique e classifique o nível de influência das características do Sistema Integrado de
Estoque - Projeto de Desenvolvimento.

4. Cálculo de Pontos de Função
O Cálculo de Pontos de Função de uma aplicação é um processo realizado em três etapas:

Cálculo de Pontos de Função Não-Ajustados

Cálculo do Fator de Ajuste

Cálculo de Pontos de Função Ajustados

4.1. CÁLCULO DE PONTOS DE FUNÇÃO NÃO AJUSTADOS
Uma vez que os componentes de uma aplicação tenham sido identificados e categorizados nos
vários tipos de funções (Arquivos Lógicos Internos, Arquivos de Interface Externa, Entradas
Externas, Saídas Externas e Consultas Externas), cada componente é então associado a um
Valor de Pontos de Função Não-Ajustados, dependendo do tipo de função e de sua
complexidade funcional (1).

O Valor de Pontos de Função Não-Ajustados de cada componente é então totalizado por tipo
de função e finalmente por aplicação. O resultado final é o Valor de pontos de Função Não-
Ajustados da Aplicação.

A Figura 4.1 apresenta tabela que pode ser usada para facilitar o Cálculo de pontos de Função
Não-Ajustados.

Nota:
(1) A complexidade funcional de um tipo de função é baseada unicamente nas Matrizes de
Complexidade (Ver Seção 3). Antes da Release 3.1 da FPA, a complexidade funcional de um
Análise de Pontos de Função 32

tipo de função podia ser ajustada a um nível para cima ou para baixo, dependendo de uma série
de fatores. O Comitê de Práticas de Contagem do IFPUG acredita que esta decisão elimina a
subjetividade introduzida por esses fatores de ajuste das complexidade.

TIPO DE COMPLEXIDADE TOTAL TOTAL
FUNÇÃO FUNCIONAL COMPLEX. TIPO
FUNÇÃO
ARQ. SIMPLES X 7=
LÓGICO MÉDIA X 10=
COMPLEXA X 15 =
ARQ. SIMPLES X 5=
INTERFAC MÉDIA X 7=
E COMPLEXA X 10 =
ENTRADA SIMPLES X 3=
MÉDIA X 4=
COMPLEXA X 6=
SAÍDA SIMPLES X 4=
MÉDIA X 5=
COMPLEXA X 7=
CONSULTA SIMPLES X 3=
MÉDIA X 4=
COMPLEXA X 6=

*** TOTAL DE PONTOS DE FUNÇÃO NÃO-AJUSTADOS =

Figura 4.1 - Tabela de Cálculo de Pontos de Função Não-Ajustados

EXEMPLO
Após a identificação e classificação das funções do Sistema de Reservas - Projeto de
Desenvolvimento, temos condições de calcular os Pontos de Função Não-Ajustados desta
aplicação. Para isso, nos auxiliamos do seguinte formulário:

PONTOS DE FUNÇÃO NÃO-AJUSTADOS
TIPO DE COMPLEXIDADE TOTAL TOTAL
FUNÇÃO FUNCIONAL COMPLEX TIPO
. FUNÇÃO
ARQ. 3 SIMPLES X 7= 21 21
LÓGICO MÉDIA X 10=
COMPLEXA X 15=
ARQ. 1 SIMPLES X 5= 5 5
INTERFACE MÉDIA X 7=
COMPLEXA X 10=
ENTRADA 5 SIMPLES X 3= 15 35
2 MÉDIA X 4= 8
2 COMPLEXA X 6= 12
SAÍDA 3 SIMPLES X 4= 12 12
MÉDIA X 5=
COMPLEXA X 7=
CONSULTA 1 SIMPLES X 3= 3 11
2 MÉDIA X 4= 8
COMPLEXA X 6=

*** TOTAL DE PONTOS DE FUNÇÃO NÃO-AJUSTADOS = 84
Análise de Pontos de Função 33

EXERCÍCIO:
Calcule os Pontos de Função Não-Ajustados do Sistema Integrado de Estoque - Projeto de
Desenvolvimento.

4.2. CÁLCULO DO FATOR DE AJUSTE
valor do Fator de Ajuste é baseado em 14 Características Gerais dos Sistemas que medem a
funcionalidade geral da aplicação. A cada característica é atribuído um peso que varia de 0
a 5. A totalização das 14 características representa o Valor do Fator de Ajuste. Quando
aplicado, esse valor ajusta o total de Pontos de Função Não Ajustados em +/- 35%,
produzindo o valor final de Pontos de Função da Aplicação.
Os passos para calcular o Valor do Fator de Ajuste são:
1 - Avaliar o Nível de Influência cada uma das 14 Características Gerais dos Sistemas em uma
escala de 0 a 5.
2 - Somar os 14 Níveis de Influência obtidos para produzir o Nível de Influência da Aplicação.
3 - Aplicar o Nível de Influência à seguinte equação para produzir o Fator de Ajuste:

(NÍVEL DE INFLUÊNCIA * 0,01) + 0,65 = FATOR DE AJUSTE

A Figura 4-2 da página seguinte apresenta uma tabela que facilita o cálculo do Fator de Ajuste:

CARACTERÍSTICAS GERAIS NÍVEL DE
DOS SISTEMAS INFLUÊNCIA
1. Comunicação de Dados
2. Processamento Distribuído
3. Performance
4. Utilização do Equipamento
5. Volume de Transações
6. Entrada de Dados “On-Line”
7. Eficiência do Usuário Final
8. Atualização “On-Line”
9. Processamento Complexo
10. Reutilização de Código
11. Facilidade de Implantação
12. Facilidade Operacional
13. Múltiplos Locais
14. Facilidade de Mudanças
NÍVEL DE INFLUÊNCIA (NI)

FATOR DE AJUSTE = (NI * 0,01) + 0,65 =

Figura 4.2 - Tabela de Cálculo do Fator de Ajuste

EXEMPLO:
Fator de Ajuste do Sistema de Reservas - Projeto de Desenvolvimento pode ser calculado da
seguinte maneira:
Análise de Pontos de Função 34

FATOR DE AJUSTE

CARACTERÍSTICAS GERAIS NÍVEL DE
DOS SISTEMAS INFLUÊNCIA
1. Comunicação de Dados 4
2. Processamento Distribuído 0
3. Performance 0
4. Utilização do Equipamento 1
5. Volume de Transações 1
6. Entrada de Dados “On-Line” 5
7. Eficiência do Usuário Final 1
8. Atualização “On-Line” 5
9. Processamento Complexo 0
10. Reutilização de Código 0
11. Facilidade de Implantação 0
12. Facilidade Operacional 1
13. Múltiplos Locais 0
14. Facilidade de Mudanças 0
NÍVEL DE INFLUÊNCIA (NI) 18
FATOR DE AJUSTE = (NI * 0,01) + 0,65 = 0,83

EXERCÍCIO
Calcule o Fator de Ajuste do Sistema Integrado de Estoque - Projeto de Desenvolvimento.

4.3. CÁLCULO DE PONTOS DE FUNÇÃO AJUSTADOS
Nesta etapa são utilizados três tipos de fórmulas diferentes dependendo do tipo de cálculo que
se deseja obter. Os tipos de cálculo são:

Cálculo de Pontos de Função de um Projeto de Desenvolvimento.

Cálculo de Pontos de Função de um Projeto de Manutenção.

Cálculo de Pontos de Função da Aplicação

4.3.1. Cálculo de Pontos de Função de um Projeto de Desenvolvimento
Para calcular o total de Pontos de Função de um Projeto de Desenvolvimento, a seguinte
fórmula deve ser usada:

PF_DESENVOLVIMENTO = PF-NÃO_AJUSTADO * FATOR_AJUSTE

Onde:

PF_DESENVOLVIMENTO = Total de Pontos de Função de um Projeto de
Desenvolvimento
PF_NÃO_AJUSTADO = Total de Pontos de Função Não-Ajustados

FATOR_AJUSTE = Valor do Fator de Ajuste

Observações:
As funções do processo de conversão de dados estão incluídas no Total de Pontos de Função
Não-Ajustados.
Análise de Pontos de Função 35

EXEMPLO
Para encontrar os Pontos de Função Ajustados do Sistema de Reservas - Projeto de
Desenvolvimento, a seguinte fórmula deve ser preenchida.

PF_DESENVOLVIMENTO = PF_NÃO-AJUSTADO * FATOR_DE_AJUSTE
PF_DESENVOLVIMENTO = 84 * 0,83

PF_DESENVOLVIMENTO = 69,7 PF

EXERCÍCIO
Calcule os Pontos de Função Ajustados do Sistema Integrado de Estoque - Projeto de
Desenvolvimento.

4.3.2. Cálculo de Pontos de Função de um Projeto de Manutenção
Para calcular o total de Pontos de Função de Manutenção, a seguinte fórmula deve ser
utilizada:

PF_MANUTENÇÃO = [(PF_INCLUÍDO + PF_ALTERADO_ATUAL) *
FA_ATUAL] + (PF_EXCLUÍDO * FA_ANTERIOR)

Onde:

PF_MANUTENÇÃO=Total de Pontos de Função do Projeto de Manutenção

PF_INCLUÍDO=Total de Pontos de Função Não-Ajustados das funções que foram incluídas
na aplicação

PF_ALTERADO_ATUAL=Total de Pontos de Função Não-Ajustados das funções que foram
modificadas na aplicação. Este número reflete as funções após as modificações

PF_EXCLUÍDO=Total de Pontos de Função Não-Ajustados das funções que foram removidas
da aplicação.

FA_ATUAL=Fator de Ajuste após o projeto de manutenção

FA_ANTERIOR=Fator de Ajuste antes do projeto de manutenção

Observação:
As funções do processo de conversão de dados estão incluídas nesse cálculo no item
PF_INCLUIDO.

EXEMPLO
Para calcular os Pontos de Função Ajustados do Sistema de Reservas - Projeto de Manutenção,
os seguintes passos devem ser seguidos:
Análise de Pontos de Função 36

Passo 1: Identificar e Classificar as Funções Incluídas
Tipo de Função: Entradas Externas
DESCRIÇÃO DA FUNÇÃO Arq Iten S M C
. s
Cancelamento de Reservas 3 6 X

TOTAL DE ENTRADAS 1
EXTERNAS
Tipo de Função: Saídas Externas
DESCRIÇÃO DA FUNÇÃO Arq Iten S M C
. s
Relatório de Reservas 2 4 X
Canceladas

TOTAL DE SAÍDAS 1
EXTERNAS

Passo 2: Identificar e Classificar as Funções Alteradas
Tipo de Função: Arquivo Lógico Interno
DESCRIÇÃO DA FUNÇÃO Re Iten S M C
g. s
Arquivo de Reservas 1 11 X

Arquivo de Apartamentos 1 5 X

TOTAL DE ARQUIVOS LÓGICOS INTERNOS
2

Tipo de Função: Entradas Externas
DESCRIÇÃO DA FUNÇÃO Ar Iten S M C
q. s
Registro de Reservas 4 12 X
Alteração de Reserva 4 11 X

Inclusão de Apartamentos 1 7 X
Alteração de Apartamentos 1 7 X
Exclusão de Apartamentos 1 3 X

TOTAL DE ENTRADAS 3 2
EXTERNAS

Tipo de Função: Saídas Externas
DESCRIÇÃO DA FUNÇÃO Arq Iten S M C
. s
Relatório de Apartamentos 1 5 X

TOTAL DE SAÍDAS 1
EXTERNAS

Tipo de Função: Saídas Externas
Análise de Pontos de Função 37

DESCRIÇÃO DA Entrada Saída
FUNÇÃO S M C
A I A I
Consulta de Reservas 1 2 3 10 X

Consulta ao Cadastro 1 3 1 4 X
de Apartamentos

TOTAL DE CONSULTAS EXTERNAS 1 1

Passo 3: Identificar e Classificar as Funções Excluídas
Tipo de Função: Entradas Externas
DESCRIÇÃO DA FUNÇÃO Arq Itens S M C
.
Exclusão de Reservas 2 3 X

TOTAL DE ENTRADAS 1
EXTERNAS

Passo 4: Calcular Pontos de Função Não-Ajustados das Inclusões
TIPO DE COMPLEXIDADE TOTAL TOTAL
FUNÇÃO FUNCIONAL COMPLEX TIPO
FUNÇÃO
ARQ. LÓGICO SIMPLES X 7=
MÉDIA X 10=
COMPLEXA X 15=
SIMPLES X 5=
ARQ. MÉDIA X 7=
INTERFACE COMPLEXA X 10=
SIMPLES X 3=
ENTRADA MÉDIA X 4=
1 COMPLEXA X 6= 6 6
1 SIMPLES X 4= 4
SAÍDA MÉDIA X 5=
COMPLEXA X 7= 4
SIMPLES X 3=
CONSULTA MÉDIA X 4=
COMPLEXA X 6=
*** PONTOS DE FUNÇÃO NÃO-AJUSTADOS INCLUÍDOS = 10

Passo 5: Calcular Pontos de Função Não-Ajustados das Alterações após as
modifcações
TIPO DE COMPLEXIDADE TOTAL TOTAL
FUNÇÃO FUNCIONAL COMPLEX. TIPO
FUNÇÃO
2 SIMPLES X 7= 14
ARQ. MÉDIA X 10=
LÓGICO COMPLEXA X 15= 14
SIMPLES X 5=
ARQ. MÉDIA X 7=
INTERFACE COMPLEXA X 10=
3 SIMPLES X 3= 9
ENTRADA MÉDIA X 4=
Análise de Pontos de Função 38

2 COMPLEXA X 6= 12 21
1 SIMPLES X 4= 4
SAÍDA MÉDIA X 5=
COMPLEXA X 7= 4
1 SIMPLES X 3= 3
CONSULTA 1 MÉDIA X 4= 4
COMPLEXA X 6= 7

*** PONTOS DE FUNÇÃO NÃO-AJUSTADOS ALTERADOS =46
(Após Modificações)

Passo 6: Calcular Pontos de Função Não-Ajustados das Exclusões

TIPO DE COMPLEXIDADE TOTAL TOTAL
FUNÇÃO FUNCIONAL COMPLEX TIPO
FUNÇÃO
SIMPLES X 7=
ARQ. MÉDIA X 10=
LÓGICO COMPLEXA X 15=
SIMPLES X 5=
ARQ. MÉDIA X 7=
INTERFACE COMPLEXA X 10=
1 SIMPLES X 3= 3
ENTRADA MÉDIA X 4=
COMPLEXA X 6= 3
SIMPLES X 4=
SAÍDA MÉDIA X 5=
COMPLEXA X 7=
SIMPLES X 3=
CONSULTA MÉDIA X 4=
COMPLEXA X 6=

*** PONTOS DE FUNÇÃO NÃO-AJUSTADOS EXCLUÍDOS = 3

Passo 7: Calcular Fator de Ajuste Atual

CARACTERÍSTICAS GERAIS NÍVEL DE
DOS SISTEMAS INFLUÊNCIA
1. Comunicação de Dados 4
2. Processamento Distribuído 0
3. Performance 0
4. Utilização do Equipamento 1
5. Volume de Transações 2
6. Entrada de Dados “On-Line” 5
7. Eficiência do Usuário Final 1
8. Atualização “On-Line” 5
9. Processamento Complexo 0
10. Reutilização de Código 0
11. Facilidade de Implantação 0
12. Facilidade Operacional 1
13. Múltiplos Locais 1
14. Facilidade de Mudanças 0
NÍVEL DE INFLUÊNCIA (NI) 20
Análise de Pontos de Função 39

FATOR DE AJUSTE = (NI * 0,01) + 0,65 = 0,85

Observação: FATOR DE AJUSTE Anterior = 0,83

Passo 8: Calcular Pontos de Função Ajustados do Sistema de Reservas -
Projeto de Manutenção
PF_MANUTENÇÃO = ((PF_INCLUÍDO + PF_ALTERADO_ATUAL) * FA_ATUAL) +
(PF_EXCLUÍDO * FA_ANTERIOR)
PF_MANUTENÇÃO = (10 + 46) * 0,85 + 3 * 0,83 = 47,6 + 2,49

PF_MANUTENÇÃO = 50,1 PF

EXERCÍCIO
Calcule os Pontos de Função Ajustados do Sistema Integrado de Estoque - Projeto de
Manutenção, descrito no Manual de Estudos de Casos.

4.3.3. Cálculo de Pontos de Função de uma Aplicação

(a) Pontos de Função de Aplicação Já Implantada
Para calcular o total de Pontos de Função de uma Aplicação já implantada, a seguinte fórmula
deve ser usada:

PF_APLICAÇÃO=PF_DESENVOLVIMENTO -
(PF_CONVERSÃO*FATOR_AJUSTE)

Onde:
PF_APLICAÇÃO = Total de Pontos de Função da Aplicação
PF_NÃO-AJUSTADO = Total de Pontos de Função Não-Ajustados
FATOR_AJUSTE = Valor do Fator de Ajuste

b) Pontos de Função de Aplicação a partir de pontos de Função de um Projeto de
Desenvolvimento
Para calcular o total de Pontos de Função de uma Aplicação a partir do Total de Pontos de
Função de um Projeto de Desenvolvimento, a seguinte fórmula deve ser utilizada:

PF_APLICAÇÃO=PF_DESENVOLVIMENTO-
(PF_CONVERSÃO*FATOR_AJUSTE)

Onde:
PF_APLICAÇÃO = Total de Pontos de Função da Aplicação
PF_DESENVOLVIMENTO = Total de Pontos de Função do Projeto de Desenvolvimento
PF_CONVERSÃO = Total de Pontos de Função Não-Ajustados das Funções de
Conversão de Dados no Projeto de Desenvolvimento
FATOR_AJUSTE = Valor do Fator de Ajuste

(c ) Pontos de Função da Aplicação após um Projeto de Manutenção
Para produzir o total de Pontos de Função de uma Aplicação após um Projeto de Manutenção,
a seguinte fórmula deve ser usada:
Análise de Pontos de Função 40

PF_APLICAÇÃO = (PF_NÃO AJUSTADO + PF_INCLUÍDO
+ PF_ALTERADO_ATUAL -
PF_ALTERADO_ANTERIOR -
PF_EXCLUÍDO) * FA_ATUAL

Onde:
PF_APLICAÇÃO =Total de Pontos de Função da Aplicação
PF_NÃO AJUSTADO =Total de Pontos de Função Não-Ajustados da Aplicação antes do
projeto de manutenção
PF_INCLUÍDO =Total de Pontos de Função Não-Ajustados das funções que foram
incluídas na aplicação

PF_ALTERADO_ATUAL =Total de Pontos de Função Não-Ajustados das funções que foram
modificadas na aplicação. Este número reflete as funções após
as modificações
PF_ALTERADO_ANTERIOR =Total de Pontos de Função Não-Ajustados das funções que
foram modificadas na aplicação. Este número reflete as
funções antes das modificações
PF_EXCLUÍDO =Total de Pontos de Função Não-Ajustados das funções que
foram removidas da aplicação
FA_ATUAL =Valor do Fator de Ajuste após o projeto de manutenção

EXEMPLO
Ao final do Projeto de Manutenção do Sistema de Reservas é necessário recalcular o tamanho
da aplicação.

Passo 1: Calcular Pontos de Função Não-Ajustados das Alterações antes das
modificações

TIPO DE COMPLEXIDADE TOTAL TOTAL
FUNÇÃO FUNCIONAL COMPLEX. TIPO
FUNÇÃO
2 SIMPLES X 7= 14
ARQ. MÉDIA X 10=
LÓGICO COMPLEXA X 15= 14
SIMPLES X 5=
ARQ. MÉDIA X 7=
INTERFACE COMPLEXA X 10=
3 SIMPLES X 3= 9
ENTRADA MÉDIA X 4=
2 COMPLEXA X 6= 12 21
1 SIMPLES X 4= 4
SAÍDA MÉDIA X 5=
COMPLEXA X 7= 4
1 SIMPLES X 3= 3
CONSULTA 1 MÉDIA X 4= 4
COMPLEXA X 6= 7

*** PONTOS DE FUNÇÃO NÃO-AJUSTADOS ALTERADOS = 46
(Antes das Modificações)

Passo 2: Calcular Pontos de Função da Aplicação após as modificações
PF_APLICAÇÃO = (PF_NÃO-AJUSTADO + PF_INCLUÍDO +
PF_ALTERADO_ATUAL - PF_ALTERADO_ANTERIOR -
PF_EXCLUÍDO) * FA_ATUAL
PF_APLICAÇÃO = (84 + 10 + 46 - 46 - 3) * 0,85
Análise de Pontos de Função 41

PF_APLICAÇÃO = 77,4 PF

EXERCÍCIO
Recalcule o tamanho do Sistema Integrado de Estoque após o encerramento do Projeto de
Manutenção.

5 Dimensionando Projetos com FPA
Uma das principais vantagens do FPA sobre outras técnicas de medição de aplicações é a
possibilidade de estimar dimensão de projetos desde as primeiras fases de análise e desenho. A
precisão da estimativa do tamanho de uma aplicação varia de acordo com o grau de
conhecimento adquirido sobre a mesma. Segundo a empresa SPR - Software Productivity
Research, ao final da fase de desenho do sistema é possível fazer estimativas com uma margem
de erro de +/- 10%.

A figura 5.1 apresenta uma comparação entre o nível de conhecimento do projeto e a precisão
das estimativas.

Conhecimento do Projeto

10% 25% 40% 60% 80% 90% 100%

PrecisãoEstimativa

+35% +30% +25% +20% +10% +5%

Fase 1 Fase 2 Fase 3 Fase 4 Fase 5 Fase 6
Requerimentos Desenho Final Desenho Final Codificação Teste Instalação
Figura 5-1: Relação entre Conhecimento do Projeto e Precisão da Estimativa FPA

Entretanto, para se fazer estimativas antes do final da Fase de Desenho com uma margem de
erro aceitável, é aconselhável que o usuário se apoie em algum método com base estatística
para suprir a falta de conhecimento de algumas funções da aplicação. A seguir é apresentada a
descrição de um desses métodos.

5.1. MÉTODO DE ESTIMATIVA POR PERCENTUAL
A partir de dados coletados em mais de 120 projetados, a empresa SPR - Software Productivity
Research verificou a existência de uma correlação entre os vários tipos de funções de uma
aplicação, que pode ser expressa da seguinte forma:
Análise de Pontos de Função 42

A quantidade de Arquivos Lógicos Internos representa 25% do total de funções de uma
aplicação.

A quantidade de Arquivos de Interface Externa representa 3% do total de funções de uma
aplicação.

A quantidade de Entradas Externas representa 30% do total de funções de uma aplicação.

A quantidade de Saídas Externas representa 28% do total de funções de uma aplicação.

A quantidade de Consultas Externas representa 14% do total de funções de uma aplicação.

Baseado nesta análise estatística, o usuário necessita identificar apenas a quantidade de um dos
tipos de função da aplicação para derivar a quantidade dos outros. A quantidade de um tipo de
função deve ser representada sempre em valores inteiros.
Para calcular os Pontos de Função Não-Ajustados, deve-se sempre trabalhar com uma
complexidade funcional média para todos os tipos de função.
No Cálculo dos Pontos de Função Ajustados, deve-se considerar o valor do Fator de Ajuste
igual a 1.

Observação:
É importante lembrar que este método presume um relacionamento lógico e previsível entre
variáveis independentes, quando na realidade para um determinado projeto esse
relacionamento pode não acontecer. Nesses casos, à medida que aumenta o grau de
conhecimento da aplicação, pode-se identificar qual e em que quantidade um determinado tipo
de função ficou fora da média.

Exemplo
Ao analisar uma determinada aplicação antes do final da Fase de Desenho, só se conseguiu
identificar a existência de 13 arquivos lógicos internos.
Aplicando o método descrito, pode-se concluir que:

Se 13 ARQUIVOS LÓGICOS INTERNOS = 25% do TOTAL DE FUNÇÕES, então:
TOTAL DE FUNÇÕES = 52

Se ARQUIVOS DE INTERFACE EXTERNA = 3% do TOTAL DE FUNÇÕES, então:
ARQUIVOS DE INTERFACES EXTERNAS = 1,56 (arredonda-se para 2)

Se ENTRADAS EXTERNAS = 30% do TOTAL DE FUNÇÕES, então: ENTRADAS
EXTERNAS = 15,6 (arredonda-se para 16)

Se SAÍDAS EXTERNAS = 28% do TOTAL DE FUNÇÕES, então: SAÍDAS
EXTERNAS = 14,56 (arredonda-se para 15)

Se CONSULTAS EXTERNAS = 14% do TOTAL DE FUNÇÕES, então: CONSULTAS
EXTERNAS = 7,28 (arredonda-se para 7)
A partir desses valores, pode-se calcular os Pontos de Função Não-Ajustados da aplicação.

TIPO DE COMPLEXIDADE TOTAL TOTAL
FUNÇÃO FUNCIONAL COMPLEX TIPO
FUNÇÃO
ARQ. 13 MÉDIA X 10= 130 130
LÓGICO
ARQ. 2 MÉDIA X 7= 14 14
INTERFACE
ENTRADA 16 MÉDIA X 4= 64 64
SAÍDA 15 MÉDIA X 5= 75 75
Análise de Pontos de Função 43

CONSULTA 7 MÉDIA X 4= 28 28
*** TOTAL DE PONTOS DE FUNÇÃO NÃO-AJUSTADOS =311

Considerando o Valor do Fator de Ajuste igual a 1, este valor corresponde aos Pontos de
Função Ajustados da aplicação.

5.2. EXEMPLO
No início da Análise do Projeto de Desenvolvimento do Sistema de reservas (veja o Manual de
Estudos de Casos), havíamos identificado apenas a quantidade de arquivos lógicos internos.
Utilizando o Método de Estimativa por Percentual podemos afirmar que:

Se 3 ARQUIVOS LÓGICOS INTERNOS = 25% do TOTAL DE FUNÇÕES, então:
TOTAL DE FUNÇÕES = 12

Se ARQUIVOS DE INTERFACE EXTERNA = 3% do TOTAL DE FUNÇÕES, então:
ARQUIVOS DE INTERFACES EXTERNAS = 0,36 (arredonda-se para 1)

Se ENTRADAS EXTERNAS = 30% do TOTAL DE FUNÇÕES, então: ENTRADAS
EXTERNAS = 3,6 (arredonda-se para 4)

Se SAÍDAS EXTERNAS = 28% do TOTAL DE FUNÇÕES, então: SAÍDAS
EXTERNAS = 14,56 (arredonda-se para 15)

Se SAÍDAS EXTERNAS = 28% do TOTAL DE FUNÇÕES, então: SAÍDAS
EXTERNAS = 3,36 (arredonda-se para 3)

Se CONSULTAS EXTERNAS = 14% do TOTAL DE FUNÇÕES, então: CONSULTAS
EXTERNAS = 1,68 (arredonda-se para 2)
A partir desses valores, pode-se calcular os Pontos de Função Não-Ajustados do Sistema de
Reservas:

TIPO DE COMPLEXIDADE TOTAL TOTAL
FUNÇÃO FUNCIONAL COMPLEX TIPO
FUNÇÃO
ARQ. 3 MÉDIA X 10= 30 30
LÓGICO
ARQ. 1 MÉDIA X 7= 7 7
INTERFACE
ENTRADA 4 MÉDIA X 4= 16 16
SAÍDA 3 MÉDIA X 5= 15 15
CONSULTA 2 MÉDIA X 4= 8 8
*** TOTAL DE PONTOS DE FUNÇÃO NÃO-AJUSTADOS = 76

Considerando o Valor do Fator de Ajuste igual a 1, este valor corresponde aos Pontos de
Função Ajustados do Sistema de Reservas.

5.3. EXERCÍCIO
No início da Análise do Projeto de Desenvolvimento do Sistema Integrado de Estoque (veja no
Manual de Estudos de Casos), havíamos identificado apenas a quantidade de arquivos internos.
Utilize o Método de Estimativa por Percentual para calcular os pontos de função da aplicação.
Análise de Pontos de Função 44

6. Apêndice
A. APLICAÇÕES DA TÉCNICA FPA
A técnica FPA é utilizada para medir o tamanho de um projeto ou aplicação conforme
mostrado nas seções anteriores. No entanto, quando utilizada em combinação com outras
medidas, a técnica FPA poderá ter várias aplicações.
Por exemplo, a técnica FPA pode ser utilizada para determinar:

Nível de Produtividade da Equipe

Esforço de Desenvolvimento de Software

Custo de Software

Taxa de Produção de Software

Taxa de Manutenção de Software
Análise de Pontos de Função 45

A.1 PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE
A produtividade na construção de um software traduz a velocidade com que o software foi
construído, isto é, quantas unidades de tamanho do software (Pontos de Função) foram
construídas em uma unidade de tempo (horas, meses etc.) ou quantas unidades de tempo foram
consumidas para produzir uma unidade de tamanho do software.

PRODUTIVIDADE = TEMPO / PONTOS POR FUNÇÃO

Por exemplo, imaginando-se que um analista trabalhou 900 horas para desenvolver uma
aplicação de 400 PFs, pode-se afirmar que sua produtividade neste trabalho foi:

PRODUTIVIDADE = 900 h / 400 PF = 2,25 horas de trabalho / Ponto de Função
Em outra ocasião, esse mesmo analista trabalhou 1800 horas para desenvolver outra aplicação
cujo tamanho também era 400 PFs. Neste caso a sua produtividade foi:

PRODUTIVIDADE = 1800 h / 400 PF = 4,50 horas de trabalho / Ponto de Função

Por que a produtividade desse analista sofreu alteração tão significativa de o tamanho das duas
aplicações era idêntico?

Vários fatores podem influenciar a produtividade no desenvolvimento de software, por
exemplo:

Linguagem de Codificação

Experiência da Equipe

Utilização de Ferramentas CASE

etc.

Segundo dados estatísticos, os seguintes níveis de produtividade por linguagem foram
encontrados
Análise de Pontos de Função 46

PRODUTIVIDADE (HORAS / PONTO DE FUNÇÃO)
• LINGUAGEM DE MÁQUINA
• ASSEMBLER
• MACRO ASSEMBLER
• C
• BASIC INTERPRETADO
• FORTRAN II DE 26 A 30 HORAS
• FORTRAN 66 ESFORÇO POR PONTO
DE FUNÇÃO
• FORTRAN 77
• ALGOL 68
• ALGOL W
• ANSI COBOL 74
• MUMPS
• ANSI COBOL 85
• PASCAL
• BASIC COMPILADO
• PL/1
• ADA
• PROLOG DE 13 A 25 HORAS
• LISP ESFORÇO POR PONTO
DE FUNÇÃO
• FORTH
• ANSI BASIC
• AI SHELL
• SIMULAÇÃO
• TABELA DE DECISÃO
• APOIO À DECISÃO
• ESTATÍSTICA
• APL DE 6,5 A 12 HORAS
• ORIENTADAS A OBJETO ESFORÇO POR PONTO
DE FUNÇÀO
• OBJECTIVE C
• C ++
• SMALLTALK
• GERADOR DE PROGRAMAS DE 4,3 A 8,6 HORAS DE
ESFORÇO POR PONTO
DE FUNÇÃO
• LINC
• IDEAL DE 2,6 A 4,3 HORAS DE
• QUERY ESFORÇO POR PONTO
DE FUNÇÃO
• SQL
• PLANILHA ELETRÔNICA
FONTE: CAPERS JONES
Análise de Pontos de Função 47

A.2. ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE
O esforço necessário para desenvolver um software pode ser definido como sendo a
quantidade de horas de trabalho que serão necessárias para produzir um software. Para fazer
esse cálculo, a seguinte fórmula pode ser utilizada:

ESFORÇO = PRODUTIVIDADE * TAMANHO DO
SOFTWARE

Por exemplo, qual é o esforço necessário para desenvolver um software de 500 PFs por um
analista cuja produtividade histórica é de 2,5 horas de trabalho por ponto de função.
Aplicando a fórmula, tem-se:
ESFORÇO = 2,5 horas / ponto de função * 500 pontos de função
ESFORÇO = 1250 horas de trabalho
Considerando uma semana de 40 horas e um ano 52 semanas, o esforço pode ser expresso nas
seguintes unidades:

Hora de Trabalho Bruta (uma hora de trabalho por indivíduo, incluindo interrupções
normais).

Hora de Trabalho Líquida (uma hora de trabalho produtivo, que eqüivale a cerca de 0,75
hora de trabalho bruta).

Mês de Trabalho Bruto (aproximadamente 174 horas de trabalho, que eqüivale a (40 horas
* 52 semanas) / 12 meses)).

Mês de Trabalho Líquido (aproximadamente 130 horas de trabalho, que eqüivale a cerca de
0,75 mês de trabalho bruto).

Ano de Trabalho Bruto (aproximadamente 2080 horas de trabalho, que eqüivale a (40
horas * 52 semanas)).

Ano de Trabalho Líquido (aproximadamente 1560 horas de trabalho, que eqüivale a 0,75
ano de trabalho bruto).

EXEMPLO
Baseado na dimensão de 69,7 Pontos de Função do Sistema de Reservas, podemos calcular o
esforço de desenvolvimento nas seguintes linguagens:

LINGUAGEM PRODUTIVIDADE ESFORÇO ESFORÇO
(Hh/PF) (Hh) (HM)
COBOL 74 28 Hh/PF 1952 Hh 11,22 HM
PL/1 18 Hh/PF 1255 Hh 7,21 HM
LINC 3 Hh/PF 209 Hh 1,20 HM

Onde: Hh Homem-hora
HM Homem-mês

A.3. CUSTO DE SOFTWARE

O custo de um software pode ser definido como sendo o tamanho do software em PFs
multiplicado pelo custo de um Ponto de Função. Pode ser expresso pela fórmula:
Análise de Pontos de Função 48

CUSTO TOTAL =TAMANHO DO SISTEMA * CUSTO
UNITÁRIO

O custo de um ponto de função varia de instalação para instalação em função de diversos
fatores tais como: tecnologia utilizada, nível salarial da equipe, etc, podendo ser obtido através
de dados históricos.

EXEMPLO
O custo do ponto de função de uma instalação para uma determinada tecnologia (linguagem de
programação) pode ser obtido a partir da análise de sistemas contratados/desenvolvidos e seus
respectivos custos, como segue:

Sistema Tamanho Custo Total Custo Unitário
(PF) ($) ($)
Contabilidade 640 PF $26.000,00 $40,63
Controle de 1860 PF $94.000,00 $50,54
Estoque
Controle de Vendas 830 PF $36.000,00 $43,37
Recursos Humanos 770 PF $56.000,00 $72,73
Totais 4.100 PF $212.000,00 Custo Unitário Médio:
$51,71

Desta forma, para se contratar o desenvolvimento de um sistema de 1200 PFs, o custo
estimado será de $62.052,00.

A.4. TAXA DE PRODUÇÃO DE SOFTWARE
A taxa de produção de software de uma instalação é a quantidade de pontos de função que o
setor de desenvolvimento libera para o setor de produção em uma determinada unidade de
tempo (normalmente é expressa em meses ou anos).
Uma das utilizações desta medida é verificar se a taxa de retorno dos investimentos na área de
informática está dentro do previsto.

EXEMPLO
No período de 1 ano, o setor de desenvolvimento liberou para produção os seguintes sistemas:

Sistema Tamanho
(PF)
Controle de Estoque 560 PF
Controle de Vendas 830 PF
Contas a Receber 670 PF
Total 2.060 PF

Desta forma, a Taxa de Produção de Software do período foi: 2.060 PF/ano

A.5. TAXA DE MANUTENÇÃO DE SOFTWARE
A taxa de manutenção de software de uma instalação é a quantidade de pontos de função de
projetos de manutenção, realizados em um período de tempo para as diversas aplicações,
comparado com o seu tamanho total. Normalmente, consideram-se períodos de meses ou anos
para a avaliação desta taxa.
Uma das utilizações desta medida é verificar a qualidade de um software.

EXEMPLO
O quadro abaixo apresenta o volume de manutenção ocorrido durante um ano em uma
determinada instalação:
Análise de Pontos de Função 49

Sistema Tamanho Projetos de Taxa
Manutenção Manutenção
no ano
Contabilidade 640 PF 76 PF 11,88%
Controle de 1860 PF 180 PF 9,68%
Estoque
Controle de 830 PF 57 PF 6,87%
Vendas
Recursos 770 PF 65 PF 8,44%
Humanos
Total: 4100 PF 378 Taxa Manutenção
Média
9,22%