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.