Análise por Pontos de Função

Autor:Alfredo Jorge Reimann Filho - DITEC - F
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.