Você está na página 1de 13

Universidade Paulista (UNIP)

Engenharia de Software

Análise de Pontos de Função

1. Conceituação

A análise por Pontos de Função (FPA) é uma técnica para mensuração de sistemas,
desenvolvida por Allan J. Albrecht (IBM, White Plains) em 1979, e que tem ganho um
significativo contingente de usuários.

O International Function Point Users Group IFPUG tem procurado difundir esta técnica e
padronizar os conceitos inerentes a ela. Recentemente a ISO/IEC criaram um grupo para
normalizar o processo de mensuração de software, cuja proposição inicial está baseada
nesta técnica.

A FPA dimensiona o software, considerando a perspectiva do usuário, quantificando a


funcionalidade que ele proporciona ao seu usuário final baseado principalmente no seu
desenho lógico. 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. Estas funções são
divididas nos seguintes grupos ou tipos:

 Arquivo Lógico Interno: Trata-se de grupos de dados ou informações de


controle, inter-relacionados, requisitados pelo usuário como necessidades de
informação, cuja manutenção, realizada por um processo elementar da aplicação
(alteração, inclusão, exclusão), acontece dentro da fronteira da aplicação.
Complexidade Funcional dos ALI (Arquivo Lógico Interno): A complexidade é
determinada em função da quantidade de registros lógicos e itens de dados
referenciados.
 Arquivo de Interface Externa (AIE): São grupos de dados, inter-relacionados,
necessários para a aplicação, mantidos e armazenados fora do sistema que está
sendo dimensionado. Baseia-se na Identificação dos dados armazenados fora da
fronteira da aplicação, dados que não sofrem manutenções pela aplicação que está
sendo avaliada, dados identificados como necessidades de informação do usuário e
dos dados que são contados como ALI para outra aplicação. A complexidade é
determinada em função da quantidade de registros lógicos e itens de dados
referenciados.
 Entradas Externas – EE: São grupos de dados que entram no sistema, utilizados
para a manutenção dos Arquivos Lógicos Internos, ou seja, provocam uma
inclusão, exclusão e/ou alteração nos dados dos ALI. Baseia-se na Identificação dos
processos que recebem dados externos e que atualizam arquivos lógicos internos. A
complexidade funcional da EE é determinada em função da quantidade de arquivos
lógicos internos e itens de dados referenciados.
 Saídas Externas – SE: representam as atividades do sistema que transformam
dados dos arquivos lógicos internos e geram resultados que são exibidos ao
usuário. A contagem das saídas externas é baseada na quantidade de arquivos
lógicos referenciados e na quantidade de itens de dados referenciados. A
Identificação da SE baseasse nos processos que enviam dados para fora da
fronteira da aplicação. Contando-se cada processo que envia dados ou informações
para fora da fronteira da aplicação, bem como cada processo que necessitar de
lógica de processamento diferente da utilizada em outras saídas externas que
tenham o mesmo formato. A complexidade funcional das SE é determinada em
função da quantidade de arquivos lógicos e itens de dados referenciados.
 Consultas Externas – CE: São requisições de informações que, para serem
satisfeitas, precisam que sejam combinados parâmetros de entradas e saídas que
permitem a recuperação da informação solicitada pelo usuário.

As funções contribuem para o cálculo de Pontos de Função com base na quantidade


(número de funções) e na complexidade funcional relativa atribuída a cada uma delas.

A tabela abaixo indica a complexidade de um Arquivo Lógico Interno ou Arquivo de


Interface Externa de acordo com o número de Tipos de Elementos de Dados (TD - um
campo não recursivo de dado, único e reconhecido pelo usuário, em uma visão geral e
limitada, seria cada atributo de uma tabela) e de Tipos de Elementos de Registros (TR - É
um subgrupo de dados. De forma simples, quando um agrupamento de tabelas é
caracterizado como um único arquivo lógico, ALI ou AIE, a tabela reconhecida pelo
usuário é contada e as demais se tornam tipos de registro. Os campos de dados dos tipos
de registro são atribuídos a todos os arquivos lógicos relacionados a estes tipos de
registro) identificados para ele.

A tabela abaixo indica a complexidade de uma Entrada Externa de acordo com o número
de Tipos de Elementos de Dados e de Arquivos Referenciados identificados para ela.
Também é utilizada para determinar a complexidade das entradas de uma Consulta
Externa.

Complexidade Entrada Externa (EE)

A tabela abaixo indica a complexidade de uma Saída Externa de acordo com o número de
Tipos de Elementos de Dados e de Arquivos Referenciados identificados para ela. Também
é utilizada para determinar a complexidade das saídas de uma Consulta Externa.

Complexidade Saída Externa (SE) e Consulta Externa (CE)

Tabela de contribuição:
A tabela de contribuição é padronizada pelo IFPUG, todos os usuários da técnica de
análise de pontos de função utilizam os mesmos valores. Após identificar a complexidade
de cada processo elementar do seu sistema, é possível determinar a contribuição desses
para a contagem dos pontos de função.

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

Trata-se de uma técnica que possibilita medir a funcionalidade de um software ou


aplicativo, sob a visão do usuário, e a partir da descrição dos requisitos do usuário para o
sistema. Os principais objetivos da técnica de APF:

 Medir a funcionalidade dos sistemas independentemente da tecnologia que foi


utilizada no seu desenvolvimento;
 Avaliar com base no que o sistema faz, ou seja, as funções que o sistema executa,
independente da tecnologia em que foi implementado;
 Identificar um padrão de medida para a produtividade e qualidade;
 Fornecer ferramenta para auxiliar nas estimativas de desenvolvimento de software;
 Possibilitar o uso por diferentes projetos, em diferentes empresas e ambientes
variados, demonstrando consistência na comparação;
 Ser compreensível pelo pessoal não técnico;
 Ser utilizável em todo o ciclo de desenvolvimento do software;
 Ser um processo simples de mensuração;
 Ser conciso e consistente.

Mede a funcionalidade do sistema baseado na visão do usuário, apresentando as


seguintes características:

 Independência de tecnologia utilizada.


 Produção de resultados consistentes.
 Baseada na visão do usuário.
 Significância para o usuário final.
 Utilização em estimativas.
 Passível de automação.

Apresenta dificuldades por possuir relativa subjetividade, considerando que reflete a visão
do usuário. A complexidade está relacionada com volumes de arquivos lógicos, registros
lógicos e itens de dados, identificados. Considera 14 Itens de influência subdivididos em
subitens que abrangem todos os aspectos relacionados às necessidades de uso de
ferramentas para atendimento das requisições dos usuários.

Definição da Fronteira da Aplicação

Quais os limites do que vou medir? Esta é a etapa em que é estabelecido o escopo do
sistema objeto da avaliação, sob a visão do usuário. Neste momento são identificados
todos os relacionamentos do sistema, sob avaliação, com o seu exterior, e são
identificadas as pertinências dos dados e os processos suportados pelo sistema que está
sendo contado. Em resumo a fronteira separa o sistema, sob avaliação, das aplicações
externas.

2. Cálculo dos Pontos de Função

Determina-se o número de FPA de uma aplicação em três etapas de avaliação:

 Primeira Etapa (Pontos de Função não-ajustados): Refletem as funções específicas


e mensuráveis do negócio, providas ao usuário pela aplicação;
 Segunda Etapa (Fator de Ajuste): Representam a funcionalidade geral provida ao
usuário pela aplicação;
 Terceira Etapa (Pontos de Função Ajustados): Refletem a aplicação do Fator de
Ajuste sobre o resultado apurado na primeira etapa.
As regras de Contagem de FPA, apresentadas adiante, estão baseadas no Manual de
Práticas de Contagem da Análise por Pontos de Função - Release 3.1, publicada pelo
International Function Point Users Group IFPUG.

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

Após a definição sobre o tipo de contagem que será realizada, ou seja, se o sistema a ser
dimensionado é um projeto de desenvolvimento, manutenção ou produção, e após a
identificação da fronteira da aplicação, segue-se à identificação dos grupos de funções
tipo dados e transações, e a contagem de seus registros e itens de dados.

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 e
visíveis ao usuário são contados. As funções específicas da aplicação, sob a ótica do
usuário, devem ser identificadas e agrupadas segundo o seu tipo, ou seja:

 Arquivo Lógico Interno


 Arquivo de Interface Externa
 Entradas Externas
 Saídas Externas
 Consultas Externas

Cada função, por meio de critérios próprios, deverá ser classificada segundo a sua
complexidade funcional relativa, em: Simples, Média ou Complexa. A cada função será
atribuído um número de pontos, segundo seu tipo e complexidade funcional relativa:

Tipo de Função Complexidade Funcional Relativa


SIMPLES MÉDIA COMPLEXA
Arquivo Lógico Interno 7 10 15
Arquivo de Interface Externa 5 7 10
Entrada Externa 3 4 6
Saída Externa 4 5 7
Consulta Externa 3 4 6
Exemplo

Tipo de Função Complexidade Total da Total de pontos


Funcional Complexidade de Função
ALI
___ Baixa X 7 ________________
___ Média X 10 ________________
___ Alta X 15 ________________

AIE
___ Baixa X 5 ________________
___ Média X 7 ________________
___ Alta X 10 ________________

EE
___ Baixa X 3 ________________
___ Média X 4 ________________
___ Alta X6 ________________

SE
___ Baixa X 4 ________________
___ Média X 5 ________________
___ Alta X7 ________________

CE
___ Baixa X 3 ________________
___ Média X 4 ________________
___ Alta X6 ________________

Total geral de pontos de função brutos obtidos (APF


brutos):

2.2. Cálculo do Fator de Ajuste


O nível de influência de cada uma das 14 características, a serem observadas varia de 0 a
5, correspondendo a uma escala de influência que parte da hipótese de nenhuma
influência (0) até o grau de influência máxima (5).

As características gerais do sistema podem influenciar no seu tamanho variando no


intervalo de –35% a +35%. Isto implica em um intervalo de variação para o fator de
ajuste da ordem de 0,65 a 1,35.

As características gerais de um sistema são:

 COMUNICAÇÃO DE DADOS: Quando são utilizados recursos de Comunicação de


Dados para o envio ou recebimento de dados e informações de controle utilizados
pela aplicação;

 PROCESSAMENTO DISTRIBUÍDO: Quando a aplicação prevê a distribuição de


dados ou de processamento entre várias CPUs da instalação;

 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;

 UTILIZAÇÃO DO EQUIPAMENTO: Representa a necessidade de se fazer


considerações especiais no desenho dos sistemas para que a configuração do
equipamento não sofra degradação;
 VOLUME DE TRANSAÇÕES: Avalia o impacto no desenho da aplicação do volume
de transações previsto para ela;

 ENTRADA DE DADOS "ON-LINE": Avalia o volume de transações que são


entradas de dados interativas;

 EFICIÊNCIA DO USUÁRIO FINAL: Analisa as funções "on-line" desenhadas e


disponibilizadas voltadas para a eficiência do usuário final;
 ATUALIZAÇÃO "ON-LINE": Verifica o volume de arquivos lógicos internos que
sofrem manutenção "on-line" e o impacto do processo de recuperação de seus
dados;

 PROCESSAMENTO COMPLEXO: Considera o impacto, sobre o desenho da


aplicação, causado pelo tipo de complexidade do processamento;

 REUTILIZAÇÃO DE CÓDIGO: Avalia se a aplicação e seu código foram


especificamente projetados e desenvolvidos para serem reutilizados em outras
aplicações;

 FACILIDADES DE IMPLANTAÇÃO: Considera o esforço dispendido para o


atendimento dos requerimentos de conversão de dados para a implantação da
aplicação;

 FACILIDADE OPERACIONAL: Avalia o desenho da aplicação quanto aos


requisitos estabelecidos para inicialização, "backup" e recuperação voltados à
minimização da intervenção manual do operador;

 MÚLTIPLOS LOCAIS: Quando a aplicação for especificamente projetada e


desenvolvida para ser instalada em múltiplos locais ou para múltiplas organizações;

 FACILIDADES DE MUDANÇAS: Quando os requisitos da aplicação preveem o


projeto e desenvolvimento de mecanismos que facilitem mudanças operacionais,
tais como: capacidade de emissão de relatórios genéricos, de consultas flexíveis ou
de alterações nos dados de controle do negócio (parametrização).

A cada característica será atribuído um peso 0 (zero) a 5 (cinco), de acordo com o nível
influência na aplicação, observando-se os critérios estabelecidos para cada característica,
representando:

 0 (zero): Nenhuma influência


 1 (hum): Influência Mínima
 2 (dois): Influência Moderada
 3 (três): Influência Média
 4 (quatro): Influência Significativa
 5 (cinco): Grande Influência

O Nível de Influência Geral é obtido pelo somatório do nível de influência de cada


característica e o Fator de Ajuste é obtido pela expressão:
FATOR DE AJUSTE = FA
Nível de Influência Geral = NI
FATOR DE AJUSTE = 0,65 + (NI * 0,01)

2.3. Cálculo dos Pontos de Função Ajustados

O total de Pontos de Função da aplicação será encontrado por meio da multiplicação do


número de Pontos de Função não-ajustados pelo Fator de Ajuste.

PF ajustado = (PF não ajustado + PF incluído + PF alterado atual – PF alterado anterior – PF


excluído) X Fator de ajuste atual

3. Aplicações da Técnica de Análise por Pontos de Função

A técnica FPA tem por finalidade a mensuração do tamanho de um software ou aplicação.


No entanto, quando utilizada em combinações com outras medidas, poderá ter várias
utilidades. Pode-se destacar a utilização desta técnica nos seguintes aspectos:

 ESTIMATIVA DA DIMENSÃO DE PROJETOS: Uma das principais vantagens da


FPA sobre outras técnicas de medição de aplicações é a possibilidade de estimar a
dimensão de projetos desde as primeiras fases da análise de sistemas. A precisão
da estimativa do tamanho de uma aplicação varia de acordo com o grau de
conhecimento adquirido sobre a mesma, ou em outras palavras, da fase em que se
encontra o projeto. Segundo a empresa Software Produtivity Research, ao final da
fase de desenho do sistema é possível se fazer estimativas com margem de erro de
+ ou - 10%. O conhecimento sobre o sistema e o grau de precisão das estimativas
segundo a tabela abaixo:

CONHECIMENTO DO PRECISÃO DA
FASE DO PROJETO
PROJETO ESTIMATIVA
Planejamento 10% (+/- 35%)
Requerimentos 25% (+/- 30%)
Desenho Inicial (Projeto
40% (+/- 20%)
Lógico)
Desenho Final (Projeto Físico) 60% (+/- 10%)
Construção 80% (+/- 5%)
Testes 90% (+/- 2%)
Implantação 100% 0%

Entretanto, para se fazer estimativas antes do final da fase de Desenho Final (Projeto
Físico) com uma margem de erro aceitável, é aconselhável que o usuário se apoie em
algum método em bases estatísticas, para suprir a falta de conhecimento de algumas
funções da aplicação.

 NÍVEL DE PRODUTIVIDADE DA EQUIPE: 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). Podemos, também, exprimir a produtividade
em termos da quantidade de unidades de tempo que são consumidas para
construir urna unidade de tamanho do software. Assim:

PRODUTIVIDADE = TEMPO / PONTOS DE FUNÇÃO

 DIMENSIONAMENTO DO ESFORÇO PARA DESENVOLVIMENTO: O esforço para


desenvolver um software pode ser definido como sendo a quantidade de tempo
(horas) de trabalho que serão necessárias para produzir um sistema. Conhecida a
produtividade da equipe de desenvolvimento a fórmula abaixo poderá ser aplicada:
ESFORÇO = PRODUTIVIDADE * TAMANHO DO SOFTWARE

TAXA DE MANUTENÇÃO DO SOFTWARE: A taxa de manutenção de um determinado


software, ou do conjunto de sistemas de uma instalação, é a quantidade de pontos de
função que necessitaram manutenção em relação ao seu tamanho, em um período de
tempo.

Benefícios com o Uso da APF

 Dimensionamento dos sistemas, em produção e/ou em desenvolvimento bem


como, solicitações de manutenção.
 Apoio para estimativa de custos e recursos requeridos para o desenvolvimento e
manutenção de software.
 Apoio para gerenciamento da qualidade e produtividade no processo de
desenvolvimento do software.
 Apoio para a tomada de decisão relativa a seleção para aquisição de pacotes, e
contratação de serviços.

Bibliografia
SOMMERVILLE, I. Engenharia de Software. 8th ed., Addison-Wesley, 2007.
PFLEEGER, Shari Lawrence. Engenharia de Software: teoria e prática; tradução Dino
Franklin; revisão técnica Ana Regina Cavalcanti da Rocha. – 2. Ed. – São Paulo – Prentice
Hall, 2004.
ROBERTSON, James; ROBERTSON, Suzanne. Complete systems analysis: the workbook,
the textbook, the answers. Nova York: Dorst House Publishing,1994.
KOTONYA, G., SOMMERVILLE, I., Requirements engineering: processes and techniques.
Chichester, England: John Wiley, 1998.

Exemplo de aplicação para utilização de APF:


Descrição Tipo TD TR Complexidade
Usuário
Cliente
Carro
Aluga
Total de Pontos de Função

Descrição TIPO TD AR Complexidade Contribuição


Incluir Cliente
Excluir Cliente
Alterar Cliente
Incluir Usuário
Excluir Usuário
Alterar Usuário
Incluir Automóveis
Excluir Automóveis
Alterar Automóveis
Registrar Locação
Finalizar Locação
Login (com criptografia)
Consulta clientes por nome
Consulta carros alugados
Consulta data do aluguel
Consulta clientes com carro alugado
Consulta carro mais alugado
Consulta cliente que mais aluga
Total de Pontos de Função
Tipos de Dados (TD) e Arquivos Referenciados (AR)

Descrição Contribuição
Funções do tipo dado
Funções do tipo transação
Total de Pontos de Função Não Ajustados =

Você também pode gostar