sábado, 30 de maio de 2009

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

quarta-feira, 27 de maio de 2009

Italian Men que foi para malta (hahaha)

Mais política

É lamentável que alguns dos nossos representantes esqueçam realmente o verdadeiro objetivo pelo qual foi eleito. Acredito que todo político é eleito pelo povo, devido a sua convicção e seus ideiais, ideais estes que refletem os mesmo ideais das pessoas que lhe confiam o seu voto.
Casos como o episódio do vereador José Marçal do PP que utilizou de abuso de poder para tentar convencer um agente de trânsito a não fazer o seu trabalho. Ou o episódio do uso do dinheiro público para a compra de passagens aéreas para fins particulares. Seja o abuso de poder ou o mal uso do dinheiro públicos todos os casos acabam em pizza.
No final das contas o que parece é que nossos representantes não estão nem aí para o povo, que é quem paga a conta.
Estes mesmos políticos ainda tem a cara de pau de nos pedir o seu voto na época da eleição.

"O que sei é, que nada sei." Se bobear é assim mesmo, vai ver que eu que não entendo nada de política mesmo.

Política

Esta no ar o site do vereador Napoleão Bernardes. O site é uma iniciativa do vereador para oferecer mais transparência ao seu mandato.
O site pode ser acessado através do link www.napoleaobernardes.com.br. Através do site o internauta pode opiniar através do blog, ou dar idéias para novos projetos ou enviar solicitações para a comunidade. Além disso é possível acompanhar seus trabalhos na câmara de vereadores, são disponibilizadas informações como: pronunciamentos e projetos que estão sendo feitos no seu gabinete.