O que são Pontos de Função?
Da mesma maneira que a medida em metros quadrados do tamanho de uma casa não permite deduzir a velocidade com a qual a casa pode ser construída ou o seu tempo de construção, o tamanho em Pontos de Função NÃO mede a produtividade ou o esforço de desenvolvimento. Pontos de função medem o tamanho do QUE o software faz, ao invés de COMO ele é desenvolvido e implementado. Isto significa que, dado um conjunto de requisitos de usuário, o tamanho funcional do software será o mesmo, seja ele desenvolvido com a utilização de COBOL ou DB2, usando desenvolvimento rápido de aplicações (RAD), ou métodos estruturados de desenvolvimento.
Qual a Idade dos Conceitos Sobre Pontos de Função?
Os conceitos sobre Pontos de Função foram inicialmente introduzidos por Allan Albrecht da IBM, em uma conferência da Guide/Share em 1979. Posteriormente, esses conceitos foram refinados em uma metodologia formal e publicados no domínio público em 1984. Subseqüentemente, uma comunidade de ávidos usuários resolveu efetuar padronizações adicionais nas regras de contagem de Pontos de Função, sendo formado o Grupo Internacional de Usuários de Pontos de Função (IFPUG), como um grupo formalmente constituído e sem finalidades lucrativas, em 1986. Desde então o IFPUG tem sido líder no estabelecimento e publicação de documentos relacionados a Pontos de Função, incluindo o Manual de Práticas de Contagem (CPM, atualmente na versão 4.0) [1], o Guia Para Medição de Software (atualmente em sua versão 1.1, tendo substituído o documento Pontos de Função Como um Ativo) e diversos Estudos de Casos detalhados. Atualmente, o IFPUG permanece como uma organização composta de voluntários (os únicos empregados são a equipe administrativa), participando ativamente do grupo de trabalho da ISO sobre Medidas Funcionais de Tamanho (ISO/IEC JTC1 SC7 WG12), administrando certificação de materiais para treinamento em Pontos de Função, Especialistas Certificados em Pontos de Função (CFPS), software sobre Pontos de Função, mantendo seu site na INTERNET, (https://www.ifpug.org/ifpug), cuidando da instrução em mensuração de software e promovendo pelo menos duas conferências anuais. Atualmente, membros de mais de 13 países participam do IFPUG servindo em comitês, ou comparecendo a conferências e treinamentos.
A partir de um modesto início como um conceito original de Allan Albrecht da IBM em 1979 até a criação de um grupo de trabalho na ISO sobre Medidas Funcionais de Tamanho em 1994, as medidas funcionais de tamanho (que incluem Pontos de Função) tornaram-se um dos principais assuntos da área. Hoje em dia, outros métodos estão sendo utilizados para a medição funcional de software, conforme anteriormente mencionado. Os proponentes de cada método defendem a utilização de suas técnicas de medição para uma classe particular de software e freqüentemente para um tipo específico de utilização. Com finalidade ilustrativa, este artigo focaliza o método de contagem de Pontos de Função a partir do padrão IFPUG conforme atualmente publicado (CPM 4.0).
O Que é o Processo de Contagem de Pontos de Função?
Os passos básicos [2] envolvidos na contagem de pontos de função incluem:
- Determinar o tipo de contagem (pode ser um projeto de novo desenvolvimento, uma contagem básica de aplicação ou uma contagem de projeto de melhoria)
- Identificar a fronteira da aplicação (i.e., quais funções o software deve executar?)
- Contar os tipos de funções de dados (divididos em: i) Arquivos Lógicos Internos ou ALIs, que são os grupos lógicos de dados mantidos dentro da fronteira da aplicação, e ii) Arquivos de Interface Externa ou AIEs, os quais são apenas referenciados pela aplicação). Cada ALI vale 7, 10 ou 15 PF,enquanto cada AIE vale 5, 7 ou 10 PF.
- Contar os tipos de funções de transações (divididos em: i) Entradas Externas ou EEs, que são processos de entrada de dados, b) Saídas Externas ou SEs, por exemplo, relatórios e c) Consultas Externas ou CEs, por exemplo, Consultar Detalhes de Empregados). Cada EE ou CE vale 3, 4 ou 6 pontos de função, enquanto cada SE vale 4, 5 ou 7 pontos de função.
- Diversas matrizes simples baseadas nos tipos de elementos de dados (reconhecidos pelos usuários e não recursivos), juntamente com tipos de registros (subconjunto dos dados reconhecidos pelos usuários) ou tipos de arquivos referenciados (número de grupos lógicos de dados necessários à execução completa de um processo) são utilizados para determinar a complexidade de cada função, Baixa, Média ou Alta. A seguinte tabela do IFPUG sintetiza o número de pontos de função atribuídos a cada tipo de função:
Tipo de Função |
Baixa |
Média |
Alta |
EE |
3 |
4 |
6 |
SE |
4 |
5 |
7 |
CE |
3 |
4 |
6 |
ALI |
7 |
10 |
15 |
AIE |
5 |
7 |
10 |
- Determinar o Fator de Ajuste de Valor (FAV) baseado na equação (FAV = 0,65 + (Soma das Características Gerais do Sistema x 0,01) e a avaliação, em uma escala de 1 a 5, das seguintes quatorze Características Gerais do Sistema. Instruções específicas para avaliação são fornecidas no CPM do IFPUG:
- 1. Comunicação de Dados
- 2. Processamento Distribuído de Dados
- 3. Desempenho
- 4. Configuração Intensamente Utilizada
- 5. Taxa de Transação
- 6. Entrada de Dados On-Line
- 7. Eficiência do Usuário Final
- 8. Atualização On-Line
- 9. Processamento Complexo
- 10. Reutilização
- 11. Facilidade de Instalação
- 12. Facilidade de Operação
- 13. Múltiplas Localidades
- 14. Facilidade de Alteração
- Calcular a contagem ajustada final de PF (contagem final de PF = contagem não ajustada * FAV)
Como os Pontos de Função São Utilizados?
Dados os tamanhos em PF das aplicações ou projetos de software, em conjunto com outras medidas, podem ser calculadas métricas normalizadas pelo tamanho em PF, que podem por sua vez ser utilizadas em análises comparativas. Por exemplo, é possível comparar a Produtividade do Desenvolvimento para diferentes metodologias, dadas as medidas do esforço e do tamanho do produto de software. Para calcular a produtividade, tomar o tamanho de cada produto desenvolvido e dividir pelo esforço despendido em cada um. A análise da diferença entre as duas medidas pode ajudar a descobrir oportunidades de melhorias nos processos.
Adicionalmente, outras métricas de produtividade e produção podem ser calculadas, dados os pontos de função e outras medidas. Métricas de qualidade (por exemplo, densidade de defeitos) e taxas de suporte (tamanho da aplicação suportada por pessoa na manutenção) também podem ser calculadas com a utilização de pontos de função e outras medidas correlatas. Notar que os pontos de função nos oferecem uma medida funcional de tamanho a partir da perspectiva do usuário e NÃO uma panacéia para a solução de qualquer problema. Da mesma forma que as outras medidas de software são específicas em sua aplicação e utilização, os pontos de função podem ser correlacionados com outras medidas para produzir métricas de software específicas. Pontos de Função não se correlacionam com tudo (por exemplo, não faz nenhum sentido correlacionar satisfação do usuário com o tamanho de um software medido em PF), nem podem os PF controlar o comportamento. Métricas de software são ferramentas passivas, utilizadas para quantificar e informar os resultados das mudanças. Pontos de função não são exceção a essa regra.