José Malcher Jr.

Eng. Software – Analista de Sistemas

Métricas de Software – Pontos por Função


Métricas baseadas em função ou Pontos por Função (PF)

Para que servem os Pontos  por Função?

Pontos por Função medem o tamanho funcional do software.

Da mesma forma que somente os metros quadrados são insuficientes para administrar uma construção, PF são insuficientes para administrar um projeto de SW.

A métrica Ponto por Função pode ser usada efetivamente como um meio para medir a funcionalidade fornecida por um sistema. Por meio de dados históricos, a métrica FP pode ser empregada para:

  • Estimar o custo necessário para projetar, codificar e testar o software;
  • Prever o número de erros que serão encontrados durante o teste;
  • Prever o número de componentes e/ou o número de linhas projetadas de código-fonte no sistema implementado.

Valores do domínio de informações

A métrica Pontos por Função está baseada em medidas calculáveis (diretas) do domínio do software e avaliações qualitativas da complexidade do software. Valores do domínio de informações são definidos da seguinte maneira:

Entradas externas (number of external inputs – EEs): cada entrada externa é originada de um usuário ou transmitida de outra aplicação e fornece dados distintos orientados à aplicação ou informações de controle.

Arquivos lógicos internos (internal logic files – ILFs): as entradas devem ser diferenciadas das consultas, que são contadas separadamente. Cada arquivo lógico interno é um agrupamento lógico de dados que reside dentro das fronteiras do aplicativo e é mantido através de entradas externas.

Saídas externas (number of external outputs – EOs): cada saída externa é formada por dados derivados da aplicação e fornece informações para o usuário. São relatórios, telas, mensagens de erro etc.

Consultas externas (number of external inquiries – EQs): uma consulta externa é definida como uma entrada online que resulta na geração de alguma resposta imediata do software na forma de uma saída online.

Arquivos lógicos internos (number of internal logical files ILFs): cada arquivo lógico interno é um agrupamento lógico de dados que reside dentro das fronteiras do aplicativo e é mantido através de entradas externas.

Arquivos de interface externos (number of external interface files – EIFs): cada arquivo de interface externo é um agrupamento lógico de dados que reside fora da aplicação, mas fornece informações que podem ser usadas pela aplicação.


Valores do domínio de informações – Tabela de PF

Uma vez coletados os dados, a tabela de PF é preenchida associando um valor de complexidade com cada contagem. Organizações que usam métodos Ponto por  Função desenvolvem critérios para definir se determinada entrada é simples, média ou complexa. No entanto, a determinação da complexidade é de certo modo subjetivo. Veja o quadro a seguir:

Valores do domínio de informações – Tabela de PF


Exemplo de aplicação de Ponto de Função Não Ajustado (PFNA)

Um software a ser desenvolvido necessita da aplicação da métrica Pontos por Função. Segundo a equipe de desenvolvimento, a seguinte relação foi determinada ainda na fase de requisitos em consonância com o cliente em função dos arquivos que farão parte do software e seus respectivos pesos com relação ao PF total.

  • Arquivos Internos – 25% do total de PF
  • Interfaces Externas – 3% do total de PF
  • Entradas Externas – 30% do total de PF
  • Saídas Externas – 28% do total de PF
  • Consultas – 14% do total de PF

Para calcular o PF devemos seguir os seguintes passos:

  1. Eleger um dos tipos de função, preferencialmente aqueles que representam altos percentuais, que são: Arquivos Internos – Entradas Externas – Saídas Externas.
  2. Obter o número de ocorrências do tipo de função eleito.
  3. Calcular Pontos de Função Não Ajustados (PFNA).
  4. Utilizar o Fator de Ajuste da Complexidade = 1.

Durante as conversas preliminares com o cliente, verificou-se que os Arquivos Internos seriam facilmente identificáveis, o que os credenciou como melhor parâmetro para as estimativas de pontos de função.

Verificou-se que o total de Arquivos Internos é 13, portanto, complexidade média, segundo a tabela definida pela equipe de desenvolvimento:

  • de 1a 5 arquivos – Simples
  • de 6 a 19 arquivos – Médio
  • 19 arquivos – Complexo

Concluímos que o software é de complexidade Média, pois 13 está na faixa 6 a 19. Considere este número e veja a seguir a continuidade dos cálculos.

 

Cálculo do PFNA

a) Como Arquivos Internos representam 25% do total dos PF:

25% ===> 13

100% ===> PF

PF = (13 * 100) / 25 = 52

 

b) Interfaces Externas: 3% de 52 = 1,56 ( ~= 2)

Entradas Externas: 30% de 52 = 15,6  ( ~= 16)

Saídas Externas: 28% de 52 = 14,56 ( ~= 15)

Consultas: 14% de 52 =  7,28 ( ~=  7)

Obs.: os arredondamentos devem obedecer o padrão.

 

Tabela do PF

Podemos preencher a tabela de PF usando a coluna Complexidade Média.

Tabela do PF

 

Cálculo do PFA

Ponto de Função Ajustado (PFA)

Para calcular Pontos por Função Ajustado, usa-se a seguinte relação:

PFA = Total de contagem x [0,65 + 0,01 x  (Fi)]

Onde a contagem total é a soma de todas as entradas FP obtidas da Tabela.

Os Fi (i = 1 a 14) são fatores de ajuste de valor (value adjustment factors – VAF) baseados em respostas a 14 questões.

Cada uma dessas perguntas é respondida por meio de uma escala que varia de 0 (não importante ou não aplicável) a 5 (absolutamente essencial).

 

Cálculo do PFA após respostas

Os valores constantes na Equação e os fatores de peso aplicados aos valores do domínio de informações são determinados empiricamente.

Dando prosseguimento ao exercício, vamos imaginar que após as respostas às 14 perguntas, Fi totalizou 42.

Então:

PFA = Total de contagem x [0,65 + 0,01 x (Fi)]

PFA = 311 x [0,65 + 0,01 x 42]

PFA = 311 x 1,11

PFA = 311 x 1,07 = 332,77 ~= 333

 


Exemplo de Diagrama de Fluxo de Dados (DFD) simples

Um software a ser desenvolvido necessita da aplicação da métrica Pontos por Função. Segundo a equipe de desenvolvimento, a seguinte relação foi determinada ainda na fase de requisitos em consonância com o cliente em função dos arquivos que farão parte do software e seus respectivos pesos com relação ao PF total.

O Diagrama de Fluxo de Dados é avaliado para determinar um conjunto-chave de medidas de domínio de informação necessárias para a computação da métrica ponto de função:

  • 3 entradas externas — senha, botão de emergência e ativar/desativar.
  • 2 consultas externas — consulta de zona e consulta de sensor.
  • 1 arquivo lógico interno (ILF) — arquivo de configuração do sistema.
  • 2 saídas externas — mensagens e estado do sensor.
  • 4 arquivos de interface externa (EIF) — sensor de teste, configuração de zona, ativar/desativar e alerta de alarme.

Cálculo dos Pontos por Função

O total da contagem apresentado no quadro Pontos por Função deve ser ajustado usando a Equação, supondo que:

∑ (Fi) = 46

Portanto,

FP = 50 X [0,65 + (0,01 X 46)] = 56

PF = 50 x (0,65 + 0,46) =~ 56 (arrendondado)


Método para estimativa de custo – exemplo SERPRO

A estimativa de custo do projeto deve levar em consideração o custo da mão de obra, considerando o esforço e o custo da hora de todos os profissionais envolvidos no desenvolvimento da solução de software.

Além do custo da mão de obra e recursos computacionais, devem ser considerados outros custos, tais como:

  • Treinamento
  • Consultoria
  • Viagens
  • Licenças de software
  • Custos indiretos etc.

Cálculo Custo do Projeto (CP)

Sugere-se a seguinte fórmula para calcular o custo relativo à mão de obra para o desenvolvimento da solução (CP – Custo do Projeto).

CP = (QHC x VPC) + (QHA x VPA) + (QPF x EPF x VPA) + Outros Custos

Onde:

QHC = Quantidade de Horas do Consultor

VPC = Valor da Hora do Consultor

QHA = Quantidade de Horas do Analista

VPA = Valor da Hora do Analista

QPF = Tamanho do Projeto em PF

EPF = Esforço para implementar um Ponto por Função na plataforma em questão

Cálculo Preço Fixo por ponto por função

Caso o contrato seja de preço fixo por Ponto de Função, então pode-se considerar o seguinte:

CP = (QHC x VPC) + (QHA x VPA) + (QPF x VPF)

Onde:

VPF = Valor Unitário do PF para o projeto em questão – Identificado de acordo com a Tabela de Serviço Padrão do Sistema de Orçamento Técnico.

 


Contagem de Pontos por Função de Projetos de Manutenção

Para que serve a contagem de Pontos por Função de Projetos de Manutenção?

Esta contagem tem como propósito descrever os diversos tipos de projetos de manutenção e mostrar uma solução para o seu dimensionamento em Pontos por Função, visto que o manual de práticas de contagem não contempla projetos de manutenção (maintenance), apenas o de melhoria (enhancement).

Quanto à documentação de projetos de manutenção pequenos (menores que 100 PF), deve-se registrar a solicitação do cliente e documentar os requisitos da aplicação impactada pela demanda, de forma detalhada, visando apoiar a contagem de Pontos de Função da demanda.

É importante também documentar as estimativas e a contagem de Pontos por Função.


Pontos de Casos de Uso (PCU)

Quais são as características?

É possível estimar o tamanho do sistema ainda na fase de levantamento de casos de uso.

Estima o dimensão do sistema de acordo com:

  • O modo como os usuários o utilizarão;
  • A complexidade de ações requeridas por tipo de usuário;
  • A análise em alto nível dos passos necessários para a realização de cada tarefa.

O que é preciso para gerencias estimativas com PCU?

  • Calcular o peso dos Atores do Sistema;
  • Calcular o peso dos casos de uso;
  • Calcular fatores de ajuste;
  • Calcular o Porte do Sistema.

Calculando o peso dos Atores do Sistema

Ações

  • Encontrar a métrica UAW (Unadjusted Actor Weight).
  • Classificar atores envolvidos em cada caso de uso.
  • Somar os produtos do número de atores de cada tipo pelo respectivo peso.

Quadro Tipo de Autor/Peso

Exemplo

Um sistema projetado para dois tipos de usuários (gerente e usuário comum) e que fosse acessado por um outro sistema utilizando-se de um protocolo de comunicação, por exemplo, teria um valor de UAW de 8 (2 atores de nível complexo e 1 ator de nível médio).

UAW = (2 * 3) + (1 * 2)

UAW = 8


APRENDA +: Para saber mais sobre Pontos por Função, acesse o vídeo: Pontos por caso de uso.

 

 


Referências

Base: Pós em Engenharia de Software – Estácio (EAD), com várias adaptações e melhorias.

PRESSMAN, Roger S. Engenharia de software. 7. ed. Mc Graw Hill, 2011.

SOMMERVILLE, Ian. Engenharia de software. 8. ed. Mc Graw Hill, 2007.

PADUA Filho, Wilson de. Engenharia de software: fundamentos, métodos e padrões. 3. ed. Rio de Janeiro: Editora LTC, 2009.

PETERS, James F. Engenharia de software. 3. ed. Campus, 2001.

VAZQUEZ, C.E. , SIMÕES, G.S., ALBERT, R.M. Análise de ponto de função medição, estimativa e gerenciamento de projetos de software. São Paulo: Editora Érica, 2009.


Exercícios de fixação

Lista de Exercício correspondente-> http://josemalcher.net/lista-de-exercicios-de-metricas-de-software-lista-2/