FPA - Function Point Analysis

- Sistemática de Métrica

Autor: Douglas José Peixoto de Azevedo

.Este é o primeiro de uma série de artigos que tratará da técnica de mensurar software. A técnica

apresentada é denominada de FPA-Function Point Analysis (Análise de Pontos por Função), utilizada para estimar:

  • Esforço de desenvolvimento de software;
  • Custo de software;
  • Taxa de produção de software;
  • Taxa de manutenção de software.
  • Nível de produtividade da equipe;

Primeiro Artigo

INTRODUÇÃO À FPA

FUNCTION POINT ANALYSIS

PRÓLOGO

O mercado a cada dia que passa, torna-se mais competitivo e selecionador, fazendo com que as empresas procurem novas formas na busca de melhorias para a produção de sistemas ou aplicativos com qualidade. Por isso a necessidade de medi-los. Entendemos como sistema ou aplicativos com qualidade, aquele que não apenas supre as necessidades do usuário, mas, também, é implementado a tempo e de acordo com o orçamento.

Inúmeros fatores influenciam o desenvolvimento de sistemas, entretanto, conhecendo-se a medida do tamanho do sistema e relacionando-a a outras métricas, será possível a obtenção de indicadores de desempenho financeiro, de qualidade e de produtividade, que serão de extrema valia para a eficiência e a eficácia de sua empresa.

A capacidade produtiva, o grau de utilização dos recursos e a eficiência do corpo técnico estão presentes nas preocupações de todos os níveis decisórios da empresa. Estes precisam de informações apropriadas para suas decisões.

A Análise de Pontos por Função permite dimensionar sistemas a partir de uma visão de seu usuário/cliente, independentemente da tecnologia usada na sua confecção. Esta independência é valiosa aos dirigentes de informática, pois mantém a estabilidade no processo de coleta de dados para o estabelecimento dos indicadores de desempenho da área.

1 INTRODUÇÃO

O nível de competitividade das organizações está diretamente ligado à eficiência e a eficácia dos sistemas de informações. Com o amadurecimento desses sistemas, o volume dos programas vem aumentando e, assim, os custos e manutenção de sistemas vão se tornando parâmetros críticos para o gerenciamento da área de desenvolvimento de sistemas dentro das empresas.

Procurando desenvolver uma forma de medida de sistemas que fosse aceitável e consistente, foi gasto muito esforço para tentar formalizar este processo.

A FPA - Análise por Pontos por Função [BRA96] é uma destas técnicas. Ela dimensiona uma aplicação na perspectiva do usuário final, ao invés de levar em consideração as características técnicas da linguagem utilizada.

Uma aplicação, vista sob a óptica do usuário, é um conjunto de funções ou atividades do negócio que o beneficiam na realização de suas tarefas.

Uma função específica do usuário em uma aplicação é avaliada em termos do que é fornecido pela aplicação e não de como é fornecido.

Somente componentes solicitados e visíveis ao usuário são considerados no dimensionamento da aplicação pela técnica de Análise de Pontos por Função.

As funções contribuem para o cálculo de Pontos por Função com base na sua classificação, quantidade (número de funções) e na complexidade funcional relativa atribuída a cada uma delas.

A técnica FPA considera, no dimensionamento do software, a funcionalidade geral que a aplicação proporciona a seu usuário.

1.1 Sistemas de Métricas - Histórico

Existem algumas formas de medir sistemas que são aceitáveis e consistentes. Algumas técnicas são implementadas visando mensurar os sistemas e identificar a produtividade na área da informática. Vamos revisar algumas destas técnicas de medir sistemas [INT91].

 

1.1.1 Contagem de Linhas do Código Fonte

A primeira forma encontrada para medir o tamanho de um sistema foi a contagem de suas linha de código.[INT91]

Esta técnica tem como vantagem a simplicidade, mas está muito presa à linguagem utilizada, tendo pouco significado para o usuário final. Além disso, esta técnica só é aplicável após a codificação dos programas, não permitindo estimativas em projetos [CON85].

1.1.2 Sistema Métrico de Halstead

Em 1972, Maurice Halstead, da Universidade de Purdue iniciou estudos sobre algoritmos tentando testar empiricamente a hipótese de que os operadores (comandos e palavras reservadas) e os operandos ( itens de dados ) em um programa deviam se relacionar com a quantidade de erros no algoritmos [HAL77].

Dado o sucesso do estudo, a pesquisa continuou em 1977, dando origem a um sistema que consiste em registrar para cada programa desenvolvido o número de operadores e operandos utilizados, permitindo o cálculo do tamanho do programa e o esforço de programação. Essa medida é independente da linguagem de programação, mas está baseada na sintaxe dos programas e não considera seu conteúdo. Outra desvantagem é que seu processo é incompreensível ao usuário final. Além disso, esta técnica só é aplicável após a codificação dos programas, não permitindo estimativas em projetos.

1.1.3 Análise de Pontos por Função

No início da década de 70, pesquisadores do Serviço de Processamento de Dados da IBM, a pedido do grupo de usuários (GUIDE), começaram a analisar centenas de programas para isolar as variáveis críticas, que determinam a produtividade da programação [INT91] [BRA96].

Descobriram que poderiam basear a avaliação de um sistema, medindo-se o valor das funções executadas pelos programas, em vez de utilizar como base o volume ou a complexidade do código dos programas. Em 1979 Allan J. Albrecht ( IBM White Plains ), prosseguindo essas pesquisas, introduziu uma técnica de avaliação conhecida como FPA - Function Point Analysis. A técnica está baseada na visão externa do usuário, sendo, portanto, independente da linguagem utilizada, permitindo calcular o esforço de programação e auxiliando o usuário final a melhorar o exame e avaliação de projetos.

Em 1986, foi formado o Grupo Internacional de Usuários de FPA ( IFPUG - International Function Point User Group ) [INT97] destinado a divulgar informações e novas implementações da técnica a todos os seus associados.

1.1.4 Quadro Comparativo das

Técnicas

Temos, na figura abaixo, um resumo das principais características das técnicas apresentadas nesta seção.

Caracterís-ticas


Linha de Código

Sistema Halstead

Pontos por

Função

1. Independência de tecnologia

não

sim

sim

2. Produção de resultados consistentes

sim

sim

sim

3. Avaliação por usuários sem conhecimento de PD

não

não

sim

4. Significância para o usuário

final

não

não

sim

5. Utilizado em estimativas

não

não

sim

O segundo artigo da série, dará uma visão geral da técnica FPA. Aguardem

REFERÊNCIA BIBLIOGRÁFICAS

RA96] BRAGA, Antônio. Análise por pontos de função. Rio de Janeiro : Infobook, 1996.

[CON85] CONTE, S.D.; SHEN V.Y. Software Engineering Metrics and Models. Menlo Park : [s.n.], 1985.

[FEN93] FENTON, Norman E. Software Metrics a Rigorous Approach. London : Chapman & Hall, 1993.

[HAL77] HALTEAD, M.H. Elements of Software Science. New York : Elsevier Computer Science Library, 1977.

[INT91] INTERNATIONAL FUNCTION POINT USER GROUP. Análise por pontos de função. [S.l.] : IFPUG, 1991. (Baseado na Release 3.4 do Manual de Práticas de Contagem do IFPUG).

[INT97] INTERNATIONAL FUNCTION POINT USER GROUP. Disponível na Internet http://www.bonnister.com/ifpug/home/docs/ifpughoe.html

[JON91] JONES, Capers. The sociology of software measurement. Computerworld. In Depth, Framingham, v.25, n.32, p.61-62, ago. 1991.

[MAC89] MACHADO, José Alberto. A medição da produtividade no desenvolvimento de software. Rio de Janeiro : UFRJ, 1989.

[PUT78] PUTNAM, L. Trends in measurement, estimation, and control. IEEE Software. 1991.

[SAC68] SACMAN, H. Exploratory experimental studies comparing online and offline programing performance. IEE CACM vol 11, n. 1. 1968.

[SHE95] SHEPPERD, Martin. Foundation of softwarre measurement. London : Pratice Hall, 1995.

[UNI93] UNISYS. Manual do curso por análise por pontos de função. [S.l.], 1993.