Fundamentos da Engenharia de Software



 
 
 
 

Métrica de Pontos de Função



 
 
 
 

André Costa de Jesus & Helena Prudente Bartholo









Introdução:

Tradicionalmente, um dos aspectos mais difíceis da análise de sistemas é a estimação do tamanho de um projeto e do tempo requerido para desenvolvê-lo. Entretanto, é fundamental que se tenha a informação do esforço necessário para desenvolver um produto de software e a partir dela prever e acompanhar o esforço despendido no desenvolvimento de outros produtos de porte semelhante.

Mas como identificar o porte de um produto de software? Com este intuito foram criadas vários tipos de medidas, algumas fáceis de serem obtidas outras mais abstratas.

Uma das maneiras de medir o tamanho do software é pela quantidade de linha de código que este possui. Este método, no entanto, apresenta alguns problemas. Primeiro, só é possível contar o número de linhas de código depois que este está pronto. Além disso, esta medida penaliza as linguagens de alto nível e frequentemente comete erros quando há melhoria da produtividade, já que assume, incorretamente, que esta implica o crescimento do número de linhas de código que pode ser desenvolvida em um ano, diminuindo, assim, o custo por linha.

Pode-se ainda citar a medição de custo por defeito que penaliza os programas de alta qualidade e fornece resultados destorcidos a medida que a qualidade é aprimorada. Em adição à esta, tem-se a contagem do número de horas gastos para desenvolver o projeto, dentre muitas outras técnicas.

Percebe-se, então, que não havia uma medida satisfatória para o tamanho do software em função de sua funcionalidade do ponto de vista do usuário. Contudo, em 1979, Albrecht expôs sua proposta.
 
 

Afinal, o que dizia esta proposta?

Conhecida como Pontos de Função, esta, tem o objetivo de servir não só como avaliador mas também como preditor do tamanho de uma sistema.

Um Ponto de Função é uma medida abstrata e relativa que conta o número de funções de negócio entregues ao usuário. Pontos de Função só fazem sentido quando comparados com o padrão. Este é determinado pelo International Function Points User Group (IFPUG) através de um manual que contém informações do que deve e o que não deve ser contado.
 
 

Como contar os pontos de função?

O primeiro passo desta etapa é identificar as funções de negócio percebidas pelo usuário. São elas:

O próximo passo é determinar a complexidade de cada função de negócio que é, na realidade, atribuir pesos para cada uma delas. Seguindo, soma-se o número de funções multiplicadas pelos seus respectivos pesos, obtendo, assim, o número básico de pontos de função. Este indica o tamanho preliminar do sistema. Por fim, corrige-se o número básico de pontos de função de acordo om fatores que diminuam ou aumentem a complexidade do sistema.
 
 

Como identificar funções de negócios?

Deve-se buscar em algum documento as funções aprovadas pelo usuário(e que o beneficie)que são ao mesmo tempo úteis para o negócio, ou seja, que influencie deforma significativa o projeto, o desenvolvimento, a implementação e o suporte à aplicação. Aqui não se deve levar em consideração a tecnologia aplicada. Um aspecto importante é que somente o que o usuário pode ver ou está disposto a pagar deve ser cobrado. Além disso, deve-se ratificar que as funções de negócios devem ser cobradas de acordo como o usuário as percebem. Desta forma, é irrelevante a quantidade de arquivos utilizados para guardar certa informação, o que importa é a quantidade de maneiras como o usuário pode acessar esta informação.

Somado a isso, deve-se identificar as funções de negócio seguindo uma certa ordem. Esta é importante porque a partir de uma função de negócio pode-se encontrar outras de outro tipo. Para um sistema novo a seguinte ordem deve ser respeitada: saídas, consultas, entradas, arquivos e interfaces. Já em um sistema existente a ordem deve ser: arquivos, interfaces, saídas, consultas e entradas.
 
 

Como determinar a complexidade?

Deve-se determinar o número de itens de dados referenciados para cada função de negócio. No caso de saídas, consultas e entradas esta contagem baseia-se no número de arquivos acessados. Já para arquivos e interfaces considera-se o número de relacionamentos do arquivo. A tabela abaixo mostra como calcular o número de pontos de função.
 
 

Tabela 1



Um maneira de facilitar a tarefa de determinar a quantidade de pontos de função de um sistema é a aplicação de algumas perguntas ao sistema(14 ao total). Cada uma delas deve ser respondida atribuindo um número de 0 a 5. Estes números indicam:

As perguntas são as seguintes:

A partir da tabela acima pode-se criar uma nova tabela com os multiplicadores que serão utilizados no cálculo dos pontos de função.

Tabela 2



Calculando os pontos de função
 
 





Exemplo

O exemplo consiste de um sistema de controle de estoque desenvolvido para uma sapataria.

Considere os diagramas de fluxo de dados(DFDs) para este sistema:
 
 


 
 


 
 


 
 


 
 


 
 


 
 


 
 


 
 


 
 


 
 


 
 



A partir deles obtem-se as seguintes tabelas:
 
 



 
 


 
 

Aplicando a fórmula anterior tem-se que: