Você está na página 1de 16

Métricas de software

Aula 2: Pontos por Função

Introdução
Nesta aula, você compreenderá como devem ser usadas as seguintes métricas: Pontos
por Função (PF); Ponto por Função Não Ajustado (PFNA); Pontos por Função para
Diagrama de Fluxo de Dados (DFD) simples; Método para Estimativa de Custo;
Contagem de Pontos por Função de Projetos de Manutenção; Pontos de Casos de Uso
(PCU); e Peso dos Atores do Sistema.

Essa abordagem é muito importante devido à necessidade de justificar prazos e custos


do software.

Objetivos
Identificar os Pontos por Função;
Compreender a aplicação dos 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.

Para que servem as métricas Pontos por Função?

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

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

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

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

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

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

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:

Tabela 1

Parâmetros de medida Fator de ponderação Subtotal

Simples Médio Complexo

Número de entradas externas Usuário/outra (__X  3)


(__X  4) + (__X  6) + =
aplicação +

(__X  4)
Número de saídas externas (__X  5) + (__X  7) + =
+

(__X  7) (__X  10)


Número de arq lógicos internos Tabelas (__X  15) + =
+ +

Número de arq de interface externa Tabelas (__X  5)


(__X  7) + (__X  10) + =
externas +

Contagem total =

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.

bter 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.

Tabela 2
Complexidade Funcional Total por Tipo de
Tipo de Função
(Média) Função

Entradas Externas 16 * 4 64

Saídas Externas 15 * 5 75

Consultas Externas 7*4 28

Arquivos Lógicos Internos 13 * 10 130

Arquivos de Interface Externa 2*7 14

Total PF Não Ajustados (Fator de


311
Ajuste = 1)

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. Clique aqui [../docs/a02_t05a.pdf] para visualizá-las.

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.

Figura 1

Fonte: Elaborado pelo autor

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.

Vejamos a seguir o cálculo dos Pontos por Função.

Cálculo dos Pontos por Função


Tabela 3
Parâmetros de medida Simples Subtotal

Nuúmero de entradas externas Usuário/outra aplicação 3 x 3) + =9

Número de saídas externas 2 x 4) + =8

Número de consultas externas Consulta online/não alteram software 2 x 3) + =6

Números de arq lógicos internos 1 x 7) + =7

Número de arq de interface externa 4 x 5) + =20

Contagem total =50

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

Figura 2

Fonte: Elaborado pelo autor

Portanto,

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

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

Avance e acompanhe o Método para Estimativa de Custo.

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 de 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.

A seguir entenda a Contagem de Pontos de Função de Projetos de Manutenção.

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 gerar 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.

Avance a tela e veja como calcular o peso dos Atores 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

Tabela 4

Tipo de Ator Peso Descrição

Ator Simples 1 Outro sistema acessado através de uma API de programação

Outro sistema interagindo através de um protocolo de comunicação,


Ator Médio 2
como TCP/IP ou FTP

Ator
3 Um usuário interagindo através de uma interface gráfica
Complexo
Aprenda mais

Para saber mais sobre Pontos por Função, acesse o vídeo:Pontos por caso de uso
[https://www.youtube.com/watch?v=Q_QSGXwPXrc] .

Atividade proposta

Discuta sobre a importância da adoção de métricas no processo de qualidade de


software.

O processo de desenvolvimento de software deve ter o foco na qualidade.

Exercícios de fixação

A Métrica de software baseadas em Pontos por Função mede:

O tamanho funcional do software.

A complexidade dos testes de software.

A extensão das sub-rotinas.

A quantidade de classes.

A qualidade do software.

A métrica Ponto por Função usa dados históricos para:

I — Estimar o custo necessário para projetar, codificar e testar o software.

II — Prever o número de erros que serão encontrados durante o teste.

III — Prever o número de componentes e/ou o número de linhas projetadas de código-


fonte no sistema implementado.

Todas corretas

Apenas I

Apenas II

Apenas II e III
Apenas I e III

A métrica Pontos por Função está baseada em medidas calculáveis do domínio do


software e avaliações qualitativas da complexidade do software. Um dos domínios,
“Entradas externas”, é definido como:

Originado de um usuário ou transmitido de outra aplicação e fornece dados distintos


à aplicação ou informações de controle.

Um agrupamento lógico de dados que reside dentro das fronteiras do aplicativo.

Um agrupamento lógico de dados que reside fora da aplicação, mas fornece


informações que podem ser usadas pela aplicação.

Uma entrada online que resulta na geração de alguma resposta imediata do


software na forma de uma saída online.

Domínio formado por dados derivados da aplicação e que fornece informações para
o usuário.

A métrica Pontos por Função está baseada em medidas calculáveis do domínio do


software e avaliações qualitativas da complexidade do software. Um dos domínios,
“Arquivos lógicos internos”, é definido como:

Um agrupamento lógico de dados que reside dentro das fronteiras do aplicativo.

Entrada originada de um usuário ou transmitida de outra aplicação e que fornece


dados distintos à aplicação ou informações de controle.

Um agrupamento lógico de dados que reside fora da aplicação, mas fornece


informações que podem ser usadas pela aplicação.

Uma entrada online que resulta na geração de alguma resposta imediata do


software na forma de uma saída online.

Domínio formado por dados derivados da aplicação e que fornece informações para
o usuário.

Na gestão de escopo de software, três elementos são essenciais em um projeto de


software. Analise as afirmativas e identifique-as como verdadeiras (V) ou falsas (F).

V F Após a definição do escopo, não é comum existirem mudanças no


desenvolvimento de projetos.

V F A técnica de reuso de software nunca vai beneficiar a qualidade do projeto.

V F A técnica de reuso de software colabora para a redução do prazo do projeto.

V F Mesmo as pequenas mudanças de escopo devem ser registradas e analisadas.


V F
Profissionais que dominam a Análise de Ponto por Função fazem com que o
cálculo da estimativa de esforço e custo seja uma ciência exata.

(CESGRANRIO – 2012 – Chesf) Um engenheiro de software fez uma contagem de pontos


por função de um software a ser desenvolvido e levantou as seguintes informações:

Tabela 5

Função do Negócio Contagem (FI)

Entrada Externa 8

Saída Exerterna 10

Consulta Externa 0

Arquivo Lógico Interno 15

Arquivo de interface Externa 2

Complexidade

EE - 3 4 6

SE - 4 5 7

CE - 3 4 6

ALI - 7 10 15

AIE - 5 7 10

Onde

PF = Contagem total x (0,65 + 0,1 x Soma Fi)

Considerando as possíveis complexidades de cada função de negócio, os valores


mínimos e máximos da contagem não ajustada de Pontos por Função serão
respectivamente:

143 e 363

177 e 361

177 e 363

179 e 361

179 e 363
Em que consiste a modalidade preço por PF (Ponto por Função)?

É o valor global que uma empresa fornecedora está cobrando para um determinado
serviço.

É o valor unitário negociado com o qual se fará a transação comercial para um


desenvolvimento de software.

É um valor de referência de custo e que deve participar de um contrato.

É um valor que serve para medir a produtividade de um programador.

É um valor que serve para definir o quanto se pode pagar ao profissional contratado
(em regime CLT) em uma empresa.

(FCC – 2012 – TRE-CE) Considere 3 AIEs simples, 5 EEs médias, 8 CEs complexas, 3 ALIs
complexos e 7 SEs médias. O cálculo de PFs bruto é:

Complexidade

EE - 3 4 6

SE - 4 5 7

CE - 3 4 6

ALI - 7 10 15

AIE - 5 7 10

136

148

159

163

212

A Análise de Pontos por Função (APF) é uma técnica para a medição de projetos de
desenvolvimento de software que visa estabelecer uma medida de tamanho, em PFs,
considerando a funcionalidade implementada, sob o ponto de vista do usuário.

Analise as afirmativas a seguir, relacionadas à APF:

I — É uma ferramenta que permite determinar o tamanho de pacotes de software


adquiridos, através da contagem de todos os Pontos por Função incluídos no pacote.

II — É uma ferramenta que permite estimar custos e recursos envolvidos em projetos de


desenvolvimento e manutenção de software.

III — O Ponto por Função não ajustado é definido pelo produto da contagem por um
fator de ajuste.
Apenas a afirmativa III

Apenas a afirmativa II

Apenas as afirmativas I e III

Apenas as afirmativas I e II

Todas as afirmativas estão corretas

Uma das boas práticas utilizadas pelas empresas para contratar fornecedores
desenvolvedores de software é homologá-los previamente. Assim, sempre que houver
alguma demanda de software para ser desenvolvido poderemos afirmar que:

Todos os fornecedores cobrarão o mesmo valor pelo projeto.

Todos os fornecedores participarão de todas as propostas.

A contratante pode exigir que cada proposta apresente a quantidade de Pontos por
Função do projeto de forma detalhada, o que tornará mais fácil comparar as
propostas.

A contratada pode exigir que cada proposta apresente a quantidade de Pontos por
Função do projeto de forma detalhada, o que tornará mais fácil comparar as
propostas.

A contratada pode exigir que cada proposta apresente a quantidade de Pontos por
Função do projeto de forma detalhada, o que tornará mais difícil comparar as
propostas.

Síntese
Nesta aula:

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


Exemplo de aplicação de Ponto de Função Não Ajustado (PFNA);
Ponto de Função Não Ajustado (PFNA);
Pontos por Função para Diagrama de Fluxo de Dados (DFD) simples;
Método para Estimativa de Custo;
Contagem de Pontos de Função de Projetos de Manutenção;
Pontos de Casos de Uso (PCU);

Próxima aula
Na próxima aula:

Métricas para o Modelo de Projeto;


Fan-out e Fan-in;
Conectividade;
Métricas de projeto da arquitetura;
Métricas para projeto orientado a objeto;
Acoplamento;
Métricas orientadas à classe.

Referências
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.

Você também pode gostar