Você está na página 1de 30

Estimando Esforo de Projetos de Software utilizando Anlise de Pontos de Funo

1/30

Objetivos
Medir a Funcionalidade de Sistemas de acordo com a perspectiva do usurio Medir o desenvolvimento e a manuteno de software independentemente da tecnologia usada para implementao Comparar a produtividade entre ambientes de desenvolvimento (P=PF/Esforo) Melhorar as estimativas de projetos de desenvolvimento de softwares Criar uma unidade padro de medida de software
2/30

Anlise de Pontos de Funo Histrico


Tempo 1980 1990 2000

Contagem de linhas de cdigo fonte SLOC Anlise de Pontos de Funo FPA (1979)
Allan Albrecht da IBM, em uma conferncia da Guide/Share (1979). Metodologia formal e publicao no domnio pblico. - IBM CIS & A Guideline 313, AD/M Productivity Measurement and Estimate Validation, November 1, 1984. Grupo Internacional de Usurios de Pontos de Funo (1986) Manual de Prticas de Contagem IFPUG Function Point Counting Practices Manual, atualmente no Release 4.1, January 1999. Criao de um grupo de trabalho na ISO sobre Medidas Funcionais de Tamanho (1994) Padro Internacional ISO/IEC 20926 (2002)

Pontos de Casos de Uso UCP (1993)


3/30

Certificao
CFPS Certified Function Point Specialist: a certificao conferida pelo International Function Point Users Group s pessoas aprovadas no exame de certificao

4/30

Procedimento para Contagem


Count Data Functions Count Transactional Functions Determine Type of Count Identify Counting Scope and Application Boundary Determine Unadjusted Function Point Count Calculate Adjusted Function Point Count

Determine Value Adjustment Factor

1. 2. 3. 4. 5. 6.
5/30

Determinar o tipo de contagem de ponto de funo. Identificar o escopo de contagem e a fronteira (limite) da aplicao. Contar as funes de dados para determinar a contribuio delas para a contagem de pontos de funo no ajustada. Contar as funes transacionais para determinar a contribuio delas para a contagem de pontos de funo no ajustada. Determinar o fator de ajuste de valor. Calcular a contagem de pontos de funo ajustada.

Etapa 1: Determinar o Tipo de Contagem


Tipos de contagem de Pontos de Funo:
Projeto de Desenvolvimento (development project) Manuteno (enhancement project) Aplicao (application)
Estimated Count Development Project a s Projec t A Complete d Projec t Final Count Development Project as Pr oject A Initializ es

Applic ation Count

Estimated Count Complete d Projec t Enhancem ents as Pr oject B

Final Count Updates Enhancem ents as Pr oject B

6/30

Margem de Erro
Conhecimento do Sistema

Margem de Erro
Requisitos - Conceitual - Detalhado - Codificao - Testes - Implantao

Tempo

7/30

Etapa 2: Identificar o Escopo e a Fronteira


O escopo da contagem
Define a funcionalidade que ser includa em uma particular contagem de pontos de funo. Define um (sub) conjunto do software que est sendo medido determinado pelo propsito da execuo da contagem de pontos de funo (ex: definio de custos, comparao, etc.) Identifica quais funes sero includas na contagem de pontos de funo para prover respostas pertinentes ao propsito da contagem Pode incluir mais de uma aplicao

8/30

Etapa 2: Identificar o Escopo e a Fronteira


A fronteira da aplicao indica o limite entre o software que est sendo medido e o usurio.
Define o que externo aplicao
a interface conceitual entre a aplicao interna e o mundo externo do usurio Atua como uma ' membrana' pela qual dados processados por transaes passam para dentro e para fora da aplicao Envolve os dados lgicos mantidos pela aplicao Assegura a identificao dos dados lgicos referenciados mas no mantidos dentro da aplicao dependente da viso de negcio externa do usurio da aplicao. independente de consideraes tcnicas e/ou de implementao

9/30

Etapa 3: Contagem das Funes de Dados


ILF (Internal Logical File)
Entidade lgica e persistente Mantm os dados que sofrem manuteno dentro da Fronteira da Aplicao Equivale um Depsito de Dados

EIF (External Interface File)


Entidade lgica e persistente Mantido dentro da fronteira de outra aplicao Um EIF contado por uma aplicao deve ser um ILF em outra aplicao.

10/30

Etapa 3: Contagem das Funes de Dados


Passo Ao Como Fazer 1 Identificar os ILFs Aplicar as regras de identificao de ILFs

Identificar os EIFs

Aplicar as regras de identificao de ELFs

Determinar a complexidade dos ILF e EIF e suas contribuies

Seguir os procedimentos para calcular a complexidade e a contribuio para contagem no ajustada de pontos de funo

11/30

Complexidade e Contribuio dos ILFs e EIFs


Tabela de Converso ILF :
Complexidade da Funo Baixa Mdia Alta Pontos de Funo no Ajustados 7 10 15

Tabela de Converso EIF :


Complexidade da Funo Baixa Mdia Pontos de Funo no Ajustados 5 7

Alta
12/30

10

Exemplo: Contagem de Funes de Dados no Ajustada

13/30

Etapa 4: Contagem das Funes de Transao


EI (External Input)
Processo lgico do negcio que mantm os dados em um ou mais arquivos lgicos internos Contada com base no nmero de campos de dados do usurio envolvidos e na soma dos ILF e EIF participantes do processo Processo lgico do negcio que gera dados para um usurio ou para outro aplicativo externo ao software Exemplos tpicos de sadas externas incluem relatrios de usurios, disquetes ou fitas O processamento lgico que no contm nenhuma frmula matemtica ou clculo nem cria dados derivados; o comportamento do sistema no alterado.

EO (External Output)

EQ (External Query)

14/30

Etapa 4: Contagem das Funes de Transao


Passo Ao Como Fazer
1 Identificar os processos elementares Aplicar as regras de identificao de processos elementares

Identificar as pretenses bsicas dos processos elementares, classificando-os como EI, EO ou EQ.

Aplicar as regras de identificao das pretenses bsicas para os processos elementares identificados.

Validar a classificao

Aplicar as regras especficas para cada tipo de funo de transao (EI, EO ou EQ)

Determinar a complexidade (EI, EO ou EQ)

Seguir os procedimentos para calcular a complexidade das funes de transao

Determinar a contribuio (EI, EO ou EQ)

Seguir os procedimentos para calcular a contribuio das funes de transao

15/30

Complexidade e Contribuio das Funes de Transao


Tabela de Converso EI e EQ:
Complexidade da Funo Pontos de Funo no Ajustados 3

Baixa Mdia
Alta

4
6

Tabela de Converso EO:


Complexidade da Funo Baixa Mdia Alta
16/30

Pontos de Funo no Ajustados 4 5 7

Viso Geral da Aplicao

EI

EO

EQ

Fronteira da Aplicao

EO

ILF
Sistema A
Fronteira da Aplicao
17/30

EQ
EI

EIF
Sistema B

Etapa 5: Determinar o Fator de Ajuste


Fator de Ajuste de Valor (VAF)
Passo final na contagem de pontos de funo Avalia restries de negcio adicionais do software no consideradas pelos cinco tipos de funes. Todas as funes avaliadas na contagem de Pontos de Funo so funes do software Baseado na influncia de 14 Caractersticas Gerais do Sistema

18/30

Etapa 5: Fator de Ajuste


Caractersticas Gerais:
1. Comunicao de Dados 2. Processamento de Dados Distribudo (Funes Distribudas) 3. Performance 4. Configurao do equipamento 5. Volume de Transaes 6. Entrada de Dados On-Line 7. Interface com o usurio 8. Atualizao On-Line 9. Processamento Complexo 10. Reusabilidade 11. Facilidade de Implantao 12. Facilidade Operacional 13. Mltiplos Locais 14. Facilidade de mudanas

atribuda uma nota de 0 5 a


cada uma das Caractersticas Gerais do Sistema correspondendo ao seguinte critrio: (nenhuma influncia, influncia incidental, moderada, mdia, significante, essencial)

Fator de Ajuste:
i=1

Nt(total) =

14

Nt

VAF = 0,65 + (0,01 X Nt(total)) (0,65 <= VAF <= 1,35)

19/30

Etapa 6: Ajustar a Contagem


AFP = ADD * VAF
onde: ADD a contagem no ajustada das funes do projeto VAF o fator de ajuste da contagem AFP o valor ajustado da contagem

20/30

Exemplo
Calcule os pontos de funo para um sistema que mantm um Cadastro de Clientes onde possvel tirar uma listagem por ordem alfabtica e exportar o cadastro para outro sistema atravs de um arquivo texto.
Contagem: ILF = 01(Arquivo de Clientes) EIF = 0 EI = 01 (Processo de incluso) EO = 01 (Listagem por ordem alfabtica) EQ = 01 (Exportao de Arquivo Texto)

21/30

Exemplo
Considerando todos os tipos de funo nesse exemplo de complexidade BAIXA.

ADD = ILF x 7 + EIF x 5 + EI x 3 + EO x 4 + EQ x 3 = 1 x 7 + 0 x 5 + 1 x 3 + 1 x 4 + 1 x 3 = 17 (Pontos de funo no ajustados)

Contado-se os fatores de ajuste segundo os nveis de influncia temos, considerando-se Nt(total) = 45, temos:

VAF = 0,65 + (0,01*45 ) = 1,1 (Fator de Ajuste) AFP = VAF x ADD = 1,1 x 17 = 18,7
22/30

Estimativas
O que fazer agora?
Pouco frustrante para empresas recm-criadas Comparar com projetos anteriores, planejar e estimar melhor o novo desenvolvimento Obtendo o nmero de Pontos de Funo pode-se estimar o esforo de projeto por fases de desenvolvimento

23/30

Estimativas

Imaginemos um projeto no qual obtemos um total de 100 PF Numa fase que corresponde a 20% do Projeto Numa equipe de 4 pessoas Considerando uma produtividade mdia de 20hs/PF Considerando uma jornada de 6 horas dirias Considerando um valor de R$35,00 o valor de 1 Hora de Trabalho

24/30

Estimativas
20% de 100 PF = 20 PF Esforo - 20hs/PF ento: 20hs/PF x 20PF = 400h Prazo - 400h/(4 x 6) = 16,7 Dias Custo - 400h x R$ 35,00 = R$ 14.000,00

25/30

Aplicaes da Tcnica FPA


Produtividade no desenvolvimento Horas por PF Esforo de desenvolvimento Produtividade (H/PF) * Tamanho (PF) Custo de software Tamanho (PF) * Custo (R$/PF) Taxa de produo de software PF/Ms; PF/Ano Taxa de manuteno de software PF manuteno / PF aplicativo
26/30

Influncias
Linguagem de Codificao Tamanho do software Experincia da equipe Mtodos estruturados Ambiente de desenvolvimento (CASE) Qualidade de expanso/manuteno Reutilizao de cdigo Mtodos de remoo de erros Organizao da equipe

27/30

Vantagens
Uma ferramenta para determinar o tamanho de um pacote de aplicao comprado contando todas as funes includas no pacote. Uma ferramenta para ajudar os usurios a determinar o benefcio de um pacote de aplicao para a sua organizao contando funes que especificamente atendam seus requisitos. Uma ferramenta para medir as unidades de um produto de software para apoiar a anlise de qualidade e produtividade. Um veculo para calcular custos e recursos requeridos para desenvolvimento e manuteno de software. Um fator de normalizao para comparao de softwares.

28/30

Algumas Limitaes e Desvantagens

Para ter uma boa utilizao necessria uma base histrica necessrio ter uma boa viso (profundidade do sistema para poder estimar com mais segurana) Utilizao de pesos para definir a classificao das funes

29/30

Referncias
International Function Point Users Group http://www.ifpug.org/
IFPUG -Function Point Counting Practices Manual

BFPUG Brazilian Function Point Users Group http://www.bfpug.com.br/


Anlise de Pontos por Funo para Aplicaes Orientadas a Documentos - DOUGLAS JOS PEIXOTO DE AZEVEDO IT Measurement: Practical Advice from the Experts, IFPUG, Ed Yourdon Com publicao de um trabalho do Mrcio Silveira PUCRJ

Function Point Analisys, David Garmus, Addison-Wesley


30/30