Escolar Documentos
Profissional Documentos
Cultura Documentos
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.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.
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.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.
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.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.
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.
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.
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.
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
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:
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:
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
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
Passos para uma estimativa da contagem desta etapa: 1. Elabore um modelo lgico do seu projeto Exemplo:
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
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
Cliente Carro
7 7 21
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
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
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:
<2 2 >2
Tipos de Dados <5 5 15 > 15 Baixa Baixa Mdia Baixa Mdia Alta Mdia Alta Alta
Tipos de Dados <6 6 19 > 19 < 2 Baixa Baixa Mdia 2 3 Baixa Mdia Alta > 3 Mdia Alta Alta
Tabela de contribuio:
1 7
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:
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). 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
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
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
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
2 1
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 2
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 3
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 4
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
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