Quanto custa seu software, quanto tempo vai levar para terminar ?


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:

  • Medir a funcionalidade requisitada e recebida pelo usuário.
  • Medir projetos de desenvolvimento e manutenção de software independente da tecnologia utilizada (JAVA, .NET, COBOL ...), quer dizer antes de começar a implementação posso estimar o valor e o tempo.
  • 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