Você está na página 1de 13

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

Fundamentos da Engenharia de Software

Mtrica de Pontos de Funo

Andr Costa de Jesus & Helena Prudente Bartholo

Introduo:
Tradicionalmente, um dos aspectos mais difceis da anlise de sistemas a estimao do tamanho de um projeto e do tempo requerido para desenvolvlo. Entretanto, fundamental que se tenha a informao do esforo necessrio para desenvolver um produto de software e a partir dela prever e acompanhar o esforo despendido no desenvolvimento de outros produtos de porte semelhante. Mas como identificar o porte de um produto de software? Com este intuito foram criadas vrios tipos de medidas, algumas fceis de serem obtidas outras mais abstratas. Uma das maneiras de medir o tamanho do software pela quantidade de linha de cdigo que este possui. Este mtodo, no entanto, apresenta alguns

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

problemas. Primeiro, s possvel contar o nmero de linhas de cdigo depois que este est pronto. Alm disso, esta medida penaliza as linguagens de alto nvel e frequentemente comete erros quando h melhoria da produtividade, j que assume, incorretamente, que esta implica o crescimento do nmero de linhas de cdigo que pode ser desenvolvida em um ano, diminuindo, assim, o custo por linha. Pode-se ainda citar a medio de custo por defeito que penaliza os programas de alta qualidade e fornece resultados destorcidos a medida que a qualidade aprimorada. Em adio esta, tem-se a contagem do nmero de horas gastos para desenvolver o projeto, dentre muitas outras tcnicas. Percebe-se, ento, que no havia uma medida satisfatria para o tamanho do software em funo de sua funcionalidade do ponto de vista do usurio. Contudo, em 1979, Albrecht exps sua proposta.

Afinal, o que dizia esta proposta?


Conhecida como Pontos de Funo, esta, tem o objetivo de servir no s como avaliador mas tambm como preditor do tamanho de uma sistema. Um Ponto de Funo uma medida abstrata e relativa que conta o nmero de funes de negcio entregues ao usurio. Pontos de Funo s fazem sentido quando comparados com o padro. Este determinado pelo International Function Points User Group (IFPUG) atravs de um manual que contm informaes do que deve e o que no deve ser contado.

Como contar os pontos de funo?


O primeiro passo desta etapa identificar as funes de negcio percebidas pelo usurio. So elas: Sadas - so as informaes de negcio que o usurio final pode receber. Como, por exemplo, telas, relatrios e mensagens de erro; Consultas - so sadas simples e imediatas que no provocam alterao de dados; Entradas - so as informaes de negcios questo enviadas pelo usurio final ao sistema; Arquivos - so os dados de uma aplicao na maneira como o usurio final os enxerga, a memria. Podem, ainda, ser obtidos a partir dos depsitos de um DFD, ou das entidades de um E-R e tambm do nmero de tabelas de um banco de dados relacional;

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

Interfaces - so os dados guardados em algum lugar por outra aplicao mas usados pela aplicao em questo. O prximo passo determinar a complexidade de cada funo de negcio que , na realidade, atribuir pesos para cada uma delas. Seguindo, soma-se o nmero de funes multiplicadas pelos seus respectivos pesos, obtendo, assim, o nmero bsico de pontos de funo. Este indica o tamanho preliminar do sistema. Por fim, corrige-se o nmero bsico de pontos de funo de acordo om fatores que diminuam ou aumentem a complexidade do sistema.

Como identificar funes de negcios?


Deve-se buscar em algum documento as funes aprovadas pelo usurio(e que o beneficie)que so ao mesmo tempo teis para o negcio, ou seja, que influencie deforma significativa o projeto, o desenvolvimento, a implementao e o suporte aplicao. Aqui no se deve levar em considerao a tecnologia aplicada. Um aspecto importante que somente o que o usurio pode ver ou est disposto a pagar deve ser cobrado. Alm disso, deve-se ratificar que as funes de negcios devem ser cobradas de acordo como o usurio as percebem. Desta forma, irrelevante a quantidade de arquivos utilizados para guardar certa informao, o que importa a quantidade de maneiras como o usurio pode acessar esta informao. Somado a isso, deve-se identificar as funes de negcio seguindo uma certa ordem. Esta importante porque a partir de uma funo de negcio pode-se encontrar outras de outro tipo. Para um sistema novo a seguinte ordem deve ser respeitada: sadas, consultas, entradas, arquivos e interfaces. J em um sistema existente a ordem deve ser: arquivos, interfaces, sadas, consultas e entradas.

Como determinar a complexidade?


Deve-se determinar o nmero de itens de dados referenciados para cada funo de negcio. No caso de sadas, consultas e entradas esta contagem baseia-se no nmero de arquivos acessados. J para arquivos e interfaces considera-se o nmero de relacionamentos do arquivo. A tabela abaixo mostra como calcular o nmero de pontos de funo.

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

Tabela 1

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

Um maneira de facilitar a tarefa de determinar a quantidade de pontos de funo de um sistema a aplicao de algumas perguntas ao sistema(14 ao total). Cada uma delas deve ser respondida atribuindo um nmero de 0 a 5. Estes nmeros indicam: 0 - No tem influncia; 1 - Influncia incidental ; 2 - Influncia moderada; 3 - Influncia mdia; 4 - Influncia significativa ; 5 - Influncia essencial. As perguntas so as seguintes: 1. O sistema necessita de backup e recuperao confivel? 2. necessrio utilizar comunicao de dados? 3. Existe processamento distribudo de funes? 4. A performance crtica? 5. O sistema vai funcionar em um ambiente operacional j existente e fortemente utilizado? 6. O sistema exige entrada de dados on-line? 7. (Se existir) A entrada de dados exige que a transao seja realizada por meio de vrias telas ou operaes? 8. Os arquivos so atualizados on-line? 9. As entradas, sadas e consultas so complexas? 10. O processamento interno complexo? 11. O cdigo deve ser projetado para ser reutilizvel? 12. A converso (se necessria) e instalao deve estar includa no projeto? 13. O sistema deve funcionar em mltiplas instalaes em diferentes organizaes? 14. A aplicao projetada para ser facilmente modificvel e fcil de utilizar pelo usurio? A partir da tabela acima pode-se criar uma nova tabela com os multiplicadores que sero utilizados no clculo dos pontos de funo.

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

Tabela 2

Calculando

os

pontos

de

funo

1. Contam-se os nmeros de entradas, sadas, consultas, arquivos e interfaces do sistema; 2. Multiplica-se cada um desses nmeros por um peso, de acordo com a complexidade do sistema e soma-se os resultados; 3. Responde-se a uma srie de perguntas, as quais fornecem, cada uma, um valor de 0 a 5,soma-se os valores obtidos; 4. Finalmente, calcula-se o nmero de pontos de funo com a equao:

Exemplo
O exemplo consiste de um sistema de controle de estoque desenvolvido para uma sapataria. Considere os diagramas de fluxo de dados(DFDs) para este sistema:

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

partir

deles

obtem-se

as

seguintes

tabelas:

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

w
w

w
w

PD

F -X C h a n ge

PD

F -X C h a n ge

O W !

bu

to

lic

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u -tr a c k

c u -tr a c k

.c

Aplicando

frmula

anterior

tem-se

que:

w
w

w
w