Colaboração de Leandro Moreira
Analise de ponto de função
É uma metodologia baseada na técnica de contagem de ponto de função, usada para dar "metros" ao seu software, e assim poder estimar preços e prever um tempo para o término do mesmo.
Com essa técnica um software feito por mim terá X pontos de função, entenda ponto de função como uma medida, e se eu der este mesmo software para você contar ele deverá ter estes mesmos X pontos de função que eu contei.
Com isso ele terá o mesmo "tamanho" e poderá ser cobrado igualmente, isso em si é ótimo pois os clientes poderão escolher qual empresa fará o seu software baseado nos gastos e no tempo, cada empresa tem um preço e tempo para um ponto de função, em geral varia de 400 reais a 750 reais e de 8 Horas/Homens a 20Horas/Homens.
Objetivos fundamentais:
Procedimento de contagem
1.1 – Contar função de dados (Referente ao projeto do banco de dados, modelo D.E.R.)
1.2 – Contar funções transacionais (Referente ao sistema , modelagem UML )
1.1 - Contar função de dados
Para realizar esta primeira contagem é necessário determinar a complexidade de cada arquivo lógico (Tabelas do banco).
A complexidade é calculada com base:
- No número de itens de dados.
- No número de registros lógicos do arquivo.
Tabela de complexidade de funções de dados.
Numero de itens de dados |
||
De 1 a 19 |
De 20 a 50 |
51 ou + |
1 è SIMPLES SIMPLES MÉDIA
2 A 5 è SIMPLES MÉDIA COMPLEXA
5 OU + è MÉDIA COMPLEXA COMPLEXA
Deverá ser feita uma classificação para cada arquivo ou Tabela, em dois tipos A.L.I. e A.I.E.
ALI è Arquivo Lógico Interno, os arquivos ou tabelas do "seu sistema".
AIE è Arquivos Interface Externa, são arquivos ou tabelas mantidos por "outros sistemas" que são acessados pela sua aplicação.
Sistemas em avaliação è Arquivos ou BD do sistema ALI
Sistemas em avaliação è Arquivos ou BD de outro sistema, acessado pelo seu. AIE
Logo, se o arquivo em questão for SIMPLES, MÉDIA ou COMPLEXO, receberá pontos adicionais conforme a tabela:
Tipo de função |
SIMPLES |
MÉDIA |
COMPLEXA |
ALI |
7 P.F |
10 P.F |
15 P.F |
AIE |
5 P.F |
7 P.F |
10 P.F |
Vamos a contagem de um exemplo simples.
Exemplo simples:
O diagrama abaixo ilustra um D.E.R., diagrama entidade relacionamento, com uma entidade chamada Cliente, tendo Código , Nome , Endereço , Telefone, Tipo e Número como atributos, sendo que Telefone é um atributo multivalorado, ou seja, poderá haver mais de um valor para o mesmo atributo.
Arquivo : Cliente (A.L.I.)
Uma tabela do próprio sistema e não externo ao sistema.
Itens de dados : 5 ( Código, Nome, Endereço, Número e Tipo)
Todo atributo exceto multivalorado pois será contado.
Reg. Lógicos : 2 (Cliente e Telefone)
A própria entidade Cliente é um Registro lógico e o atributo multivalorado Telefone também é um Registro lógico, toda entidade e atributo multivalorado são registros lógicos.
Complexidade : SIMPLES
Olhando na tabela de complexidade de funções de dados, podemos obter esta descrição, veja, o arquivo possui 2 reg. lógicos e 5 itens de dados , logo terá uma complexidade simples.
Então teremos:
Itens de dados : 5
Reg. lógicos : 2
Complexidade : 7 (SIMPLES em ALI , veja a tabela de complexidade)
Esta parte do sistema terá 14 P.F.
Quer dizer: Se eu cobrar R$750,00 por P.F. por esta parte o obterei o equivalente a 750 * 14 igual R$10.500,00, sei que devem estar se perguntando: Mas vale isto mesmo? Sim vale, levando em consideração que existem outras questões a serem avaliadas. Se meu P.F. fosse R$450,00 sem os devidos ajustes custaria ao cliente R$5.600,00.
Porem a contagem do sistema não é só isto, há muitas coisas a serem observadas, que serão mostrados , como um "ajuste" de preços.
Bem este exemplo é trivial, portanto segue-se outro.
Exemplo um pouco mais complicado:
Um DER, com três entidades e dois relacionamentos entre elas, são:
Entidades:
CLIENTE,VENDA E PRODUTO
Relacionamento:
ITEM_VENDA, FAZ ( ENTRE CLIENTE E VENDA)
E vários atributos relacionados as entidades.
O desenho abaixo ilustra este DER, logo abaixo da figura esta a analise de cada arquivo e depois uma contagem geral.
Arquivo : Cliente (A.L.I.)
Uma tabela do próprio sistema e não externo ao sistema.
Itens de dados : 21 (Todos atributos exceto os multivalorados)
Todo atributo exceto multivalorado pois será contado.
Reg. Lógicos : 6 (Email, Cliente, Referencia, Telefone, venda, Item_venda e Produto)
A própria entidade Cliente é um Registro lógico e o atributo multivalorado Telefone também é um Registro lógico, toda entidade e atributo multivalorado são registros lógicos.
Complexidade : COMPLEXA
Olhando na tabela de complexidade de funções de dados, podemos obter esta descrição, veja, o arquivo possui 2 reg. lógicos e 5 itens de dados , logo terá uma complexidade simples.
Então teremos:
Itens de dados : 21
Reg. lógicos : 6
Complexidade : 15 (COMPLEXO em ALI , veja a tabela de complexidade)
Esta parte do sistema terá 42 P.F.
Bem mas a contagem do sistema também têm outros aspectos , que serão abordados na segunda parte deste artigo, será sobre o item contagem transacionais , contagem sobre as saídas e entradas do sistema. Até mais.
Bibliografia
http://www.goi.universo.edu.br/~edigarjr/
http://www.ifpug.org
http://www.goi.universo.edu.br/~edigarjr/ES/ExemploMetrica.pdf
José Carlos Macoratti