Fundamentos APF

12.259 visualizações

Publicada em

Fundamentos da Análise de Pontos de Função - Uma Visão Geral do Mundo da APF

Publicada em: Tecnologia, Negócios
  • Seja o primeiro a comentar

Fundamentos APF

  1. 1. Análise de Pontos de Função Uma visão geral do mundo das Métricas “Não se consegue controlar o que não se consegue medir.¹” Tom de Marco - Controlling Software Projects, Yourdon Press, 1982. Humbertho Mattar
  2. 2. Agenda Por que medir? Indicadores derivativos do PF Medida do Tamanho do Produto ISO 14143-1 Visão Geral da Análise de Pontos de Função Práticas de Contagens Estimadas Análise do Mercado de Métrica no Brasil e no Mundo Humbertho Mattar
  3. 3. Por que medir? Estimar custos e recursos de projetos Avaliar a aquisição de pacotes (make-or-buy) Suportar análises de produtividade e qualidade Remunerar fornecedores Apoiar a gerência de escopo do projeto Apoiar a gerência de requisitos do projeto Benchmarking Tornar o gerenciamento de projetos baseado em fatos, não em “achismos” Humbertho Mattar
  4. 4. Indicadores derivativos do PF A APF, junto com outras métricas permite a geração de vários indicadores para o GP Horas / PF PF / Homem Mês R$ / PF Defeitos / PF Estabilidade dos requisitos Baseline da organização Tamanho do backlog Humbertho Mattar
  5. 5. Medida do Tamanho do Produto Os Pontos de Função podem ser utilizados para medir sistemas em várias fases do ciclo de vida, no desenvolvimento ou na manutenção. Quadro comparativo: Fase do Ciclo de vida Estimado Medido Proposta Sim Não Requisitos Sim Sim Projeto Sim Sim Construção Sim Sim Implantação Sim Sim Manutenção Adaptativa Sim Sim Manutenção Corretiva Não Não Manutenção Perfectiva Não Não Humbertho Mattar
  6. 6. ISO 14143-1/2007 – Medição Funcional Definição de Conceitos Avaliação da Conformidade de Métodos de Medição de Software com Relação ao padrão ISO/IEC 14143-1:1998 Verificação de um Método de Medição Funcional de Tamanho Modelo de Referência para Medição Funcional de Tamanho Determinação de Domínios Funcionais para uso com Medição Funcional de Tamanho. Uso da APF Humbertho Mattar
  7. 7. Histórico da Análise de Pontos de Função 1979 Allan Albrecht (IBM) cria as primeiras regras da APF 1983 primeiro curso de APF no Brasil (Unisys) 1984 primeiro manual de APF 1986 criação da primeira diretoria do IFPUG * 1996 primeiro exame CFPS no Brasil 1998 criação do BFPUG 2004 CFPS no Brasil = 200 2007 CPM (Manual de Práticas de Contagem) versão 4.2.1 em português Humbertho Mattar
  8. 8. Análise de Pontos de Função Análise de Pontos de Função (APF) é um método padrão para medir o desenvolvimento de software do ponto de vista do usuário. A APF mede o software através da quantificação da funcionalidade que o software provê ao usuário com base principalmente no projeto lógico Objetivo do processo de Contagem de Pontos de Função: Suficientemente simples para minimizar a sobrecarga no processo de medição; Uma medida consistente entre os vários projetos e organizações. Humbertho Mattar
  9. 9. APF - Objetivos e Benefícios Objetivos Medir a funcionalidade que o usuário solicita e recebe Independe da tecnologia e considerações técnicas Benefícios Fator de normalização e comparação de softwares Estimativa de custos e recursos Linguagem comum usuário x desenvolvedor Transparente Reduz conflitos de negociação Permite auditagem Possibilita geração de histórico de projetos Indicador de qualidade de projetos Humbertho Mattar
  10. 10. APF - Processo de Contagem • Diagrama do Procedimento de Contagem: Humbertho Mattar
  11. 11. APF – Propósito O propósito significa o porquê da análise Determina algumas premissas para o processo de contagem; Determina o tipo de contagem, ou seja, se ela abrangerá uma ou mais aplicações ou então apenas parte de uma aplicação Afeta o posicionamento da fronteira da aplicação Define o nível de detalhe da contagem Ex.: Uma contagem está sujeita a uma auditoria posterior, será necessário que cada etapa do processo esteja bem documentada para facilitar a tarefa. Humbertho Mattar
  12. 12. APF – Tipo de Contagem Projeto de Desenvolvimento Referencia as funcionalidades disponíveis na primeira instalação Incluem as funcionalidades de conversão de dados Projeto de Melhoria Modificações (inclusões, alterações, exclusões e conversão) Aplicação (Baseline) Funcionalidades já disponíveis Esta contagem é inicializada quando a contagem de pontos de função do projeto de desenvolvimento é finalizado e é atualizado sempre ao final de um projeto de melhoria da aplicação. Humbertho Mattar
  13. 13. APF – Fronteira e Escopo da Contagem Definição: Fronteira: A fronteira da aplicação indica o limite entre o sistema que está sendo medido e o usuário. Escopo: Escopo da Contagem define as funcionalidades que serão incluídas em uma contagem específica. A fronteira da aplicação é independente do escopo da contagem Humbertho Mattar
  14. 14. APF – Fronteira da Contagem Define o que é externo à aplicação É uma interface conceitual entre a aplicação “interna” e o mundo “externo” do usuário Atua como uma “membrana” através da qual os dados processados pelas transações (EEs, SEs e CEs) passam para dentro e para fora da aplicação Inclui dados lógicos mantidos pela aplicação (ALIs) Ajuda na identificação dos dados lógicos referenciados mas não mantidos dentro da aplicação (AIEs) Depende da visão externa do negócio do usuário da aplicação. É independente de considerações técnicas ou de implementação. Humbertho Mattar
  15. 15. APF – Escopo da Contagem Define um (sub)grupo do software que está sendo medido É determinado pelo propósito de executar a contagem de pontos de função Identifica na contagem de pontos de função para fornecer respostas relevantes ao propósito da contagem Pode incluir mais de uma aplicação Escopo de: Pontos de função de melhoria Pontos de função de desenvolvimento Pontos de função de aplicação Humbertho Mattar
  16. 16. APF – Funções de Dados As funções de dados representam a funcionalidade fornecida ao usuário para satisfazer requisitos de dados internos e externos. Arquivos Lógico Internos (ALIs) Arquivos de Interface Externa (AIEs) O termo “arquivo” não significa arquivo no sentido tradicional de processamento de dados. Neste caso, para a APF, arquivo refere-se a um grupo de dados logicamente relacionados e não à implementação física destes grupos de dados. Diferença principal entre ALIs e AIEs, é que o arquivo lógico interno está dentro da fronteira da aplicação e é mantido por processos elementares enquanto o AIE não é. Necessariamente o AIE deverá ser um ALI de outra aplicação. Humbertho Mattar
  17. 17. APF – Arquivos Lógico Internos Um arquivo Lógico (ALI) é um grupo de Dados ou de informações de controle logicamente relacionados, reconhecido pelo usuário, mantido dentro da fronteira da aplicação. A intenção primária de uma ALI é armazenar dados mantidos através de um ou mais processos elementares da aplicação que está sendo contada. Regras de identificação: O Grupo de dados ou informações de controle é lógico e reconhecido pelo usuário O grupo de dados é mantido através de um processo elementar dentro da fronteira da aplicação que está sendo contada Humbertho Mattar
  18. 18. APF – Arquivo de Interface Externa Um arquivo de interface externa (AIE) é um grupo de dados ou de informações de controle logicamente relacionados, reconhecido pelo usuário, referenciado pela aplicação, porém mantido dentro da fronteira de uma outra aplicação. A intenção primária de um AIE é armazenar dados referenciados através de um ou mais processos elementares dentro da fronteira da aplicação que está sendo contada. Isto significa que um AIE contado para uma aplicação deve ser um ALI em outra aplicação. Regras de identificação: O grupo de dados ou de informações de controle é lógico e reconhecido pelo usuário. O grupo de dados é referenciado por, e externo à aplicação que está sendo contada. O grupo de dados não é mantido pela aplicação que está sendo contada. O grupo de dados é mantido em um ALI de outra aplicação. Humbertho Mattar
  19. 19. APF – Contar Funções de Dados DER – Dado Elementar Referenciado Campo único não repetido e reconhecido por usuário RLR – Registro Lógico Referenciado Subgrupo de dados reconhecidos pelo usuário dentro de ALI/AIE Complexidade Contribuição RLRs/DETs 1-19 20-50 >50 # AIE ALI 1 Baixa Baixa Média Baixa 5 7 2–5 Baixa Média Alta Média 7 10 >5 Média Alta Alta Alta 10 15 Humbertho Mattar
  20. 20. APF – Arquivos Lógicos Exemplos: Arquivos de configuração mantidos pela aplicação ALI Dados de negócio mantidos pela aplicação ALI Arquivos mantidos pela aplicação e por outra também ALI Arquivos mantidos por outra aplicação AIE Arquivos de backup - Tabelas de dado de código (dados do desenvolvedor) - Arquivo movimento para manter dados de negócio - Arquivos de segurança mantidos pela aplicação ALI Arquivos de help, mantidos por outra aplicação AIE Arquivo para processamento em outra aplicação - Humbertho Mattar
  21. 21. APF – Funções de Transação As funções de transação representam a funcionalidade fornecida ao usuário para o processamento de dados por uma aplicação Entrada Externas (EE) Saídas Externas (SE) Consultas Externas (CE) A diferença principal entre os tipos de função transação é a sua intenção primária. Humbertho Mattar
  22. 22. APF – Funções de Transação EE – Entradas Externas Uma entrada externa (EE) é um processo elementar que processa dados ou informações de controle que vêm de fora da fronteira da aplicação. A intenção primária de uma EE é manter um ou mais ALIs e/ou alterar o comportamento do sistema. SE – Saídas Externas Uma saída externa (SE) é um processo elementar que envia dados ou informações de controle para fora da fronteira da aplicação. A intenção primária de uma SE é apresentar informações ao usuário através de lógica de processamento que pode incluir, ou não, a recuperação de dados ou informações de controle. O processamento lógico deve conter pelo menos uma fórmula matemática ou cálculo, criar dados derivados, manter um ou mais ALIs ou alterar o comportamento do sistema. CE – Saídas Externas Uma consulta externa (CE) é um processo elementar que envia dados ou informações de controle para fora da fronteira da aplicação. A intenção primária de uma CE é apresentar informações ao usuário através da recuperação de dados ou informações de controle de um ALI ou AIE. O processamento lógico não deve conter fórmulas matemáticas ou cálculos, nem criar dados derivados. Nenhum ALI é mantido durante o processamento e nem o comportamento do sistema é alterado. Humbertho Mattar
  23. 23. APF – Contar Funções de Transação DER Dado Elementar Referenciado Campo único não repetido e reconhecido por usuário Capacidade de envio de mensagem de resposta Habilidade de especificar uma ação a ser executada ALR Arquivo Lógico Referenciado ALI mantido ou AIE referenciado pela função de transação Complexidade Contribuição ALRs/ DERs 1–4 5 – 15 > 16 # EE CE SE 0–1 Baixa Baixa Média Baixa 3 3 4 EE 2 Baixa Média Alta Média 4 4 5 >3 Média Alta Alta Alta 6 6 7 ALRs/ DERs 1–5 6 – 19 > 20 0–1 Baixa Baixa Média SE/CE 2 Baixa Média Alta >3 Média Alta Alta Humbertho Mattar
  24. 24. APF – Contar Funções de Transação Regras de Identificação Lógicas EE SE CE Alterar Comportamento Principal Deve* Nunca Apresentar Informações Pode ser Principal Principal Cálculos Pode ser Deve* Nunca Manter ALIs Deve Deve* Nunca Referenciar AIE / ALI Pode ser Pode ser Deve Travessia de dados – fronteira Recebe Envia Envia Deve* - O processo elementar deve conter pelo menos uma das lógicas de processamento listadas acima. Humbertho Mattar
  25. 25. APF – Contar Funções de Transação Exemplos Relatório sem totalizador e que não atualiza ALI CE Drop-down que não acessa ALI ou AIE - Drop-down que recupera dados de um arquivo lógico CE Função de inclusão, alteração ou exclusão em arquivo lógico EE Script de atualização de ALI, a partir de arquivo movimento EE Telas estáticas de help - Menus gerados dinamicamente CE Mensagens de confirmação de uma transação - Relatórios com campos calculados ou que atualizem ALIs SE Receber dados externos utilizados na manutenção de ALIs EE Consulta com totalização de dado SE Menus estáticos - Humbertho Mattar
  26. 26. APF – Fator de Ajuste Calculado com base em pesos entre 0 e 5, atribuídos à 14 Características Gerais do Sistema. Ajusta a contagem em +/- 35%. Para fins de auditoria cada peso atribuído deverá ser justificado. CGS – Características Gerais dos Sistemas: • Comunicação de Dados • Processamento Distribuído • Performance • Configuração Intensa utilizada • Taxa de Transação • Entrada de dados online • Eficiência do Usuário Final • Atualização online • Processamento Complexo • Reutilização • Facilidade de Instalação • Múltiplos Locais • Facilidade de Operação • Facilidade de Mudança Humbertho Mattar
  27. 27. APF – Calcular Ponto de Função Ajustado Estimada Para estimar a complexidade do processo elementar e por conseqüência sua contribuição a NESMA normatiza o uso da seguinte fórmula: UFP = # EE * 4 + # SE * 5 + # CE * 4 + # ALI * 7 + # AIE * 5 Sendo: • UFP, total de pontos de função não-ajustados • #, Número de processos elementares categorizados por tipo de transação • Exemplo: UFP = (12 EE * 4) + (7 SE * 5) + (8 CE * 4) + (5 ALI * 7) + (2 AIE * 5) UFP = 160 Humbertho Mattar
  28. 28. APF – Calcular Ponto de Função Ajustado Estimada A contagem estimada da aplicação cabe para o início do projeto e durante boa parte do ciclo de desenvolvimento do projeto. Esta contagem é importante para criar insumos de prazo e esforço que será demandado. • Valor do fator de ajuste [VAF] • Nível de Influência Total [TDI] = Somatório dos Valores atribuídos nas CGS • Fator de Ajuste [VAF] = [TDI]*0,01+0,65 • Cálculo do Ponto de Função Ajustado [AFP], para projeto de desenvolvimento: • DFP = (UFP + CFP) X VAF • Sendo CFP, total de pontos de função incluídos para conversão de dados. Exemplo: DFP = (160 + 0) X 0,95 = 152 FP Humbertho Mattar
  29. 29. APF – Quadro Comparativo • Exemplos de aplicativos e suas dimensões: Produtos de Software Sistemas Comerciais Diversos Aplicação PF Aplicação PF Ferramenta Case IEF 20.000 Imposto de Renda Pessoal 2.000 Compilador VB (MS) 3.000 Contabilidade Geral 1.500 SGBD IMS (IBM) 3.500 Processamento de Pedidos 1.250 Gerenciador CICS (IBM) 2.000 Recursos Humanos 1.200 Word 7.0 (MS) 2.500 Suporte a Vendas 975 Excel 6.0 (MS) 2.500 Preparação de Orçamento 750 MS Project (MS) 3.500 Humbertho Mattar
  30. 30. Quem usa APF em contratos BNDES PETROBRÁS CEF EMBRATEL SERPRO PRODEB PM- SP EDS DATAPREV POLITEC CORREIOS MSAInfor BRADESCO DBA ABN/REAL CPM EXÉRCITO STEFANINI STJ ANVISA Vem tornando-se padrão no mercado de contratação de desenvolvimento de software Humbertho Mattar
  31. 31. Quanto custa o Ponto de Função? O valor R$/PF irá variar de acordo com o trabalho exigido para a entrega das funcionalidades do software; Padrão técnico e de qualidade solicitado pelo cliente Quantidade de entregáveis (artefatos, documentos, modelos, etc) Em resumo, tudo aquilo que afeta custo de forma significativa mas que não tem relação direta com o tamanho medido pela APF acaba sendo computado no preço do ponto de função. Exemplo : Ao se contratar uma empresa apenas para o trabalho de codificação e testes de um sistema espera-se que o preço do ponto de função seja inferior ao caso da contratação da mesma empresa para a realização de todo o ciclo de desenvolvimento do sistema, desde o levantamento de requisitos até a implantação. Outra possibilidade para se obter essa tabela de preços é recorrer às organizações que mantém base histórica de projetos de software (exemplo: ISBG - www.isbsg.or) e efetuar uma conversão dos indicadores de taxa de entrega (H/PF) para preço (R$/PF). Porém mesmo que se consiga obter uma tabela de valores R$/PF, a variação dos números é tão significativa que facilmente se encontra uma faixa de valores cuja variação entre o mínimo e o máximo pode ser de até 10 vezes, por exemplo de R$100/PF a R$1.000/PF. Humbertho Mattar
  32. 32. Mercado de Métrica? CFPS - Certified Function Point Specialist - é a certificação conferida pelo International Function Point Users Group às pessoas aprovadas no exame de certificação CFPS A certificação CFPS é reconhecida internacionalmente e é válida por até 3 (três) anos. A Prova é dividida em três partes e o êxito na prova é obtido com 90% de aproveitamento CFPS no Mundo = 995 Mercado CFPS no Brasil = 269 Restrito mas valoroso. Número de CFPS por País (5 maiores): 1º Brasil - 269 2º Coréia - 264 3º India - 176 4º Itália - 99 5º EUA - 93 Humbertho Mattar
  33. 33. Perguntas? Humbertho Mattar
  34. 34. Obrigado! Humbertho Mattar Humbertho.mattar@bsb.politec.com.br Maiores informações: www.bfpug.com.br www.ifpug.com

×