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:
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:
- Eleger um dos tipos de função, preferencialmente aqueles que representam altos percentuais, que são: Arquivos Internos – Entradas Externas – Saídas Externas.
- Obter o número de ocorrências do tipo de função eleito.
- Calcular Pontos de Função Não Ajustados (PFNA).
- 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.
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/