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.
reimann@celepar.gov.br

|