PM Tech - Gerenciamento de Projetos

 

« Volta  |  Home » Pontos de Função

Análise por Pontos de Função (APF)

Perguntas Frequentes

 

O que são Pontos de Função?

Pontos de função são uma medida funcional de tamanho de software, introduzida em 1979 por Alan Albrecht da IBM e aberto à comunidade em 1984.

Medida funcional de tamanho de software é um conceito definido pelo padrão ISO/IEC 14143-1:1998 e refere-se à medição do tamanho do software considerando-se apenas a funcionalidade solicitada e recebida pelos respectivos usuários. Nesse sentido, uma medida funcional de tamanho é uma medida externa, pois mede somente aquilo que é percebido pelos usuários do produto de software, independentemente da forma de implementação escolhida.
 

FPA - Function Point Analisys

O termo original em inglês é FPA - Function Point Analisys, podendo ser traduzido como "Análise por Pontos de Função" ou  "Análise de Pontos de Função".
 

Quem padroniza a APF?

A contagem dos pontos de função é regulamentada pelo International Function Point Users Group (IFPUG), organização internacional sem fins lucrativos sediada nos Estados Unidos da América, composta por pessoas e empresas de diversos países cuja finalidade é promover um melhor gerenciamento dos processos de desenvolvimento e manutenção de software através do uso da APF. 

O IFPUG publica o Counting Practices Manual (Manual de Práticas de Contagem), atualmente em sua versão 4.2.1, que estabelece os padrões para o cálculo dos pontos de função. Para garantir a padronização dos procedimentos de contagem, o IFPUG oferece certificação na técnica e divulga os profissionais certificados através de seu site na Internet – www.ifpug.org

O  Brazilian Function Point Users Group (BFPUG) é a representação oficial do IFPUG no Brasil.
 

Como obter o Manual de Práticas de Contagem do IFPUG?

 

O Manual de Práticas de Contagem (Counting Practices Manual - CPM) é fornecido pelo IFPUG. Os filiados ao IFPUG podem fazer download gratuitamente. Os não filiados podem adquiri-lo junto ao IFPUG.  A versão original do manual do IFPUG está em idioma Inglês. Há versões em Português, Espanhol, Italiano, Francês, Coreano e Chinês.

 

Há alguma relação entre  APF e gestão de projetos?

Não, a APF é utilizada na área de desenvolvimento de softwares como um método para medição do tamanho funcional, quantificando as funcionalidades que o software fornece aos usuários.

De qualquer modo, a técnica pode ser uma ferramenta que o gerente de projetos de software pode usar, uma vez que o processo de medição, assim como o resultado da medição, ajuda a trazer visibilidade a diversos aspectos do projeto, como requisitos e escopo.

A associação entre o tamanho funcional e outras grandezas, como esforço, custo, quantidade de defeitos, possibilita a geração de indicadores úteis no acompanhamento do desempenho, produtiidade e qualidade. O indicador de produtividade é muito empregado para a geração de estimativas (baseadas em pontos de função) para o projeto.

 

No que se baseia a contagem dos Pontos de Função?

A contagem dos pontos de função é realizada com base em cinco tipos de componentes de software: arquivos internos, arquivos externos, entradas, saídas e consultas. Esses termos possuem um sentido específico na FPA - Function Point Analysis (Análise de Pontos de Função) e a identificação e classificação dos componentes exige conhecimento especializado.

Os pontos de função são utilizados como fator normalizador do tamanho do software, permitindo o estabelecimento de métricas tais como produtividade (pontos de função produzidos por pessoa-mês), taxa de entrega (homens-hora para a produção de um ponto de função), densidade de defeitos (defeitos encontrados por ponto de função) e outras. A taxa de entrega também pode ser  denominada produtividade, o que pode causar confusão. A melhor opção é deixar clara a nomenclatura utilizada em cada caso.

Vem crescendo a utilização, pelas empresas brasileiras, dos pontos de função nos contratos de fornecimento de software, seja através da cotação de preços por ponto de função, ou através da quantificação dos serviços através de medições de pontos de função.

No mundo, os pontos de função do IFPUG são utilizados pela grande maioria das organizações que realizam algum tipo de medição funcional de tamanho de software.

 

 

Os Pontos de Função medem as horas necessárias ao desenvolvimento de um projeto?

Embora exista uma  forte relação entre o tamanho funcional de um software (medido em Pontos de Função) e o esforço gasto no seu desenvolvimento (medido em pessoas-hora), os Pontos de Função não medem diretamente o esforço de desenvolvimento. Nesse sentido, os Pontos de Função são semelhantes ao metro quadrado na construção civil: embora o metro quadrado influa consideravelmente no esforço de construção e no custo de um imóvel, outros fatores poderão contribuir tanto ou mais quanto o metro quadrado. Exemplos de fatores são a localização do imóvel, a idade, o material utilizado na construção e acabamento, o prestígio do arquiteto, etc.

Da mesma forma, dois sistemas podem ter a mesma medida em Pontos de Função e preços  totalmente diferentes. Por exemplo, um sistema pode ser monousuário, implementado em uma ferramenta como o Access; o outro pode ser uma aplicação web com várias camadas, envolvendo um mainframe e sofisticados dispositivos de segurança. Neste caso, certamente a quantidade de horas e o preço de cada um desses sistemas será completamente diferente. A conclusão é que o tamanho em Pontos de Função é apenas um dos fatores que influem sobre o esforço de desenvolvimento e sobre o custo de um sistema. Outros importantes fatores são a confiabilidade desejada para o software, a metodologia de desenvolvimento utilizada, o nível de testes requerido, a complexidade dos algoritmos, a dificuldade da plataforma computacional, o estilo de interface com o usuário, o grau de reutilização desejado, a capacidade e experiência da equipe, a disponibilidade de ferramentas de software adequadas e outros.

 

Como os Pontos de Função são contados?

A contagem de Pontos de Função é efetuada com base na especificação do sistema, complementada por informações dos usuários e analistas.

I. COMPONENTES CONSIDERADOS

São contados os seguintes componentes, conforme definidos na Análise de Pontos de Função :

Arquivos Lógicos Internos – Correspondem aos arquivos mantidos e utilizados pelo sistema sendo contado.

Arquivos de Interface Externa – Correspondem aos arquivos utilizados pelo sistema sendo contado, porém mantidos por outros sistemas.

Entradas Externas – Correspondem a transações cujo objetivo é a manutenção de arquivos ou a alteração do comportamento do sistema.

Consultas Externas – Correspondem a transações cujo objetivo é a apresentação de informações aos usuários, provenientes dos arquivos, sem a geração de dados derivados, atualização de arquivos ou a utilização de cálculos/fórmulas.

Saídas Externas – Correspondem a transações cujo objetivo é a apresentação de informações aos usuários, não necessariamente proveniente de arquivos, podendo ocorrer a geração de dados derivados, atualização de arquivos e a utilização de cálculos/fórmulas.

II. ETAPAS DO PROCESSO DE CONTAGEM

Identificação

Inicialmente os componentes são identificados, o que exige a aplicação de uma série de regras, específicas para cada um deles. Esta é a etapa mais difícil e que exige a maior prática do Analista de Pontos de Função – equivale, em dificuldade, à Modelagem de Dados.  

Complexidade e Contribuição

Após a identificação, a cada um dos componentes é atribuída a complexidade baixa, média ou alta, conforme o número de campos no caso dos arquivos, ou o número de campos e referências a arquivos no caso das transações. Com base na complexidade e em tabelas específicas, a cada componente é atribuída uma quantidade de pontos de função, denominada contribuição do componente à contagem.

Pontos de Função Não Ajustados

A soma das contribuições de todos os componentes resulta na quantidade de pontos de função não ajustados.

Pontos de Função Ajustados

Os pontos de função ajustados, resultado final da contagem, são obtidos a partir da aplicação de 14 fatores, denominados Características Gerais dos Sistemas (CGS), os quais alteram a contagem anterior em –35% a +35% do valor inicial não ajustado.

III. APLICAÇÃO DA CONTAGEM

A contagem de pontos de função é realizada para medir o tamanho funcional de um sistema, independentemente de sua forma de implementação. Podem ser medidos:

Um projeto de sistema – neste caso, a contagem inclui tanto o sistema entregue ao final, quanto as modificações efetuadas ao longo do projeto e os programas destinados especificamente à implantação.

Uma alteração em sistema – neste caso, a contagem inclui os novos componentes incluídos, os alterados e, também, os removidos do sistema original.

Um sistema – esta contagem é efetuada exclusivamente sobre o sistema entregue aos usuários, medindo o tamanho do sistema propriamente dito.

A técnica utilizada na contagem é a mesma em cada caso; a diferença está no que é considerado em cada um. 

 

 

Existe alguma tabela onde eu possa obter a produtividade de um projeto, conhecida a linguagem de desenvolvimento?

No passado a empresa SPR - Software Productivity Research - disponibilizava gratuitamente uma tabela de linguagens de programação na internet. Essa tabela atribuía a cada linguagem um nível, sendo fornecidos intervalos de produtividade estimados para cada nível de linguagem. Além disso, a chamada "Tabela da SPR" fornecia estimativas para a razão Linhas de Código Fonte / Ponto de Função, para cada linguagem (também chamada Fator de Backfiring). Essa tabela, embora contivesse dados estatísticos interessantes para pesquisas, foi muitas vezes indevidamente utilizada como base em relacionamentos comerciais. A própria SPR optou por primeiro retirar a tabela do ar e depois traze-la de volta, desta vez como um serviço pago. Convém ler a mensagem de Doug Brindley, vice-presidente da SPR, sobre o assunto.

É bom lembrar que a linguagem de programação é apenas um dos fatores que afetam a produtividade. Conforme explicado em outra pergunta, também são fatores importantes: a confiabilidade desejada para o software, a metodologia de desenvolvimento utilizada, o nível de testes requerido, a complexidade dos algoritmos, a dificuldade da plataforma computacional, o estilo de interface com o usuário, o grau de reutilização desejado, a capacidade e experiência da equipe, a disponibilidade de ferramentas de software adequadas e outros.

 

Existe alguma tabela onde eu possa saber a quantidade média de linhas de código-fonte (SLOC) por Ponto de Função?

A quantidade de linhas de código por PF varia bastante e com diversos fatores, além da linguagem de programação utilizada. Por exemplo, a antiga Tabela da SPR (ver pergunta sobre produtividade acima) registrava a média de 53 SLOC/PF para a linguagem JAVA. A Tabela da QSM registra 63 SLOC/PF para o JAVA e o David Consulting Group sinaliza com 80 SLOC/PF. Em uma pesquisa realizada com 8 projetos JAVA em um banco brasileiro, a mediana encontrada foi 33 SLOC/PF. Nossa recomendação é que sejam medidos alguns projetos, para poder determinar o valor médio da razão SLOC/PF em cada caso específico. Ainda assim, você pode ter uma ideia dos valores consultando a Tabela da QSM.
 

Referências complementares

PM Tech Capacitação em Projetos | Telefone de Contato: (51) 3084-3122 | E-mail:
© PM Tech 2016.
Todos os direitos reservados.
PM Tech é marca registrada da PM Tech Capacitação em Projetos.
PMI, CAPM, PMI-ACP, PMI-RMP, PgMP, PMBOK e o logotipo PMI
Registered Education Provider são marcas registradas do Project Management Institute, Inc
PMI
Siga nos: Facebook   Twitter   LinkedIn   Google+   Flickr