bfpug_new.jpg (7052 bytes)Brazilian Function Point Users Group
QUALITY PLUS TECHNOLOGIES, INC.
Software and Technology Solutions
Your Software Measurement Professionals
www.qualityplustech.com
Copyright 1999 QUALITY PLUS TECHNOLOGIES, INC. Voice: (727) 393-6048
8430 Egret Lane Seminole FL 33776 USA - Fax: (727) 393-8732
 
Pontos de Função e Medidas
O que é um Ponto de Função?
por Carol A. Dekkers, Quality Plus Technologies, Inc.,
e-mail: dekkers@qualityplustech.com
Publicado no QAI Journal
Dezembro de 1998

Nos últimos meses tem havido uma proliferação de conferências de software a respeito de medidas nos E.U.A., com uma grande ênfase em pontos de função e medidas funcionais de tamanho. Enquanto as conferências do Grupo Internacional de Usuários de Pontos de Função (IFPUG) normalmente versam sobre esse tipo de medida, agora também a conferência sobre Aplicações de Medidas de Software (ASM) dedica uma linha de estudo inteira a Pontos de Função, e a ASQC - Conferência Internacional sobre Qualidade de Software - incluiu várias apresentações sobre medições, com tópicos sobre ISO e CMM. Parece que a indústria de software está começando a perceber as aplicações e o potencial das medidas funcionais de tamanho na administração do desenvolvimento de software. Apesar disso, ainda encontro pessoas que pensam que pontos de função constituem o próprio programa de medida. Pontos de Função (e outras medidas funcionais de tamanho) sozinhos não fazem um programa de medida acontecer! Como medida de tamanho de software (semelhante a metros quadrados na construção civil), Pontos de Função apenas não são suficientes para compor um programa de medição de software. Pontos de Função medem o tamanho funcional do software, nem mais nem menos que isso. Da mesma forma que somente os metros quadrados são insuficientes a um construtor para administrar a construção, apenas Pontos de Função são insuficientes para um desenvolvedor de software administrar um projeto. O tamanho funcional só é relevante quando utilizado em conjunto com outras medidas fundamentais, a fim de produzir outras métricas normalizadas. O gerenciamento do processo de software é possível com um conjunto coordenado de métricas de software apropriadas, algumas das quais podem estar baseadas em tamanho funcional. Este artigo oferece uma visão geral das medidas funcionais de tamanho e detalhes sobre como calcular Pontos de Função, um dos métodos mais populares para o cálculo de tamanho funcional. Pretende ser uma revisão para os leitores familiarizados com os conceitos mas não com os detalhes da medição funcional de software, e uma introdução para os leitores que ainda não conhecem pontos de função.

O que é Tamanho Funcional?

Tamanho funcional é uma medida de tamanho de software, baseada em uma avaliação padronizada dos requisitos lógicos dos usuários. Na indústria há atualmente várias maneiras para se medir tamanho funcional, a mais antiga das quais são os pontos de função. Semelhante aos metros quadrados de uma casa, pontos de função são independentes dos métodos físicos, ferramentas ou linguagem de desenvolvimento utilizados para construir o software. O processo de cálculo de pontos de função está contido no Manual de Práticas de Contagem (atualmente em sua versão 4.0) do Grupo Internacional de Usuários de Pontos de Funcão (IFPUG). Diferentemente de Linhas de Código, Pontos de Função não são dependentes da implementação física e linguagens utilizadas no desenvolvimento de software. Outras medidas que alegam também medir o tamanho funcional do software incluem Pontos de Função Mark II, Pontos de Função 3D da Boeing e Pontos de Característica. Com finalidade ilustrativa, este artigo focaliza Pontos de Função (também denominados Pontos de Função IFPUG), mas não exclui o uso, por parte do leitor, dos outros métodos de medida funcional de tamanho acima relacionados. Para informações adicionais sobre Pontos de Função ou outros métodos de medida funcional de tamanho, favor contatar a autora.

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, (http://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.

Como as Métricas de Software e os Pontos de Função se Encaixam em um Programa de Mensuração?

Pontos de Função nos oferecem uma medida padronizada e normalizada do tamanho funcional dos requisitos lógicos dos usuários e, juntamente com outras medidas, podem ilustrar vários aspectos do processo de desenvolvimento de software, de modo a ensejar melhorias. Em um artigo futuro, examinaremos como e quando o tamanho funcional se encaixa em um programa de mensuração e quais as considerações primárias ao iniciar a mensuração de software com base em pontos de função.

Notas
[1] O Manual de Práticas de Contagem do IFPUG pode ser obtido mediante solicitação ao Grupo Internacional de Usuários de Pontos de Função, em Westerville, Ohio, pelo telefone (614)895-7130 (E.U.A.).
[2] Os detalhes completos para a contagem de pontos de função encontram-se no Manual de Práticas de Contagem do IFPUG (o qual contém exemplos de cenários de contagem, em suas mais de 600 páginas). Adicionalmente, existem Estudos de Casos completos de contagem, efetuados em diferentes estágios do desenvolvimento de aplicações, que podem ser adquiridos do escritório do IFPUG pelo telefone (614)895-7130 (E.U.A.)

Carol A. Dekkers é a Presidente da Quality Plus Technologies, Inc., uma firma de consultoria gerencial especializada no treinamento e consultoria sobre pontos de função, métricas de software, requisitos e melhoria no processo de estimativa. Ela é a Presidente do Grupo Internacional de Usuários de Pontos de Função (IFPUG) e é editora de projeto no grupo de trabalho da ISO sobre Medidas Funcionais de Tamanho (ISO/IEC/JTC1/SC7 WG12). Aparece freqüentemente como palestrante e treinadora em palestras, nos E.U.A. e em outros países, sobre qualidade e mensuração. É credenciada como Consultora Gerencial Certificada (CMC), Especialista Certificada em Pontos de Função (CFPS), engenheira (Canadá) e Profissional de Sistemas de Informação (ISP). Carol pode ser contatada via e-mail em dekkers@compuserve.com.

Traduzido por Mauricio Aguiar. Comentários sobre esta tradução: por favor envie e-mail para bfpug@bfpug.com.br.