Análise por Pontos de Função

3.667 visualizações

Publicada em

Publicada em: Tecnologia

Análise por Pontos de Função

  1. 1. C A R L O S A U G U S T O D E S O U Z A L I M A J O S É C O R R Ê A V I A N A Análise por Pontos de Função APF
  2. 2. OBJETIVOS  Medir funcionalidade do sistema de acordo com a perspectiva do usuário;  Medir o desenvolvimento e manutenção do software independente da tecnologia utilizada;  Comparar a produtividade entre diferentes ambientes de desenvolvimento (P=PF/Esforço);  Prover uma forma para estimativa de software;  Fornecer um padrão para medição de software;
  3. 3. BENEFÍCIOS  Auxilia na análise Make or buy;  Apóia no gerenciamento do projeto de escopo (aumento ou diminuição do escopo);  Completa o gerenciamento de requisitos (torna-se mais sólido e completo);  Meio para fundamentar a negociação de contratos.
  4. 4. PROCEDIMENTO PARA CONTAGEM
  5. 5. ETAPA 1: DETERMINAR O TIPO DE CONTAGEM Existem três tipos de contagem:  Contagem de um projeto de desenvolvimento: usado para a primeira instalação do software, um novo software;  Contagem de um projeto de melhoria: contagem para manutenção, exclusão, alteração ou inclusão de funcionalidades (CRUD);  Contagem de uma aplicação (ou baseline): mede a funcionalidade de uma aplicação já instalada, fornecendo uma medida atual da funcionalidade obtida pelo usuário da aplicação.
  6. 6. ETAPA 2: IDENTIFICAR O ESCOPO DA CONTAGEM E A FRONTEIRA DA APLICAÇÃO  Escopo da Contagem  Define a funcionalidade que será incluída em uma particular contagem de pontos de função;  Define quais funções serão incluídas na contagem, podendo abranger:  Todas as funcionalidades disponíveis;  Apenas as funcionalidades efetivamente utilizadas pelo usuário;  Algumas funcionalidades específicas;  Se abrangerá um ou mais sistemas ou apenas parte de um sistema.
  7. 7. ETAPA 2: IDENTIFICAR O ESCOPO DA CONTAGEM E A FRONTEIRA DA APLICAÇÃO  Fronteira da Aplicação  Define o que é externo à aplicação;  Interface conceitual entre a aplicação “interna” e o mundo “externo” do usuário;  Dependente da visão de negócio do usuário;  Independente de considerações tecnológicas.
  8. 8. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS  Arquivo Lógico Interno (ALI):  Grupo de dados ou informações de controle;  Identificáveis pelo usuário;  Mantidos dentro da fronteira de aplicação;  A principal intenção de um ALI é armazenar dados mantidos por meio de um ou mais processos elementares da aplicação.
  9. 9. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS  Arquivo de Interface Externa (AIE):  Grupo de dados ou informações de controle;  Identificáveis pelo usuário;  Mantido dentro da fronteira de outra aplicação (referenciado pela aplicação);  A principal intenção de um AIE é armazenar dados referenciados por meio de um ou mais processos elementares dentro da fronteira da aplicação;  Um AIE deve ser um ALI de outra aplicação.
  10. 10. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS Passo Ação Como Fazer 1 Identificar os ALI’s Aplicar as regras de identificação de ALI’s 2 Identificar os AIE’s Aplicar as regras de identificação de AIE’s 3 Determinar a complexidade dos ALI’s e AIE’s e suas contribuições Seguir os procedimentos para calcular a complexidade e a contribuição para contagem não ajustada de pontos de função
  11. 11. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS  Tabela de complexidade funcional dos ALI e AIE:  Um ALI contendo 45 tipos de dados e 1 tipo de registro é de complexidade baixa e outro AIE contendo 55 tipos de dados e 1 tipo de registro é de complexidade média. ####### < 20 20 – 50 > 50 1 Baixa Baixa Média 2 - 5 Baixa Média Alta > 5 Média Alta Alta Tipos de dados TiposdeRegistros
  12. 12. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS  Cada ALI ou AIE deve ser classificado de acordo com sua complexidade, com base em:  Número de Tipos de Dados (TD);  Número de Tipos de Registros (TR);
  13. 13. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS  Determinação da Contribuição dos PF não ajustados: Tipo de Função Baixa Média Alta Arquivo Lógico Interno (ALI) 7 PF 10 PF 15 PF Arquivo de Interface Externa (AIE) 5 PF 7 PF 10 PF
  14. 14. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS  Tipos de Dados: são campos reconhecidos pelo usuário como únicos e não repetidos, incluindo atributos de chave estrangeira, mantidos no arquivo.  Tipos de Registros: são subgrupos de dados contidos dentro de um ALI ou AIE. Subgrupos são tipicamente representados em um DER como entidades de Subtipos. São classificados em:  Opcionais: usuário tem a opção de não informar no processo elementar que cria ou adiciona dados ao arquivo;  Obrigatórios: usuário requer que sejam sempre utilizados para criar ou adicionar dados ao arquivo
  15. 15. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS  Exemplo entidade de Subtipos:  Designam entidades cujas ocorrências herdam atributos de uma super-entidade e que possuem atributos específicos às ocorrências dessa mesma sub-entidade;  Endereço Comercial e Endereço Residencial são Subtipos de Endereço (que é um Supertipo). Endereço Endereço Comercial Endereço Residencial
  16. 16. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS EXEMPLO  Exemplo:  CD de Música;  CD: Cantor, Grupo, Gravadora, Nome, Data e Músicas;  Música: Nome da Música, Compositor e Tempo de Duração;  ALI: 1 (O CD de música);  Tipo de Dado (TD): 9 (Campos únicos) ;  Tipo de Registro (TR): 2 (Grupo CD e Grupo Música).
  17. 17. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS EXEMPLO  Exemplo:  Pessoa (AIE): matrícula, nome, senha criptografada e tipo (gerente ou trabalhador);  Apontamento (ALI): matrícula, data, horário de entrada, horário de saída;  Justificativa (ALI): matrícula, data, texto. Descrição Tipo TD TR Complexidade Pessoa AIE 4 1 BAIXA Apontamento ALI 4 1 BAIXA Justificativa ALI 3 1 BAIXA Controle de Ponto – Análise de Pontos de Função – pág. 96
  18. 18. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS EXEMPLO  Porque complexidade baixa? Lembre-se da tabela de complexidade: ###### < 20 20 – 50 > 50 1 Baixa Baixa Média 2 - 5 Baixa Média Alta > 5 Média Alta Alta Tipos de dados TiposdeRegistros Descrição Tipo TD TR Complexidade Pessoa AIE 4 1 BAIXA Apontamento ALI 4 1 BAIXA Justificativa ALI 3 1 BAIXA
  19. 19. ETAPA 3: CONTAGEM DAS FUNÇÕES DE DADOS EXEMPLO Tipo de Função Complexidade Funcional Totais por Tipo de Complexidade Totais por Tipo de Função ALI 2 (BAIXA) x 7 0 (MÉDIA) x 10 0 (ALTA) x 15 = 14 = 0 = 0 14 AIE 1 (BAIXA) x 5 0 (MÉDIA) x 7 0 (ALTA) x 10 = 5 = 0 = 0 5 Tipo de Função Baixa Média Alta Arquivo Lógico Interno (ALI) 7 PF 10 PF 15 PF Arquivo de Interface Externa (AIE) 5 PF 7 PF 10 PF Utilização da Tabela de Contribuição para chegar ao total de PF não ajustados
  20. 20. CONTAGEM DAS FUNÇÕES DE DADOS NÃO AJUSTADOS EXEMPLO • Internal Logical File (ILF): Arquivo Lógico Interno (ALI); •External Interface File (EIF): Arquivo de Interface Externa (AIE).
  21. 21. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Representam a funcionalidade fornecida ao usuário para atender às suas necessidades de processamentos de dados pela aplicação.  São classificadas em:  Entradas Externas (EE);  Saídas Externas (SE);  Consultas Externas (CE).
  22. 22. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Entradas Externas (EE):  Processo elementar;  Processa dados ou informações de controle recebidos de fora da fronteira de aplicação;  Principal intenção é manter (incluir, alterar ou excluir dados) um ou mais ALI e/ou manter o comportamento do sistema.
  23. 23. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Entradas Externas (EE) – Exemplos:  Transações que recebem dados externos utilizados na manutenção de ALI’s;  Janela que permite adicionar, excluir ou alterar registros arquivos contribui com 3 entradas externas.
  24. 24. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Exemplo – Entrada Externa (EE):
  25. 25. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Saída Externa (SE):  Processo elementar;  Envia dados ou informações de controle para fora da fronteira de aplicação;  Principal intenção é apresentar informação para o usuário através de lógica de processamento, ou seja, conter ao menos uma fórmula matemática ou cálculo;  Criar dados derivados;  Manter um ou mais ALI’s e/ou alterar o comportamento do sistema.
  26. 26. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Saída Exerna (SE) – Exemplos:  Relatórios com totalização de dados;  Consultas com cálculos ou apresentação de dados derivados;  Informações em formato gráfico;
  27. 27. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Exempo – Saída Externa (SE):
  28. 28. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Consulta Externa (CE):  Processo Elementar;  Envia dados ou informações de controle para fora da fronteira da aplicação;  Apresentar informação ao usuário por meio de uma simples recuperação de dados ou informações de controle de ALI’s ou AIE’s;  A lógica de processamento não contém fórmulas matemáticas ou cálculos;  Não cria dados derivados;  Não altera o comportamento do sistema.
  29. 29. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Consulta Externa (CE) – Exemplos:  Informações em formato gráfico;  Menus gerados dinamicamente com base em configuração da aplicação.
  30. 30. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Exemplo – Consulta Externa (CE):
  31. 31. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS TERMOS UTILIZADOS  Processo Elementar: menor quantidade de unidade significativa para o usuário final;  Inclusão, alteração, consulta e exclusão são os mais aplicados;  Regras de negócio podem alterar um registro;  “Alterar dados” por exemplo; pode contemplar os vários processos de negócios existentes.
  32. 32. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS TERMOS UTILIZADOS  Informação de Controle: dados que influenciam um processo elementar da aplicação que está sendo controlada;  Especificam o quê, quando ou como os dados devem ser processados; são parâmetros;  Exemplos:  O quê: determinado campo especifica que o cálculo da parcela deve contemplar somente o valor vencido ou o valor corrigido com juros e multa;
  33. 33. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS TERMOS UTILIZADOS  Quando: Uma enquete pode ter um fechamento automático (votações finalizadas) definido pela data de seu encerramento;  Como: durante a compra de uma passagem aérea, o cliente informa em um campo como deseja receber a confirmação da compra: por e- mail, torpedo SMS ou fax.  Em uma loja de comércio eletrônico, a operação de compra possui uma informação de controle – forma de pagamento – que determina como o processo ocorrerá: emissão de boleto, débito na conta ou cartão de crédito;  Cada forma de pagamento possui um tratamento diferenciado.
  34. 34. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS TERMOS UTILIZADOS  Dado Derivado: Informação criada a partir de dados existentes, gerado através de ALI ou AIE;  Dado apresentado pelo sistema, porém não está armazenado em um arquivo lógico;  Criado através de uma lógica de processamento, como cálculo por exemplo;  Total de faturamento, tempo médio entre falhas, participação em % de um produto em uma venda.
  35. 35. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS TERMOS UTILIZADOS  Lógica de Processamento:
  36. 36. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS TERMOS UTILIZADOS
  37. 37. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Determinação da Complexidade:  Cada EE, SE ou CE é classificada em relação à sua Complexidade baseado no número de Arquivos Referenciados (AR) e no número e Tipos de Dados (TD);  Determinadas as quantidades de AR’s e TD’s sua complexidade pode ser medida pelas seguintes tabelas:
  38. 38. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS < 5 5 – 15 > 15 < 2 BAIXA BAIXA ALTA 2 BAIXA MÉDIA ALTA > 2 MÉDIA ALTA ALTA Arquivos Referenciados (AR’s) Tipos de Dados (TD’s) < 5 5 – 15 > 15 < 2 BAIXA BAIXA ALTA 2 BAIXA MÉDIA ALTA > 2 MÉDIA ALTA ALTA Arquivos Referenciados (AR’s) Tipos de Dados (TD’s) Tabela de complexidade para entradas externas (EE’s) Tabela de complexidade para saídas externas (SE’s) e consultas extenas (CE’s)
  39. 39. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Arquivo Referenciado (AR)  É um ALI lido ou mantido pela função do tipo de transação; OU  AIE lido pela função do tipo de transação. • Tipo de Dado (TD): Campo único, reconhecido pelo usuário, não repetido.
  40. 40. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Após a determinação da complexidade, se calcula a contribuição através da seguinte tabela: TIPO DE FUNÇÃO BAIXA MÉDIA ALTA Entrada Externa (EE) 3 PF 4 PF 6 PF Saída Externa (SE) 4 PF 5 PF 7 PF Consulta Externa (CE) 3 PF 4 PF 6 PF Tabela de contribuição dos pontos de função não ajustados das funções do tipo de transação
  41. 41. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Exemplo de contribuição de Funções do Tipo de Transação: Tipo de Função Complexidade Funcional Totais por Tipo de Complexidade Totais por Tipo de Função EE 2 (BAIXA) x 3 2 (MÉDIA) x 4 0 (ALTA) x 6 = 6 = 8 = 0 14 SE 1 (BAIXA) x 4 2 (MÉDIA) x 5 0 (ALTA) x 7 = 4 = 10 = 0 14 CE 1 (BAIXA) x 3 0 (MÉDIA) x 4 0 (ALTA) x 6 = 3 = 0 = 0 3
  42. 42. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS  Observa-se que as EE contribuem com 14 pontos de função não ajustados para a aplicação, as SE com 14 pontos de função não ajustados e as CE com 3 pontos de função não ajustados.
  43. 43. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS EXEMPLO
  44. 44. ETAPA 4: CONTAGEM DAS FUNÇÕES TRANSACIONAIS VISÃO GERAL
  45. 45. ETAPA 5: DETERMINAR O FATOR DE AJUSTE  O Valor de Fator de Ajuste é baseado em 14 características gerais de sistema (CGS): 1. Comunicação de Dados; 2. Processamento de Dados Distribuído (Funções Distribuídas); 3. Performance; 4. Configuração do equipamento; 5. Volume de Transações; 6. Entrada de Dados On-Line; 7. Interface com o usuário; 8. Atualização On-Line; 9. Processamento Complexo; 10. Reusabilidade; 11. Facilidade de Implantação; 12. Facilidade Operacional; 13. Múltiplos Locais; 14. Facilidade de mudanças.
  46. 46. ETAPA 5: DETERMINAR O FATOR DE AJUSTE  Cada característica possui um nível de influência sobre a aplicação que pode variar de um intervalo de 0 a 5:  0. Nenhuma influência;  1. Influência Mínima;  2. Influência Moderada;  3. Influência Média;  4. Influência Significativa;  5. Grande Influência.
  47. 47. ETAPA 5: DETERMINAR O FATOR DE AJUSTE  O Valor Fator de Ajuste (VFA) é calculado pela fórmula: VFA = (TDI x 0,01) + 0,65  TDI = somatório dos níveis de influência das características gerais
  48. 48. ETAPA 5: DETERMINAR O FATOR DE AJUSTE  Exemplo: Em um sistema apurou-se que o nível de influência de cada uma das características gerais é o seguinte: CGS Peso Comunicação de Dados 5 Processamento Distribuído 2 Performance 2 Configuração Altamente Utilizada 2 Volume de Transações 2 Entrada de Dados Online 5 Eficiência do Usuário Final 2 CGS Peso Atualização Online 5 Complexidade de Processamento 2 Reusabilidade 0 Facilidade de Instalação 1 Facilidade de Operação 2 Múltiplos Locais 2 Facilidade de Mudanças 2
  49. 49. ETAPA 5: DETERMINAR O FATOR DE AJUSTE  Logo, o nível de influência será: TDI = 34.  E o fator de ajuste: VAF = (34 x 0,01) + 0,65 = 0,99.
  50. 50. ETAPA 5: DETERMINAR O FATOR DE AJUSTE  Fórmula para contagem inicial da aplicação: AFP = ADD x VAF  AFP: Valor dos pontos de função ajustados;  ADD: Valor total dos Pontos de Função não ajustados;  VAF: Valor do fator de ajuste da aplicação.
  51. 51. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO  Calcule os pontos de função para um sistema que mantém um Cadastro de Clientes onde é possível tirar uma listagem por ordem alfabética e exportar o cadastro para outro sistema através de um arquivo texto.  Contagem  ALI = 01(Arquivo de Clientes)  AIE = 0  EE = 01 (Processo de inclusão)  SE = 01 (Listagem por ordem alfabética)  CE = 01 (Exportação de Arquivo Texto)
  52. 52. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO  Nesse exemplo considera-se que todos os tipos de função tem complexidade BAIXA; ADD = ALI x 7 + AIE x 5 + EE x 3 + SE x 4 + CE x 3 = 1 x 7 + 0 x 5 + 1 x 3 + 1 x 4 + 1 x 3 = 17 (Pontos de função não ajustados)
  53. 53. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO  Contado-se os fatores de ajuste segundo os níveis de influência temos, considerando-se TDI (somatório) = 45, temos: VAF = 0,65 + (0,01*45 ) = 1,1 (Fator de Ajuste) AFP = VAF x ADD = 1,1 x 17 = 18,7
  54. 54. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO  Estimando custo, tempo e prazo:  Produtividade no desenvolvimento = Horas por PF  Esforço de desenvolvimento = Produtividade(H/PF) * Tamanho(PF)  Custo de software = Tamanho (PF) * Custo(R$/PF)
  55. 55. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO  1. Considerando que uma produtividade média de 10 hrs / PF;  2. Considerando que a média de jornada de trabalho é de 6 horas;  Possuem 4 pessoas alocadas ao desenvolvimento da aplicação;  3. Considerando que o valor de uma hora de trabalho é de R$ 25,00.
  56. 56. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO  Concluímos que :  Esforço = 10hs / PF = 10 x 18,7 = 187 horas  Prazo = 187 h / ( 4 x 6 ) = 7,8 dias  Custo = 187 h x R$ 25,00 = R$ 4.675,00
  57. 57. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO  Algumas aplicações da APF:  Produtividade no desenvolvimento: Horas por PF  Esforço de desenvolvimento: Produtividade (H/PF) * Tamanho (PF)  Custo de software: Tamanho (PF) * Custo (R$/PF)  Taxa de produção de software: PF/Mês; PF/Ano  Taxa de manutenção de software: PF manutenção / PF aplicativo
  58. 58. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO  Influências:  Linguagem de codificação;  Tamanho do sotware;  Exeperiência da equipe;  Métodos estruturados;  Ambiente de desenvolvimento;  Qualidade de expansão/manutenção;  Reutilização de código;  Métodos de remoção de erros;  Organização da equipe.
  59. 59. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO  Vantagens:  Uma ferramenta para determinar o tamanho de um pacote de aplicação comprado contando todas as funções incluídas no pacote;  Uma ferramenta para ajudar os usuários a determinar o benefício de um pacote de aplicação para a sua organização contando funções que especificamente atendam seus requisitos;  Uma ferramenta para medir as unidades de um produto de software para apoiar a análise de qualidade e produtividade;  Um veículo para calcular custos e recursos requeridos para desenvolvimento e manutenção de software;  Um fator de normalização para comparação de softwares.
  60. 60. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO  Limitações e/ou desvantagens:  Para ter uma boa utilização é necessária uma base histórica;  É necessário ter uma boa visão (profundidade do sistema para poder estimar com mais segurança);  Utilização de pesos para definir a classificação das funções.
  61. 61. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO  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/  “Análise de Pontos de Função – Medição, Estimativas e Gerenciamento de Projetos de Software”, Carlos Eduardo Vazquez  http://www.analisetotal.hpg.ig.com.br/Material/APFTexto.pdf  www.cin.ufpe.br/~if720/slides/Pontos-de-funcao.ppt
  62. 62. ETAPA 5: DETERMINAR O FATOR DE AJUSTE EXEMPLO OBRIGADO!  Carlos Augusto de Sousa Lima:  carloslima_2008@hotmail.com  José Corrêa Viana  jcorreavian@hotmail.com

×