INE-UFSC Análise de Pontos de Função APF (FPA) • É uma técnica para medição do esforço necessário para desenvolver um projeto de software. • Considera a funcionalidade implementada do ponto de vista do usuário. • A medida (pontos de função) é independente de linguagem de programação ou tecnologia. Objetivos da APF • Medir a funcionalidade solicitada pelo usuário, antes do projeto de software, de forma a estimar seu tamanho e seu custo. • Medir projetos de desenvolvimento e manutenção de software, independentemente da tecnologia utilizada na implementação, de forma a acompanhar sua evolução. • Medir a funcionalidade recebida pelo usuário, após o projeto de software, de forma verificar seu tamanho e seu custo, comparando-os com o que foi originalmente estimado. Aplicações da APF • Ferramenta para determinar o tamanho de pacotes de software adquiridos, através da contagem de todos os Pontos por Função incluídos no pacote. • Ferramenta para apoiar a análise da qualidade e da produtividade. • Mecanismo para estimar custos e recursos envolvidos em projetos de desenvolvimento e manutenção de software. • Fator de normalização para comparação de software. Origem • 1979 • IBM • Allan Albrecht: A New Way of Looking at Tools IFPUG: International Function Point Users Group • Functional Size Measurement Method • Reconhecido como métrica de software pela ISO • ISO/IEC 20926 Software Engineering – Function Point Counting Practices Manual
• BFPUG: Brazilian Function Point Users Group
O Método • Inicialmente os requisitos são categorizados em: – Entradas – só informação a ser armazenada – Saídas – informação exibida sem parâmetro – Consultas – saída com parâmetro – Arquivos internos - CRUD – Interfaces externas – comunicação com outros sistemas • Então, cada função é avaliada em termos de complexidade e recebe um valor de pontos de função. • Apenas funcionalidade do usuário é considerada; complexidade algorítmica interna é ignorada. Requisitos categorizados:
• Entradas externas: entrada de dados ou controle do
usuário que vêm através da borda externa do sistema e adiciona ou modifica dados em um arquivo lógico interno. • Saídas externas: dados ou controle de saída que deixa a borda externa do sistema. • Consultas externas: uma combinação de entrada/saída onde uma entrada causa imediatamente uma saída. • Arquivos lógicos internos: agrupamento de informação lógico do ponto de vista do usuário que é gerado, usado e mantido pelo sistema. • Arquivos de interface externa: arquivos trocados entre aplicações. Pontos de função • O número de pontos de função de um componente depende de sua complexidade funcional, determinada pelo número de: – Tipos de arquivos – Tipos de registros – Tipos de elementos de dados Complexidade Funcional de Entradas Externas Complexidade funcional de saídas e consultas externas Complexidade funcional de arquivos internos ou externos Unajusted Function Points por Componente: UFP Pontos de Função Ajustados • O Value Adjustment Factor (VAF) é calculado baseado em 14 características gerais de sistema (GSC – General Systems Characteristics). • O VAF é usado para ajustar o UFP.
• As GSC buscam capturar complexidades não
incluídas nos atributos usados para calcular os UFP. General Systems Characteristics • Comunicação de dados: em que grau a aplicação se comunica diretamente com o processador (aplicações batch em um extremo; sistemas de tempo real no outro). • Processamento de dados distribuído: o grau em que dados distribuídos são usados dentro dos limites da aplicação. • Performance: o grau em que a eficiência do sistema precisa ser considerada em sua construção. • Alto uso de configurações: um sistema altamente configurável é mais complexo. General Systems Characteristics • Taxa de transações: muitas transações podem influenciar a arquitetura. • Entrada de dados online: em que grau o sistema recebe dados online. • Eficiência do usuário final: em que grau as funções online enfatizam um projeto voltado à eficiência do usuário final. • Atualização online: a aplicação permite atualização online de arquivos internos. • Processamento complexo: em que grau a lógica de processamento influencia a aplicação. General Systems Characteristics • Reusabilidade: em que grau a aplicação é projetada para ser reusável. • Facilidade de instalação: em que grau a conversão a partir de sistemas legados influencia a aplicação. • Facilidade de operação: em que grau a aplicação realiza backup, processos de recuperação, startup, etc. sem intervenção manual. • Múltiplos locais: em que grau a aplicação é projetada para funcionar de forma distribuída. • Facilidade de mudança: em que grau a aplicação é projetada para facilitar mudanças lógicas ou estruturais. Ajuste • O grau de influência de cada característica recebe uma nota de 0 a 5. • A soma dos 14 escores dá um total de 0 a 70, que é convertido linearmente para um valor entre 0,65 e 1,35. • Este valor é o VAF (Fator de Ajuste de valor), que multiplicado pelo UFP dá os pontos de função ajustados AFP (Adjusted Function Points). • VAF = 0,65 + (0,01 * soma das notas) • AFP = UFP * VAF Duração do projeto • Deve-se verificar qual o número de horas que a equipe gasta para cada ponto de função. • Multiplicar esse valor pelo AFP. • Ex.: 5 horas por ponto de função implica HORAS = 5 * APF. Custo do projeto • É o custo da hora multiplicado pelo número de horas previstas.