Pular para o conteúdo principal

APF - Análise por ponto de função

Análise por Pontos de Função

Autor:
Alfredo Jorge Reimann Filho - DITEC - F


1. Conceituação

A análise por Pontos de Função (FPA) é uma técnica para mensuração de sistemas, desenvolvida por Allan J. Albrecht (IBM, White Plains) em 1979, e que tem ganho um significativo contingente de usuários. O International Function Point Users Group IFPUG tem procurado difundir esta técnica e padronizar os conceitos inerentes a ela.

Recentemente a International Organization for Standardization - ISO e a International Electrotechnical Comission - IEC criaram um grupo para normalizar o processo de mensuração de software, cuja proposição inicial está baseada nesta técnica.

A FPA dimensiona o software, considerando a perspectiva do usuário, quantificando a funcionalidade que ele proporciona ao seu usuário final baseado principalmente no seu desenho lógico.

Uma aplicação, vista sob a ótica do usuário, é um conjunto de funções ou atividades do negócio que o beneficiam na realização de suas tarefas. Estas funções são divididas nos seguintes grupos ou tipos:
  • ARQUIVO LÓGICO INTERNO: Representam os requerimentos de armazenamento de grupos de dados logicamente relacionados, cuja manutenção é efetuada pela própria aplicação;
  • ARQUIVO DE INTERFACE EXTERNA: Representam as necessidades de grupos de dados logicamente relacionadas, utilizados pela aplicação, mas que sofrem manutenção a partir de outra aplicação;
  • ENTRADAS EXTERNAS: Representam as atividades vindas diretamente do usuário, através de um processo lógico único, com o objetivo de inserir, modificar ou remover dados dos arquivos lógicos internos;
  • SAÍDAS EXTERNAS: Representam as atividades da aplicação (processos) que têm como resultado a extração de dados da aplicação;
  • CONSULTAS EXTERNAS: Representam as atividades que, através de uma requisição de dados (entrada), gera uma aquisição e exibição imediata da dados (saída).
As funções contribuem para o cálculo de Pontos de Função com base na quantidade (número de funções) e na complexidade funcional relativa atribuída a cada uma delas.

2. Cálculo dos Pontos de Função

Determina-se o número de FPA de uma aplicação em três etapas de avaliação:
  • Primeira Etapa (Pontos de Função não-ajustados): Refletem as funções específicas e mensuráveis do negócio, providas ao usuário pela aplicação;
  • Segunda Etapa (Fator de Ajuste): Representam a funcionalidade geral provida ao usuário pela aplicação;
  • Terceira Etapa (Pontos de Função Ajustados): Refletem a aplicação do Fator de Ajuste sobre o resultado apurado na primeira etapa.
As regras de Contagem de FPA, apresentadas adiante, estão baseadas no Manual de Práticas de Contagem da Análise por Pontos de Função - Release 3.1, publicada pelo International Function Point Users Group IFPUG.

2.1. Cálculo dos Pontos de Função Não-Ajustados

Uma função específica do usuário em uma aplicação é avaliada em termos do que é fornecido pela aplicação e não como é fornecido. Somente componentes solicitados e visíveis ao usuário são contados.

As funções específicas da aplicação, sob a ótica do usuário, devem ser identificadas e agrupadas segundo o seu tipo, ou seja:
  • Arquivos Lógicos Internos;
  • Arquivos de Interfaces Externa;
  • Entradas Externas;
  • Saídas Externas e
  • Consultas Externas.
Cada função, através de critérios próprios, deverá ser classificada segundo a sua complexidade funcional relativa, em:
  • Simples;
  • Média ou
  • Complexa.
A cada função será atribuído um número de pontos, segundo seu tipo e complexidade funcional relativa:

Tipo de Função

Complexidade

Funcional

Relativa


SIMPLES

MÉDIA

COMPLEXA

Arquivo Lógico Interno

7

10

15

Arquivo de Interface Externa

5

7

10

Entrada Externa

3

4

6

Saída Externa

4

5

7

Consulta Externa

3

4

6
2.2. Cálculo do Fator de Ajuste

O valor do Fator de Ajuste é calculado a partir de 14 características gerais dos sistema , que permitem uma avaliação geral da funcionalidade da aplicação.

As características gerais de um sistema são:
  • COMUNICAÇÃO DE DADOS: Quando são utilizados recursos de Comunicação de Dados para o envio ou recebimento de dados e informações de controle utilizados pela aplicação;
  • PROCESSAMENTO DISTRIBUÍDO: Quando a aplicação prevê a distribuição de dados ou de processamento entre várias CPUs da instalação;
  • PERFORMANCE: Esta característica identifica os objetivos de performance da aplicação, estabelecidos e aprovados pelo usuário, que influenciaram (ou irão influenciar) o desenho, desenvolvimento, implantação e suporte da aplicação;
  • UTILIZAÇÃO DO EQUIPAMENTO: Representa a necessidade de se fazer considerações especiais no desenho dos sistemas para que a configuração do equipamento não sofra degradação;
  • VOLUME DE TRANSAÇÕES: Avalia o impacto no desenho da aplicação do volume de transações previsto para ela;
  • ENTRADA DE DADOS "ON-LINE": Avalia o volume de transações que são entradas de dados interativas;
  • EFICIÊNCIA DO USUÁRIO FINAL: Analisa as funções "on-line" desenhadas e disponibilizadas voltadas para a eficiência do usuário final;
  • ATUALIZAÇÃO "ON-LINE": Verifica o volume de arquivos lógicos internos que sofrem manutenção "on-line" e o impacto do processo de recuperação de seus dados;
  • PROCESSAMENTO COMPLEXO: Considera o impacto, sobre o desenho da aplicação, causado pelo tipo de complexidade do processamento;
  • REUTILIZAÇÃO DE CÓDIGO: Avalia se a aplicação e seu código foram especificamente projetados e desenvolvidos para serem reutilizados em outras aplicações;
  • FACILIDADES DE IMPLANTAÇÃO: Considera o esforço dispendido para o atendimento dos requerimentos de conversão de dados para a implantação da aplicação;
  • FACILIDADE OPERACIONAL: Avalia o desenho da aplicação quanto aos requisitos estabelecidos para inicialização, "backup" e recuperação voltados à minimização da intervenção manual do operador;
  • MÚLTIPLOS LOCAIS: Quando a aplicação for especificamente projetada e desenvolvida para ser instalada em múltiplos locais ou para múltiplas organizações;
  • FACILIDADES DE MUDANÇAS: Quando os requisitos da aplicação prevêem o projeto e desenvolvimento de mecanismos que facilitem mudanças operacionais, tais como: capacidade de emissão de relatórios genéricos, de consultas flexíveis ou de alterações nos dados de controle do negócio (parametrização).
A cada característica será atribuído um peso 0 (zero) a 5 (cinco), de acordo com o nível influência na aplicação, observando-se os critérios estabelecidos para cada característica, representando:
  • 0 (zero): Nenhuma influência
  • 1 (hum): Influência Mínima
  • 2 (dois): Influência Moderada
  • 3 (três): Influência Média
  • 4 (quatro): Influência Significativa
  • 5 (cinco): Grande Influência
O Nível de Influência Geral é obtido pelo somatório do nível de influência de cada característica e o Fator de Ajuste é obtido pela expressão:

FATOR DE AJUSTE = 0,65 + (Nível de Influência Geral * 0,01)

2.3. Cálculo dos Pontos de Função Ajustados

O total de Pontos de Função da aplicação será encontrado através da multiplicação do número de Pontos de Função não-ajustados pelo Fator de Ajuste.

3. Aplicações da Técnica de Análise por Pontos de Função

A técnica FPA tem por finalidade a mensuração do tamanho de um software ou aplicação, como explanado acima. No entanto, quando utilizada em combinações com outras medidas, poderá ter várias utilidades.

Destacamos a utilização desta técnica nos seguintes aspectos:
  • ESTIMATIVA DA DIMENSÃO DE PROJETOS: Uma das principais vantagens da FPA sobre outras técnicas de medição de aplicações é a possibilidade de estimar a dimensão de projetos desde as primeiras fases da análise de sistemas. A precisão da estimativa do tamanho de uma aplicação varia de acordo com o grau de conhecimento adquirido sobre a mesma, ou em outras palavras, da fase em que se encontra o projeto. Segundo a empresa Software Produtivity Research, ao final da fase de desenho do sistema é possível se fazer estimativas com margem de erro de +/- 10%. Segundo esta empresa podemos relacionar o conhecimento sobre o sistema e o grau de precisão das estimativas segundo a tabela abaixo:

    FASE DO PROJETO

    CONHECIMENTO DO PROJETO

    PRECISÃO DA ESTIMATIVA

    Planejamento

    10%

    (+/- 35%)

    Requerimentos

    25%

    (+/- 30%)

    Desenho Inicial (Projeto Lógico)

    40%

    (+/- 20%)

    Desenho Final (Projeto Físico)

    60%

    (+/- 10%)

    Construção

    80%

    (+/- 5%)

    Testes

    90%

    (+/- 2%)

    Implantação

    100%

    0%
Entretanto, para se fazer estimativas antes do final da fase de Desenho Final (Projeto Físico) com uma margem de erro aceitável, é aconselhável que o usuário se apoie em algum método em bases estatísticas, para suprir a falta de conhecimento de algumas funções da aplicação.
  • NÍVEL DE PRODUTIVIDADE DA EQUIPE: A produtividade na construção de um software traduz a velocidade com que o software foi construído, isto é, quantas unidades de tamanho do software (Pontos de Função) foram construídas em uma unidade de tempo (horas, meses, etc). Podemos, também, exprimir a produtividade em termos da quantidade de unidades de tempo que são consumidas para construir urna unidade de tamanho do software. Assim:

    PRODUTIVIDADE = TEMPO / PONTOS DE FUNÇÃO

    PRODUTIVIDADE = TEMPO / PONTOS DE FUNÇÃO
  • DIMENSIONAMENTO DO ESFORÇO PARA DESENVOLVIMENTO: O esforço para desenvolver um software pode ser definido como sendo a quantidade de tempo (horas) de trabalho que serão necessárias para produzir um sistema. Conhecida a produtividade da equipe de desenvolvimento a fórmula abaixo poderá ser aplicada:

    ESFORÇO = PRODUTIVIDADE * TAMANHO DO SOFTWARE
  • TAXA DE MANUTENÇÃO DO SOFTWARE: A taxa de manutenção de um determinado software, ou do conjunto de sistemas de uma instalação, é a quantidade de pontos de função que necessitaram manutenção em relação ao seu tamanho, em um período de tempo.
reimann@celepar.gov.br





Link original: http://www.pr.gov.br/batebyte/edicoes/1994/bb34/analise.htm

Comentários

Postagens mais visitadas deste blog

Ubuntu + FreeTDS = SQL Server 2005 Conectado

Olá pessoal! Na ultima sexta-feira tive o imenso prazer de voltar a brincar na plataforma do pinguim. (Para quem não sabe fui um feliz sysadmin rodando Debian nos servidores e Ubuntu nas estações por 4 anos, depois de 6 meses usando Win Server nos servidores e WinXP nas estações pedi demição). Tarefa: Fazer com que uma aplicação rodando sob Apache 2.2 + PHP 5 se connect em um servidor SQLServer 2005 como seu SGBD padrão. Até aí tudo bem, pensei se ambos os servidores estiverem na internet ta resolvido, a conexão vai ser via http mesmo, sem stress, ao invéz de usar mysql/mysqli uso mssql e boas, não ha muito de diferente a fazer. Mas como sempre o manganal aqui se precipitiou no julgamento e descobriu que o SQL Server não estava disponível com um endereço http, como um estalo pensei "Vixe fudeu!". Bom, comecei a juntar pedaços do que eu precisava saber para fazer com que o Ubuntu se conectasse via rede diretamente em um servidor SQL Server, e nessa pesquisa descobri o ...

Criando um túnel via SSH

Eventualmente estamos em lugares onde precisamos acessar alguma página e sempre tem aquele proxy chato que não deixa acessar. Com tunelamento via ssh é possível acessar servidores externos sem se preocupar.  Este mecanismo pode ser uma boa quando se precisa de acesso seguro e ter a certeza que ele não será "sniffado" na rede. O mecanismo funciona da seguinte maneira: Estabelece-se um tunel entre a sua máquina e a máquina servidora Este túnel é feito utilizando algoritmos de chave pública e privada, garantindo total privacidade dos dados que trafegam por ali O que é necessário: Máquina servidora com SSH instalado e funcionando A máquina cliente com client SSH Mãos na massa: Vou partir do principio que você já tenha um servidor SSH instalado e funcionando. Há vários tutoriais na net que explicam como instalar. Eu por exemplo, uso o ubuntu e instalei usando o comando: apt-get install ssh. Configurando o cliente no linux: Abra o shell e digite o comando ssh <us...

A Importância do Fluxo de Caixa para Empresas de Rastreamento

O   fluxo de caixa   é uma ferramenta vital para a saúde financeira de qualquer   empresa de rastreamento . Ele representa a movimentação de dinheiro que entra e sai do negócio, proporcionando uma visão clara sobre a liquidez e a capacidade de honrar compromissos financeiros. Neste artigo, exploraremos a importância do fluxo de caixa especificamente para empresas de rastreamento e como ele pode impactar seu sucesso. O que você verá neste post: Visão Clara da Situação Financeira Planejamento e Tomada de DecisãoControle de Despesas Cumprimento de Obrigações Financeiras Identificação de Oportunidades de Crescimento Identificação de Oportunidades de Crescimento Prevenção de Crises Financeiras Atração de Investidores e Financiamentos Visão Clara da Situação Financeira Um fluxo de caixa bem gerenciado permite que empresas de rastreamento tenham uma visão clara da sua situação financeira. Saber quanto dinheiro está disponível para cobrir despesas operacionais, investir em novos ...