Sie sind auf Seite 1von 30

DEPARTAMENTO DE INFORMTICA - DPI

Guia Prtico em Anlise


de Ponto de Funo
Projeto: Jhoney da Silva Lopes
Orientador: Jos Luis Braga

Sumrio
1. INTRODUO ................................................................................................................ 3
1.1 Anlise de Ponto de Funo ................................................................................... 3
1.2 Objetivo .................................................................................................................. 3
1.3 Motivao e Benefcios .......................................................................................... 4
1.4 Pontos chave .......................................................................................................... 4
2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO ............................................. 6
2.1 Viso geral .............................................................................................................. 6
2.1.1 Requisitos ........................................................................................................ 6
2.2 Determinar o tipo de contagem ............................................................................. 7
2.2.1 Projeto de desenvolvimento ........................................................................... 7
2.2.2 Projeto de melhoria ......................................................................................... 7
2.2.3 Aplicao.......................................................................................................... 8
2.2.4 Aplicando o conhecimento .............................................................................. 8
2.3 Identificar o escopo da contagem .......................................................................... 8
2.3.1 Aplicando o conhecimento .............................................................................. 9
2.4 Contar funes do tipo dado .................................................................................. 9
2.4.1 Arquivo Lgico Interno .................................................................................. 10
2.4.2 Arquivo de Interface Externa......................................................................... 10
2.4.3 Determinao da complexidade e da contribuio ...................................... 10
2.4.4 Aplicando o conhecimento ............................................................................ 12
2.5 Contar funes do tipo transao ........................................................................ 15
2.5.1 Entrada Externa ............................................................................................. 15
2.5.2 Sada Externa ................................................................................................. 16
2.5.3 Consulta Externa ............................................................................................ 16
2.5.4 Determinao da complexidade e da contribuio ...................................... 16
2.5.5 Aplicando o conhecimento ............................................................................ 18
2.6 Pontos de funo no ajustados .......................................................................... 22
2.6.1 Aplicando o conhecimento ............................................................................ 23
2.7 Determinar o fator de ajuste ................................................................................ 23
2.7.1 Aplicando o conhecimento ............................................................................ 24
2.8 Realizar o clculo dos pontos de funo ajustados .............................................. 24
2.8.1 Aplicando o conhecimento ............................................................................ 25
3. DERIVAES ............................................................................................................... 26
3.1 Esforo .................................................................................................................. 26
3.1.1 Aplicando o conhecimento ............................................................................ 27
3.2 Custo ..................................................................................................................... 27
3.2.1 Aplicando o conhecimento ............................................................................ 27
3.3 Prazo ..................................................................................................................... 27
3.3.1 Aplicando o conhecimento ............................................................................ 28
4. CONSIDERAES......................................................................................................... 29
5. BIBLIOGRAFIA ............................................................................................................. 30

1. INTRODUO
A elaborao desse guia visa auxiliar micro e pequenas empresas na utilizao
de uma tcnica para estimar os seus projetos em custo, prazo e esforo. Muitas
empresas no utilizam de tcnicas para estimar os seus projetos, a maioria possui um
funcionrio com experincia que avalia os projetos a partir do seu feeling sem
utilizar nenhum padro.
Na fase inicial de um projeto a necessidade em obter o custo, prazo e o esforo
observado em todas as empresas, pois as mesmas precisam gerar um oramento
para os seus clientes e avaliar uma srie de projees. Este guia organiza de forma
simples e introdutria conhecimentos sobre a anlise de ponto de funo.
O guia no tem a inteno de substituir o uso apropriado e completo da
contagem de ponto funo, mas mostrar que existem ferramentas usuais que
solucionam problemas recorrentes de vrias empresas.

1.1 Anlise de Ponto de Funo


Anlise de Ponto de Funo uma tcnica de medio do tamanho funcional
de um software. Essas funes so operaes extradas dos requisitos funcionais
gerados a partir da viso do usurio1. A partir dessa medio possvel estimar o
esforo para implementao do sistema utilizando Ponto de Funo que a unidade
de medida desta tcnica.
APF tem por definio medir o que o software faz, e no como ele foi
construdo, portanto o processo de medio fundamentado em uma avaliao
padronizada dos requisitos lgicos do usurio.
Sobre o estudo desse mtodo importante destacar que pontos de funo no
medem diretamente o esforo, produtividade, custo ou outras informaes
especficas. exclusivamente uma medida de tamanho funcional de software que
aliado a estimao de outras variveis, poder ser usado para derivar produtividade,
custo e estimar esforo.
Essa tcnica surgiu no incio da dcada de 70 na IBM, desenvolvida por Allan
Albrecht (Vazquez,2009), como uma alternativa s mtricas baseadas em linhas de
cdigo. O IFPUG (International Function Point Users Group) uma entidade sem fins
lucrativos, composta por pessoas e empresas de diversos pases cuja finalidade
promover um melhor gerenciamento dos processos de desenvolvimento e
manuteno de software com o uso de pontos de funo e outros mtodos
(www.ifpug.org).
Muitas micro e pequenas empresas passam pela dificuldade de orar prazo,
custo e esforo para os seus projetos. A elaborao desse guia no tem por objetivo
tratar de todas as possveis variaes no processo de contagem, mas sim proporcionar
uma viso geral sobre a metodologia e com isso auxiliar em uma aproximao do valor
real
da
contagem,
ou
seja,
uma
estimativa
desse
valor.
O objetivo desse guia auxiliar na estimativa em pontos de funo na fase
inicial do ciclo de vida de um projeto de desenvolvimento. Na fase inicial, voc possui
apenas a proposta para o projeto, por este motivo no possvel medir o tamanho
1

Em APF usurio possui um conceito mais amplo. Qualquer entidade que se relacione com o sistema ou
produza um nus ao mesmo. Ex: Pessoa, aplicao, leis, restries e etc.

1. INTRODUO

1.2 Objetivo

funcional do software, pois os requisitos no esto maduros, mas possvel realizar


uma estimativa em pontos de funo para o mesmo.
Essa abordagem simples e direta tem por finalidade tambm difundir o uso da
tcnica de anlise de ponto de funo, realizando uma viso geral com o intuito de
instigar os seus utilizadores a estudos mais aprofundados sobre a metodologia. No
objetivo deste guia ofender nenhuma organizao ou profissional certificado e
experiente na utilizao da metodologia nem to pouco limitar o estudo e utilizao da
mesma.

1.3 Motivao e Benefcios


necessrio saber qual a sua verdadeira motivao para a utilizao da
tcnica de anlise de ponto de funo. O que ganhamos medindo um software? Pense
em um terreno, esse possui uma rea, voc o mediria para poder vender, comprar,
construir. Fica fcil perceber motivos pelos quais voc mediria um terreno, certo?
Voc compraria um terreno sem saber o seu tamanho? Com softwares deveria
ser a mesma situao.
Em uma obra voc precisa saber a rea a ser construda para poder comprar os
materiais, contratar pessoas e com isso tambm avaliar o tempo de elaborao da
mesma. Quando medimos softwares utilizando a tcnica de anlise de ponto de
funo, podemos realizar as mesmas derivaes a partir do seu tamanho funcional, ou
seja, estimar o esforo, custo e prazo.
Com isso possvel observar uma srie de benefcios enumerados por
(VAZQUEZ,2009):
1. Controlar o andamento da produtividade de um determinado
software. Um sistema pode ter mais de uma equipe envolvida em
seu desenvolvimento, possvel avaliar a produtividade de
diferentes equipes pela quantidade de Pontos de Funo
entregados.
2. Realizar a medio do tamanho funcional do software e com isso
estimar, custo, esforo e prazo. Uma vez realizada a medio ou
estimativa dos Pontos de Funo totais do sistema possvel utilizar
este nmero para realizar derivaes.
3. Sabendo o tamanho funcional de um software possvel realizar
comparaes. Pode ser realizada uma avaliao entre dois ou mais
sistemas.
4. Com a utilizao da tcnica possvel tomar decises do tipo Make
or Buy, seria a deciso de desenvolver um sistema ou comprar uma
soluo pronta no mercado.
5. Utilizar a medida para fundamentar contratos de compra e venda de
softwares ou contratar servios.
1. Anlise de Ponto de funo uma tcnica que mede o tamanho funcional de
um software do ponto de vista do usurio;
2. IFPUG - International Function Point Users Group o rgo internacional
responsvel pela manuteno e evoluo da tcnica;

1. INTRODUO

1.4 Pontos chave

1. INTRODUO

3. Medir ou estimar? Para a utilizao da tcnica de APF com o intuito de


medio, necessrio que os requisitos do sistema estejam maduros. Logo a
efetividade de uma medida s possvel aps a instalao da aplicao;
4. Anlise de ponto de funo no leva em considerao como o software
construdo, mas sim o que ele faz.

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO


2.1 Viso geral

Figura 2.1: Passos para a contagem dos pontos de funo

2.1.1 Requisitos
So as necessidades e caractersticas que o sistema deve ter para atingir as
expectativas do cliente. A extrao dos requisitos consiste em uma parte crtica na
elaborao de uma proposta, ela est ligada diretamente ao sucesso ou ao fracasso de
um projeto.
Na aplicao da anlise de ponto de funo a definio destes requisitos to
importante quanto para qualquer outro fim, pois voc pode subestimar ou
superestimar sua contagem e com isso afetar todas as derivaes possveis da tcnica.
Claro que impossvel extrair todos estes requisitos nesta fase inicial, logo uma
melhor extrao ir gerar uma melhor estimativa.

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Este captulo apresentar uma viso geral sobre todos os passos necessrios
para utilizao da tcnica de anlise de ponto de funo, para a realizao de
estimativas na fase inicial de um projeto de desenvolvimento, proporcionando ao
leitor uma viso restrita da tcnica, mas suficiente para estimar um projeto em sua
fase inicial e com isso realizar derivaes de acordo com a necessidade do usurio.
A anlise em ponto de funo fundamenta-se em seis passos:
1. Determinar o tipo de contagem
2. Identificar o escopo da contagem e a fronteira da aplicao
3. Contar funes:
a. Tipo dados
b. Tipo transao
4. Determinar a contagem de pontos de funo no ajustados
5. Determinar o valor do fator de ajuste
6. Calcular o nmero dos pontos de funo ajustados

2.2 Determinar o tipo de contagem


O primeiro passo para a contagem:

Figura 2.2: Determinar o tipo de contagem

2.2.1 Projeto de desenvolvimento


caracterizado como projeto de desenvolvimento, um novo projeto desde a
fase de extrao de requisitos at a instalao do mesmo.
Neste tipo de projeto contado na anlise de ponto de funo todas as
funcionalidades fornecidas aos usurios at a instalao do sistema, ou seja,
funcionalidades de converso tambm so contadas. Por exemplo: Um sistema A
possui uma lista de funcionrios cadastrados, o sistema B sendo contado dever incluir
todos esses funcionrios em sua base de dados, essa funcionalidade ser disparada
uma nica vez que durante a instalao do sistema, sendo caracterizada como
funo de converso.
Ns s conseguimos todos os requisitos de um sistema aps o trmino do
projeto, sendo assim toda a contagem de um projeto de desenvolvimento pode ser
entendida como estimativa e no medio.
2.2.2 Projeto de melhoria
O projeto de melhoria mede todas as funcionalidades novas, modificadas e
excludas de um determinado sistema. Ao trmino de um projeto de melhoria a
aplicao dever ser contada com o intuito de atualizar o valor em pontos de funo
da mesma.

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Na anlise de ponto de funo existem trs tipos de contagem:


1. Projeto de desenvolvimento;
2. Projeto de melhoria;
3. Aplicao.
O guia tem por objetivo apresentar a soluo de contagem para projeto de
desenvolvimento, mas os outros tipos tambm sero apresentados.

2.2.3 Aplicao
Entende-se por contagem do tipo aplicao2 um software instalado, ou seja, a
contagem aps o trmino de um projeto de desenvolvimento. Neste caso no levamos
em considerao as funes do tipo converso.
2.2.4 Aplicando o conhecimento
Esta etapa est pronta, o foco deste guia so as derivaes dos pontos de
funo para auxiliar na elaborao da proposta do projeto para o cliente. A sua
contagem ser de um projeto de desenvolvimento.
Exemplo de caso: Tipo de contagem - Projeto de desenvolvimento.

2.3 Identificar o escopo da contagem

Figura 2.3: Identificar o escopo da contagem e a fronteira da aplicao

Muitas vezes a identificao do escopo e da fronteira da aplicao no so


levados to a srio, principalmente por empresas que no utilizam de gerncia de
projetos.
Esta uma etapa crucial para o andamento do projeto, a definio de um
escopo3 errado pode acarretar em prejuzos incalculveis para o projeto ou at a perda
total dele, o escopo define quais funes sero includas na contagem, ele pode
abranger todas as funcionalidades, apenas as utilizadas ou especficas.
A fronteira da aplicao a ser contada seria a linha que separa uma aplicao de
outra, dentro de um escopo de contagem podem existir mais de uma aplicao a ser
contada, por isso importante definir qual a sua fronteira.
Uma tarefa simples para no errar nesta etapa, seguir a regra do IFPUG que
determinar a fronteira da aplicao baseado no Ponto de Vista do Usurio. O usurio
define o que ele entende sobre as atribuies do sistema e de cada aplicao.
2

Aplicao neste caso pode ser interpretada como sistema.


Escopo do projeto o trabalho que precisa ser realizado para entregar um produto, servio ou
resultado com as caractersticas e funes especificadas (PMBOK, 2004), o escopo da contagem tudo
aquilo que deve ser contado.
3

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

O segundo passo para a contagem:

Exemplo: Neste caso so apresentadas trs aplicaes, AP01, AP02 e AP03,


cada uma com arquivo lgico interno ALI e referenciando arquivos de interface
externa AIE, sero apresentados detalhes sobre os arquivos lgicos no prximo
tpico.

Figura 2.4: Arquivos lgicos e fronteiras das aplicaes

2.3.1 Aplicando o conhecimento


Como foi visto, nesta etapa devemos definir o escopo da contagem e a
fronteira da aplicao.
Exemplo de caso: Software destinado a uma empresa que realiza locao de
automveis, o sistema simples e composto por uma nica aplicao.

2.4 Contar funes do tipo dado

Figura 2.5: Contar funes do tipo dados

Nesta etapa iniciamos o processo de contagem, as funes do tipo dado so as


funcionalidades fornecidas para o armazenamento de dados na aplicao sendo

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

O terceiro passo primeira parte:

contada, so caracterizados como arquivos lgicos e eles podem ser mantidos pela
aplicao ou lida de outra, como no exemplo da (figura 2.4).
Arquivos lgicos que esto dentro da fronteira da aplicao e mantidos pela
mesma so chamados de Arquivos Lgicos Internos (ALI), j os arquivos lgicos lidos de
outra aplicao so chamados de Arquivos de Interface Externa (AIE).

2.4.2 Arquivo de Interface Externa


Grupo lgico de dados e persistentes mantidos dentro da fronteira de outra
aplicao, mas requerido ou referenciado pela aplicao que est sendo contada.
Considere a (figura 2.4), a AP01 referencia arquivos lgicos da AP02 e AP03,
estes arquivos so denominados arquivos de interface externa (AIE).
Exemplos:
1. Dados de segurana armazenados em arquivos lgicos e mantidos por
aplicaes especficas a este fim.
2. Dados salariais armazenados na aplicao financeira, mas utilizados pela
aplicao contada.
No so exemplos:
1. Dados armazenados na aplicao sendo contada e utilizados por uma
aplicao externa. Neste caso a sua aplicao possui um ALI e outra
aplicao reconhece estes dados vindos de um AIE.
2.4.3 Determinao da complexidade e da contribuio
Complexidade o grau de influncia que um arquivo lgico tem para o
tamanho funcional do sistema.
A contribuio a converso do grau de complexidade em pontos de funo.
Essa complexidade calculada a partir da contagem dos tipos de dados e dos
tipos de registro.
Tipos de dados (TD):
um campo no recursivo de dado, nico e reconhecido pelo usurio,
em uma viso geral e limitada, seria cada atributo de uma tabela.
4

Um processo elementar a menor unidade de atividade significativa para o usurio final


(VAZQUEZ,2009). a menor funcionalidade disponibilizada ao usurio.

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

2.4.1 Arquivo Lgico Interno


Grupo lgico de dados e persistentes mantidos dentro da fronteira da aplicao
e alterado por meio de processos elementares4.
Considere a (figura 2.4), a AP01 possui trs arquivos lgicos internos (ALI), a
primeira vista parecer que cada tabela do banco de dados da sua aplicao ser um
ALI, mas um erro realizar essa premissa, pois um grupo de tabelas pode ser
considerado como um nico arquivo lgico.
Exemplos:
1. Arquivo de configurao, conexo, segurana (senhas) mantidos pela
aplicao.
2. Tabelas ou grupos de tabelas do banco de dados mantidas pela
aplicao.
No so exemplos:
1. Arquivos temporrios ou de backup.
2. Tabelas temporrias ou views.

1
0

Tipos de Registro (TR):


um subgrupo de dados.
Em uma anlise mope, quando um agrupamento de tabelas so
caracterizadas como um nico arquivo lgico, ALI ou AIE, a tabela reconhecida
pelo usurio contada e as demais se tornam tipos de registro. Os campos de
dados dos tipos de registro so atribudos a todos os arquivos lgicos
relacionados a estes tipos de registro.
Exemplo:

Figura 2.6: Especializao um tipo de registro

Figura 2.7: Especializao na viso do usurio

Temos a seguinte definio:


Descrio
Tipo
TD TR
Funcionrios ALI ou AIE 4 3
Tabela 2.1: Descrio do Tipo de Registro (TR) e Tipo de Dado (TD)

So contados trs tipos de registro, pois todo arquivo lgico um tipo


de registro dele mesmo.
importante perceber que essa soluo tomada, uma vez que o
usurio enxerga auxiliar e dentista como funcionrio e no entidades
separadas, ou seja, o importante a viso do negcio.

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Neste exemplo contamos funcionrios como uma ALI ou AIE e inclumos


as demais tabelas como tipo de registro e os seus tipos de dados so somados a
Funcionrios.
Exemplo:

1
1

Figura 2.7: Viso do Negcio

Tipos de
Registro

Tabela de complexidade:
A tabela de complexidade padronizada pelo IFPUG, todos os usurios
da tcnica de anlise de pontos de funo utilizam os mesmos valores.
Tipos de Dados
< 20 20 50 > 50
1
Baixa
Baixa Mdia
2 5 Baixa Mdia
Alta
> 5 Mdia
Alta
Alta
Tabela 2.2: Complexidade ALI e AIE

Tipo de Funo
Baixa Mdia Alta
Arquivo Lgico Interno
7 PF 10 PF 15 PF
Arquivo de Interface Externa 5 PF
7 PF 10 PF
Tabela 2.3: Tabela de contribuio

2.4.4 Aplicando o conhecimento


Para facilitar a identificao dos tipos de arquivos, deve-se elaborar um modelo
lgico.
Uma dica geral e objetiva, mas passvel de erro, contar um arquivo lgico ALI
ou AIE para cada tabela reconhecida pelo usurio, ou seja, se a tabela existe no ponto
de vista do usurio ela deve ser contada, caso contrrio no. Se o usurio no
reconhece a tabela, mas reconhece os tipos de dados presentes na mesma,
provavelmente essa tabela ser um tipo de registro.
Dica para classificar um arquivo lgico:

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Tabela de contribuio:
A tabela de contribuio padronizada pelo IFPUG, todos os usurios da
tcnica de anlise de pontos de funo utilizam os mesmos valores.
Aps identificar a complexidade de cada ALI e AIE do seu sistema,
possvel determinar a contribuio desses para a contagem dos pontos de
funo.

1
2

Figura 2.8: Fluxo para classificao do tipo lgico

Figura 2.9: Modelo lgico

2. Identifique todas as tabelas reconhecidas pelo usurio, ou seja, as que


fazem parte da viso do negcio e classifique-as como ALI ou AIE.
Exemplo:
Descrio Tipo
Usurio
ALI
Cliente
ALI
Carro
ALI
Tabela 2.4: Classificao dos arquivos lgicos

Todas as tabelas foram caracterizadas como arquivo lgico


interno, pois elas so mantidas pelo sistema sendo contado.
3. Faa uma anlise da todas as tabelas que no esto na viso do negcio:

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Passos para uma estimativa da contagem desta etapa:


1. Elabore um modelo lgico do seu projeto
Exemplo:

1
3

a. Se a tabela no pertence viso do negcio, mas os seus tipos


de dados pertencem, conte-a como um tipo de registro para
cada arquivo lgico relacionado a ela e atribua os seus tipos de
dados a cada um deles.
b. Se nem a tabela nem os seus tipos de dados pertencem viso
do negcio, descarte-a da contagem.
Exemplo:
Aluga foi considerada um tipo de registro, pois na viso do
negcio os campos hora_aluguel e data_aluguel, so reconhecidos pelo
usurio e por este motivo eles foram somados aos tipos de dados de
Cliente e Carro.
Descrio Tipo TD TR
Usurio
ALI 4 1
Cliente
ALI 7 2
Carro
ALI 8 2
Tabela 2.5: Tipo de Dado (TD) e Tipo de Registro (TR)

4. Determine a complexidade de cada arquivo lgico.


Exemplo:
Para definir a complexidade basta analisar a quantidade de tipos
de dados mais os tipos de registro e conferir (tabela 2.2):

Tabela 2.6: Complexidade

5. Determine a contribuio de cada arquivo lgico.


Exemplo:
Para determinar a contribuio basta verificar na (tabela 2.3) o
ponto de funo referente a cada complexidade.
Descrio Tipo TD TR Complexidade Contribuio
Usurio
ALI 4 1
Baixa
7
Cliente
ALI 7 2
Baixa
7
Carro
ALI 8 2
Baixa
7
Tabela 2.7: Contribuio

6. Realize a soma de todas as contribuies.


Exemplo:
Para finalizar a contagem das funes do tipo dados, some as
contribuies de todos os arquivos lgicos:
Descrio Tipo TD TR Complexidade Contribuio
Usurio
ALI 4 1
Baixa
7

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Descrio Tipo TD TR Complexidade


Usurio
ALI 4 1
Baixa
Cliente
ALI 7 2
Baixa
Carro
ALI 8 2
Baixa

1
4

Cliente
Carro

ALI 7 2
Baixa
ALI 8 2
Baixa
Total de Pontos de Funo =

7
7
21

Tabela 2.8: Contagem das funes do tipo dados

2.5 Contar funes do tipo transao


Terceiro passo segunda parte:

Agora que aprendemos a contar funes do tipo dados, podemos dar


continuidade a contagem da aplicao. As funes do tipo transao so as
funcionalidades base para o funcionamento do sistema, estas funes so chamadas
de processos elementares e so classificadas em Entradas Externas, Sadas Externas,
Consultas Externas.
Um processo elementar a menor unidade de uma funo disponvel ao
usurio. Por exemplo, consultar clientes pode ser entendido como uma funo, mas o
mesmo no pode ser entendido como um processo elementar, uma vez que podem
ser realizadas inmeras consultas diferentes aos clientes, consultar clientes pelo nome,
consultar clientes em dbito, consultar registro de clientes e outras, podemos
perceber que cada consulta uma funcionalidade nica e independente, desta forma
para determinar um processo elementar necessrio identificar todas as
funcionalidades nicas e independentes de uma funo.
Um processo elementar deve ser nico. Por exemplo, consultas que diferem
uma da outra pela organizao dos dados gerados, no podem ser consideradas
diferentes.
2.5.1 Entrada Externa
Uma entrada externa um processo de controle, ela tambm realiza o
processamento de dados do sistema e direciona o mesmo para atender os requisitos
da aplicao.
Definida por (VAZQUEZ,2009) como sua principal inteno manter (incluir,
alterar ou excluir dados) um ou mais Arquivos Lgicos Internos e/ou alterar a forma
como o sistema se comporta.

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Figura 2.10: Contar funes do tipo transao

1
5

Exemplos:
1. Transaes destinadas a manter Arquivos Lgicos Internos.
2. Processos destinados a realizar registros.
No so exemplos:
1. Telas de filtro.
2. Preenchimento de campos de dados.
3. Telas de login.
4. Gerar relatrios.

2.5.3 Consulta Externa


Processo elementar que apresenta informao ao usurio ou a outra aplicao
externa por meio de recuperao simples.
Definida por (VAZQUEZ,2009) como sua principal inteno apresentar
informaes ao usurio por meio de uma simples recuperao de dados ou
informaes de controle de ALIs e/ou AIEs, sendo que a lgica de processamento no
deve conter clculos ou frmulas matemticas e no deve alterar o comportamento do
sistema.
Exemplos:
1. Consultar clientes pelo nome.
2. Apresentar dados em formato grfico a partir de recuperao simples.
No so exemplos:
1. Relatrios financeiros, gerados a partir de clculos.
2. Telas de filtro.
2.5.4 Determinao da complexidade e da contribuio
Complexidade o grau de influncia que um processo elementar tem para o
tamanho funcional do sistema.
A contribuio a converso do grau de complexidade em pontos de funo.
Essa complexidade calculada a partir da contagem dos tipos de dados e dos
arquivos referenciados.
Tipos de dados:

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

2.5.2 Sada Externa


Processo elementar destinado a apresentao de informao ao usurio ou a
outra aplicao externa que utiliza de clculos para processar essas informaes.
Definida por (VAZQUEZ,2009) como sua principal inteno apresentar
informao a partir de lgica de processamento que no seja uma simples recuperao
de dado ou informao de controle, podendo manter Arquivos Lgicos Internos e
alterar o comportamento do sistema.
Exemplos:
1. Tela de login (com criptografia).
2. Relatrios financeiros, supondo estes gerados por clculos.
3. Consultas complexas com processamento de dados a partir de clculos.
4. Apresentao de grficos com dados processados a partir de clculos.
No so exemplos:
1. Telas de filtro.
2. Consultas simples, sem processamento de dados utilizando clculos.

1
6

um campo no recursivo de dado, nico e reconhecido pelo usurio,


ou seja, cada campo preenchido ou apresentado ao usurio. Por exemplo, em
um formulrio os campos nome, CPF, endereo, o boto de confirmao, uma
janela de mensagem de erro entre outros so tipos de dados, j em um
relatrio, o cdigo do produto, o nome, a descrio, o valor, em um grfico o
raciocnio o mesmo:

Arquivos
Referenciados

Contamos um tipo de dado para o nome do produto, um para a


quantidade e um para o valor. No total temos trs tipos de dados neste
relatrio.
Arquivo Referenciado:
Um arquivo referenciado todo arquivo lgico lido, pode ser um ALI ou
AIE, ou todo arquivo lgico mantido, neste caso s pode ser um ALI. Um tipo de
registro no um arquivo lgico, ele pertence a um. No devemos contar tipos
de registro e arquivos lgicos lidos vrias vezes, so contados apenas uma nica
vez.
Tabela de complexidade:
A tabela de complexidade padronizada pelo IFPUG, todos os usurios
da tcnica de anlise de pontos de funo utilizam os mesmos valores.

<2
2
>2

Tipos de Dados
<5
5 15 > 15
Baixa Baixa Mdia
Baixa Mdia Alta
Mdia Alta
Alta

Arquivos
Referenciados

Tabela 2.9: Complexidade Entrada Externa (EE)

Tipos de Dados
<6
6 19 > 19
< 2 Baixa Baixa Mdia
2 3 Baixa Mdia Alta
> 3 Mdia Alta
Alta

Tabela 2.10: Complexidade Sada Externa (SE) e Consulta Externa (CE)

Tabela de contribuio:

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Figura 2.11: Apresentao de relatrio grfico

1
7

A tabela de contribuio padronizada pelo IFPUG, todos os usurios da


tcnica de anlise de pontos de funo utilizam os mesmos valores.
Aps identificar a complexidade de cada processo elementar do seu
sistema, possvel determinar a contribuio desses para a contagem dos
pontos de funo.
Tipo de Funo
Baixa Mdia Alta
Entrada Externa 3 PF
4 PF 6 PF
Sada Externa
4 PF
5 PF 7 PF
Consulta Externa 3 PF
4 PF 6 PF
Tabela 2.11: Tabela de Contribuio

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

2.5.5 Aplicando o conhecimento


Para finalizar o terceiro passo ns devemos determinar a contagem das funes
do tipo transao.
O fluxo a seguir auxilia na determinao do tipo do processo elementar:

Figura 2.12: Fluxo para classificao do processo elementar

1
8

Esta uma viso geral, o importante saber o que o seu processo


elementar tem por finalidade. Por exemplo, um cadastro uma EE o mesmo
pode apresentar informaes ao final do processamento que no o torna uma
CE ou SE, pois sua finalidade era cadastrar.
Outra dica, quando voc no reconhece a classificao de uma funo
de transao, pode ser que esta ainda no um processo elementar, cabe
ento reconhecer todos os processos elementares no interior desta funo
antes de verificar a classificao em Entrada Externa (EE), Consulta Externa (CE)
ou Sada Externa (SE).

Descrio
Incluir Cliente
Excluir Cliente
Alterar Cliente
Incluir Usurio
Excluir Usurio
Alterar Usurio
Incluir Automveis
Excluir Automveis
Alterar Automveis
Registrar Locao
Finalizar Locao
Login (com criptografia)
Consulta clientes por nome
Consulta carros alugados
Consulta data do aluguel
Consulta clientes com carro alugado
Consulta carro mais alugado
Consulta cliente que mais aluga
Tabela 2.12: Identificao dos processos elementares

2. Classifique o processo elementar quanto ao seu tipo


Para facilitar a identificao utilize o fluxo (figura 2.12).
Exemplo:
Descrio
Incluir Cliente
Excluir Cliente
Alterar Cliente
Incluir Usurio
Excluir Usurio
Alterar Usurio
Incluir Automveis
Excluir Automveis

Tipo
EE
EE
EE
EE
EE
EE
EE
EE

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

1. Identifique todos os processos elementares


Exemplo:

1
9

Alterar Automveis
Registrar Locao
Finalizar Locao
Login (com criptografia)
Consulta clientes por nome
Consulta carros alugados
Consulta data do aluguel
Consulta clientes com carro alugado
Consulta carro mais alugado
Consulta cliente que mais aluga

EE
EE
EE
SE
CE
CE
CE
CE
CE
CE

Tabela 2.13: Tipos dos processos elementares

Descrio
Tipo TD AR
Incluir Cliente
EE
6
1
Excluir Cliente
EE
3
1
Alterar Cliente
EE
6
1
Incluir Usurio
EE
3
2
Excluir Usurio
EE
3
2
Alterar Usurio
EE
3
1
Incluir Automveis
EE
7
2
Excluir Automveis
EE
3
2
Alterar Automveis
EE
7
1
Registrar Locao
EE
3
2
Finalizar Locao
EE
4
2
Login (com criptografia)
SE
4
1
Consulta clientes por nome
CE
3
2
Consulta carros alugados
CE
3
2
Consulta data do aluguel
CE
3
2
Consulta clientes com carro alugado CE
3
3
Consulta carro mais alugado
CE
3
3
Consulta cliente que mais aluga
CE
3
2
Tabela 2.14: Tipos de Dados (TD) e Arquivos Referenciados (AR)

4. Verifique a complexidade
Aps definir os tipos de dados e os arquivos referenciados, determine
complexidade de cada processo elementar consultando a (tabela 2.9 ou
tabela 2.10).
Exemplo:
Descrio
Tipo TD AR Complexidade

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

3. Determine os tipos de dados e os arquivos referenciados


Neste passo necessrio analisar cada processo elementar e definir
seus tipos de dados e os arquivos aos quais referencia.
Este passo mais relevante quando os tipos de dados ou os arquivos
referenciados esto na fronteira da mudana da complexidade. Longe da
fronteira, erros neste ponto no iro influenciar na contagem.
Exemplo:

2
0

Incluir Cliente
Excluir Cliente
Alterar Cliente
Incluir Usurio
Excluir Usurio
Alterar Usurio
Incluir Automveis
Excluir Automveis
Alterar Automveis
Registrar Locao
Finalizar Locao
Login (com criptografia)
Consulta clientes por nome
Consulta carros alugados
Consulta data do aluguel
Consulta clientes com carro alugado
Consulta carro mais alugado
Consulta cliente que mais aluga

EE
EE
EE
EE
EE
EE
EE
EE
EE
EE
EE
SE
CE
CE
CE
CE
CE
CE

6
3
6
3
3
3
7
3
7
3
4
4
3
3
3
6
3
3

1
1
1
2
2
1
2
2
1
2
2
1
2
2
2
3
3
2

Baixa
Baixa
Baixa
Baixa
Baixa
Baixa
Mdia
Baixa
Baixa
Baixa
Baixa
Baixa
Baixa
Baixa
Baixa
Mdia
Baixa
Baixa

5. Determine a contribuio de cada processo elementar


Para determinar a contribuio basta verificar na (tabela 2.11) o ponto
de funo referente a cada complexidade.
Exemplo:
Descrio
Tipo TD AR Complexidade Contribuio
Incluir Cliente
EE
6
1
Baixa
3
Excluir Cliente
EE
3
1
Baixa
3
Alterar Cliente
EE
6
1
Baixa
3
Incluir Usurio
EE
3
2
Baixa
3
Excluir Usurio
EE
3
2
Baixa
3
Alterar Usurio
EE
3
1
Baixa
3
Incluir Automveis
EE
7
2
Mdia
4
Excluir Automveis
EE
3
2
Baixa
3
Alterar Automveis
EE
7
1
Baixa
3
Registrar Locao
EE
3
2
Baixa
3
Finalizar Locao
EE
4
2
Baixa
3
Login (com criptografia)
SE
4
1
Baixa
4
Consulta clientes por nome
CE
3
2
Baixa
3
Consulta carros alugados
CE
3
2
Baixa
3
Consulta data do aluguel
CE
3
2
Baixa
3
Consulta clientes com carro alugado CE
6
3
Mdia
4
Consulta carro mais alugado
CE
3
3
Baixa
3
Consulta cliente que mais aluga
CE
3
2
Baixa
3
Tabela 2.15: Contribuio

6. Determine a contribuio total

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Tabela 2.15: Complexidade

2
1

Para finalizar a contagem das funes do tipo dados, some as


contribuies de todos os processos elementares.
Exemplo:
Descrio
Tipo TD AR Complexidade Contribuio
Incluir Cliente
EE
6
1
Baixa
3
Excluir Cliente
EE
3
1
Baixa
3
Alterar Cliente
EE
6
1
Baixa
3
Incluir Usurio
EE
3
2
Baixa
3
Excluir Usurio
EE
3
2
Baixa
3
Alterar Usurio
EE
3
1
Baixa
3
Incluir Automveis
EE
7
2
Mdia
4
Excluir Automveis
EE
3
2
Baixa
3
Alterar Automveis
EE
7
1
Baixa
3
Registrar Locao
EE
3
2
Baixa
3
Finalizar Locao
EE
4
2
Baixa
3
Login (com criptografia)
SE
4
1
Baixa
4
Consulta clientes por nome
CE
3
2
Baixa
3
Consulta carros alugados
CE
3
2
Baixa
3
Consulta data do aluguel
CE
3
2
Baixa
3
Consulta clientes com carro alugado CE
6
3
Mdia
4
Consulta carro mais alugado
CE
3
3
Baixa
3
Consulta cliente que mais aluga
CE
3
2
Baixa
3
Total de Pontos de Funo =
57
Tabela 2.16: Contagem das funes do tipo transao

O quarto passo determinar a contagem dos pontos de funo no ajustados:

Figura 2.13: Determinar pontos de funo no ajustados

Neste ponto ns entendemos a relao de um arquivo lgico com um processo


elementar:

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

2.6 Pontos de funo no ajustados

2
2

Figura 2.14: Relao arquivo lgico e processo elementar

Neste exemplo temos uma aplicao AP01 com um arquivo lgico interno e
uma srie de processos elementares, a mesma realiza uma leitura de um arquivo
lgico da aplicao AP02, este arquivo lgico localiza-se fora da fronteira da aplicao
AP01 e deve ser classificado como um arquivo de interface externa.
Agora ns devemos realizar a contagem dos pontos de funo no ajustados,
esta anlise simples. Devemos apenas somar as contribuies das funes do tipo
dado com as contribuies das funes do tipo transao.

Descrio
Contribuio
Funes do tipo dado
21 PF
Funes do tipo transao
57 PF
Total de Pontos de Funo No Ajustados =
78 PF
Tabela 2.17: Pontos de funo no ajustados

2.7 Determinar o fator de ajuste


O quinto passo determinar o fator de ajuste:

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

2.6.1 Aplicando o conhecimento


Devemos somar as contribuies de todas as funes do tipo dado e do tipo
transao.
Exemplo:

2
3

Figura 2.15: Determinar o fator de ajuste

2.7.1 Aplicando o conhecimento


No ser feita anlise para esta etapa, uma vez que a mesma instituda
opcional pelo IFPUG e pode aumentar o erro na estimativa.
Exemplo:
Valor de ponto de funo no ajustado (VAF) = 1
O VAF sendo um no ir interferir na contagem.

2.8 Realizar o clculo dos pontos de funo ajustados


Este o sexto e ltimo passo para a contagem:

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Para o quinto passo devemos determinar o fator de ajuste, mas ns no iremos


realizar esta anlise e atribuiremos o valor do fator de ajuste como um.
O fator de ajuste pelo seu carter subjetivo e o impacto gerado na contagem,
podendo ser de +35% a -35%, fez com que vrios utilizadores da tcnica de anlise de
ponto de funo ignorassem esta etapa antes mesmo do IFPUG adot-la como
opcional em 2002.
Este guia tem por objetivo estimar pontos de funo, a incluso de anlises
subjetivas afetar a contagem e aumentar o erro.

2
4

Figura 2.15: Calcular os pontos de funo ajustados

DFP = (UFP + CFP) x VAF


Sendo:
DFP: O nmero de pontos de funo do projeto de desenvolvimento.
UFP: Nmero de pontos de funo no ajustados das funes disponveis
aos usurios aps a instalao
CFP: Nmero de pontos de funo no ajustados das funes de converso,
ou seja, as funes transitrias que so inutilizadas aps a instalao.
VAF: Valor do fator de ajuste.
2.8.1 Aplicando o conhecimento
Todos os valores estimados at este ponto sero utilizados para determinar os
pontos de funo ajustados.
Exemplo:
Para terminar a contagem do projeto de desenvolvimento, substitua os
valores estimados at aqui na frmula.
DFP = (78 + 0) x 1
A minha aplicao no possui funes de converso, por este motivo
somei zero as funes disponveis aps a instalao.

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Esta a etapa final para obter o tamanho funcional do seu projeto. Existem trs
tipos de contagem, como j foi dito:
1. Projeto de Desenvolvimento
2. Projeto de Melhoria
3. Aplicao
Como este guia visa contagem de projeto de desenvolvimento no
entraremos em detalhes dos demais tipos de contagem.
Para determinar os pontos de funo ajustados para projeto de
desenvolvimento necessrio aplicar a seguinte frmula:

2
5

A minha aplicao contada possui um tamanho funcional estimado em


78 pontos de funo.

3. DERIVAES
Neste ponto j possumos o tamanho funcional da nossa aplicao, agora ser
apresentado as derivaes que podem ser realizadas com ele.
At aqui utilizamos a anlise de pontos de funo na perspectiva de produto,
agora iremos fazer uma anlise na perspectiva de processo (esforo, custo e prazo).
Independente da derivao o importante possuir um histrico de projeto, s
assim ser possvel estimar esforo, custo e prazo. Na primeira vez que aplicar estas
estimativas o erro ser grande, mas conforme for ampliando a sua base de histricos
de projeto tender a diminuir este erro.

3.1 Esforo

Desenvolvimento e manuteno de sistemas


Tecnologia
Produtividade Mnima
Java
15 h/PF
ASP (Vbscript e Javascript) 10 h/PF
PHP
11 h/PF
JSP
13 h/PF
HTML
7 h/PF
Cold Fusion
11 h/PF
Delphi
9 h/PF
Crystal reports
9 h/PF
PL/SQL
9 h/PF
Visual Basic
9 h/PF
Tabela 3.1: Tabela de produtividade mnima ACINE

Utilizar bases de editais (sem o conhecimento sobre o projeto) ou de outras


empresas, se constitui um risco muito grande, pois a produtividade intrnseca de
cada empresa, pois essas possuem funcionrios e processos diferenciados.

3. DERIVAES

Para calcular o esforo necessrio conhecer quantos pontos de funo so


produzidos em uma hora e saber quantas horas de trabalho so consideradas em um
ms na sua empresa.
A estimativa de esforo pode ser:
Pontos de Funo por Homem Ms (PF/HM)
Pontos de Funo por Hora (PF/H)
Temos por base que a taxa de produtividade media em hora por ponto de
funo (H/PF).
Cada linguagem ou tecnologia demandam um esforo diferente, essas
caractersticas no influenciam nos pontos de funo, mas sim no esforo que
demanda produzir cada ponto de funo.
Existem vrios editais para licitao que incluem tabelas de produtividade
mnima no desenvolvimento de projetos.

2
6

3.1.1 Aplicando o conhecimento


Exemplo:
A nossa aplicao foi estimada em 78 pontos de funo. Considere uma
empresa que possui uma taxa de produtividade mnima em Java de 5 H/PF e
com uma carga de trabalho de 130 horas por homem ms:
Esforo = (5 x 78)
Esta empresa gastaria 390 horas pra produzir o sistema ou trs meses.

3.2 Custo
A estimativa do custo de um projeto a informao primordial na hora de
elaborar uma proposta, este no pode exceder as expectativas do cliente e nem to
pouco ter um valor inferior ao necessrio para o funcionamento da empresa.
Como na determinao do esforo o custo tambm estimado a partir de
dados da empresa, neste caso necessrio ter o conhecimento do custo da hora da
equipe de desenvolvimento ou o valor de um ponto de funo para sua empresa.
O custo dado por:
Custo por hora vezes hora por ponto de funo (C/H x H/PF).
Assim ns obtemos o custo por ponto de funo.
3.2.1 Aplicando o conhecimento
Exemplo:
Suponha que a hora de trabalho custa R$ 21,00 e como produzido um
ponto de funo a cada cinco horas o valor do ponto de funo de R$ 105,00.
Estimamos que os esforos necessrios para produzir nossa aplicao
so de 390 horas e a mesma possui 78 pontos de funo.
Custo = (78 x 100,00)
Podemos assim inferir
aproximadamente R$ 7800,00.

que

a aplicao tem

um

custo de

O prazo um fator crtico a ser determinado, pois para estimativas ns


supomos ele sendo uma funo linear com o recurso, o que uma suposio muito
falha. Por exemplo, se um projeto desenvolvido por dois desenvolvedores gasta um
prazo de dois meses, alocar mais dois desenvolvedores para o projeto no
necessariamente implica que o mesmo ir durar apenas um ms.
A anlise emprica mostra que essa linearidade no existe, uma mulher demora
nove meses para gerar um beb, nove mulheres no geram um beb em um ms
(VAZQUEZ,2009).
Quanto maior o tamanho funcional de um projeto, maior ser o prazo e maior
ser o erro. Para projetos pequenos o erro aceitvel, mas novamente voltamos ao
ponto de que a melhor maneira de evitar estes erros possuindo uma base histrica
dos projetos desenvolvidos.
Implicamos o prazo da seguinte forma:
Prazo a relao de esforo por recurso.

3. DERIVAES

3.3 Prazo

2
7

Prazo =

Esforo
Recurso

3.3.1 Aplicando o conhecimento


Exemplo:
Foi definido que o esforo necessrio para produzir a aplicao de 390
horas ou trs meses. Suponha que esta empresa possua dois funcionrios
habilitados a desenvolver o projeto na tecnologia estabelecida.
Prazo = (3 / 2)

3. DERIVAES

Utilizando dessas informaes conclumos que o prazo para a entrega


do sistema ser de um ms e meio.

2
8

4. CONSIDERAES
Durante a elaborao deste guia tive contato com outras tcnicas de
estimativas de software, contagem por linha de cdigo, contagem de telas, pontos por
caso de uso e outras, foi possvel perceber que das solues usuais encontradas a
Anlise de Ponto de Funo APF uma tima soluo e consegue atender de forma
satisfatria as necessidades do mercado.
Para elaborao deste guia foi utilizado artigos, livros e vdeos-aula. Atribuo
grande parte do meu conhecimento ao livro Anlise de Pontos de Funo
(VAZQUEZ,2009) que sem o qual eu teria grande dificuldade em terminar o meu
projeto. Outra fonte de conhecimento que me foi de grande ajuda, no pela estrutura
formal, mas pelos conhecimentos gerados diariamente a partir de dvidas dos usurios
da tcnica, foi o grupo de leitores de APF, disponvel em:
<http://groups.yahoo.com/group/livro-apf/>.
Finalizando as consideraes, agradeo ao Jos Luis Braga meu orientador por
me possibilitar o conhecimento nesta rea e estar sempre disposio para ajudar e
indicar materiais surpreendentes sobre os mais variados conhecimentos desde
engenharia de software, gerncia de projetos a conhecimentos do mundo e fora dele.
No se limite a este guia, pois ele apresenta uma viso superficial da tcnica de
anlise de pontos de funo e que ele te instigue a buscar mais conhecimentos sobre
essa rea.

4. CONSIDERAES

Um conhecimento nunca mantido constante, ou ele perdido ou enriquecido.

2
9

5. BIBLIOGRAFIA

5. BIBLIOGRAFIA

VAZQUEZ,C.E. , SIMES,G.S. , ALBERT,R.M. Anlise de ponto de funo


medio, estimativa e gerenciamento de projetos de software. So Paulo, Editora
rica, 2009.
Softex. MPS.BR - Melhoria de processo do software brasileiro - Guia geral,
2009.
IFPUG(International Function Point Users Group). Disponvel em:
<http://www.ifpug.org>. Acesso em: 01 nov 2010.
BFPUG(Brazilian
Function
Point
Users
Group).
Disponvel
em:
<http://www.bfpug.com.br>. Acesso em: 01 nov 2010.
PMI (Project Management Institute). Um Guia do Conjunto de Conhecimentos
em Gerenciamentos de Projetos (PMBOK). Estados Unidos: PMI Publications, 2004.
DEKKERS, C. Pontos de Funo e Medidas - O Que um Ponto de Funo?. QAI
Journal, dez. 1998
DEKKERS, C. Desmistificando Pontos de Funo: Entendendo a Terminologia. IT
Metrics Strategies, out. 1998.
ACINE. Anexo XVIII Tabelas de produtividade mnima, 2008. Disponvel em:
<http://www.ancine.gov.br/media/concorrencia0012008/AnexoXVIII.pdf>. Acesso em:
19 jun 2011.

3
0

Das könnte Ihnen auch gefallen