Sunteți pe pagina 1din 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).

1.2 Objetivo
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

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.4 Pontos chave


1. INTRODUO 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;

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.

1. INTRODUO

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO


2.1 Viso geral
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

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

2.2 Determinar o tipo de contagem


O primeiro passo para a contagem:

Figura 2.2: Determinar o tipo de contagem

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

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


O segundo passo para a contagem:

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 3

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.

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

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

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


O terceiro passo primeira parte: 2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

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

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

1 0

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

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

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:

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.

1 1

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Figura 2.7: Viso do Negcio

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

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

Tipos de Registro

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:

1 2

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Figura 2.8: Fluxo para classificao do tipo lgico

Passos para uma estimativa da contagem desta etapa: 1. Elabore um modelo lgico do seu projeto Exemplo:

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:

1 3

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

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): Descrio Tipo TD TR Complexidade Usurio ALI 4 1 Baixa Cliente ALI 7 2 Baixa Carro ALI 8 2 Baixa
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

1 4

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Cliente Carro

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


Tabela 2.8: Contagem das funes do tipo dados

7 7 21

2.5 Contar funes do tipo transao


Terceiro passo segunda parte:

Figura 2.10: Contar funes do tipo transao

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.

1 5

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

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.

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

1 6

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

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:

Figura 2.11: Apresentao de relatrio grfico

<2 2 >2

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

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:

1 7

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

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.
Arquivos Referenciados Arquivos Referenciados

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

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

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). 1. Identifique todos os processos elementares Exemplo: 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

1 9

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

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

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: 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 0

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

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

Tabela 2.15: Complexidade

Tabela 2.15: Contribuio

6. Determine a contribuio total

2 1

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

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

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

2.6 Pontos de funo no ajustados


2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO 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 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. 2.6.1 Aplicando o conhecimento Devemos somar as contribuies de todas as funes do tipo dado e do tipo transao. Exemplo: 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 3

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Figura 2.15: Determinar o fator de ajuste

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

2. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO

Figura 2.15: Calcular os pontos de funo ajustados

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. COMO REALIZAR A CONTAGEM DE PONTO DE FUNO 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 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
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. 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.

2 6

3. DERIVAES

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

3.3 Prazo
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.

2 7

3. DERIVAES

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) Utilizando dessas informaes conclumos que o prazo para a entrega do sistema ser de um ms e meio.

2 8

3. DERIVAES

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. Um conhecimento nunca mantido constante, ou ele perdido ou enriquecido.

2 9

4. CONSIDERAES

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

5. BIBLIOGRAFIA

S-ar putea să vă placă și