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 |
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.