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 International Organization for Standardization - ISO e a International Electrotechnical Comission - 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: Representam os requerimentos de armazenamento de grupos de dados logicamente relacionados, cuja manutenção é efetuada pela própria aplicação;
- ARQUIVO DE INTERFACE EXTERNA: Representam as necessidades de grupos de dados logicamente relacionadas, utilizados pela aplicação, mas que sofrem manutenção a partir de outra aplicação;
- ENTRADAS EXTERNAS: Representam as atividades vindas diretamente do usuário, através de um processo lógico único, com o objetivo de inserir, modificar ou remover dados dos arquivos lógicos internos;
- SAÍDAS EXTERNAS: Representam as atividades da aplicação (processos) que têm como resultado a extração de dados da aplicação;
- CONSULTAS EXTERNAS: Representam as atividades que, através de uma requisição de dados (entrada), gera uma aquisição e exibição imediata da dados (saída).
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.
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
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:
- Arquivos Lógicos Internos;
- Arquivos de Interfaces Externa;
- Entradas Externas;
- Saídas Externas e
- Consultas Externas.
Cada função, através 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
|
2.2. Cálculo do Fator de Ajuste
O valor do Fator de Ajuste é calculado a partir de 14 características gerais dos sistema , que permitem uma avaliação geral da funcionalidade da aplicação.
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 prevêem 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 = 0,65 + (Nível de Influência Geral * 0,01)
2.3. Cálculo dos Pontos de Função Ajustados
O total de Pontos de Função da aplicação será encontrado através da multiplicação do número de Pontos de Função não-ajustados pelo Fator de Ajuste.
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, como explanado acima. No entanto, quando utilizada em combinações com outras medidas, poderá ter várias utilidades.
Destacamos 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 +/- 10%. Segundo esta empresa podemos relacionar o conhecimento sobre o sistema e o grau de precisão das estimativas segundo a tabela abaixo:
FASE DO PROJETO
|
CONHECIMENTO DO PROJETO
|
PRECISÃO DA ESTIMATIVA
|
Planejamento
|
10%
|
(+/- 35%)
|
Requerimentos
|
25%
|
(+/- 30%)
|
Desenho Inicial (Projeto Lógico)
|
40%
|
(+/- 20%)
|
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
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.
|