FPA Function Point Analysis - sistemática de Métrica

Autor: Douglas José Peixoto de Azevedo - GPS

FPA FUNCTION POINT ANALYSIS - SISTEMÁTICA DE MÉTRICA

Este é o sexto artigo que tratará da técnica de mensurar software. A técnica apresentada é denominada de FPA Function Point Analysis (Análise de Pontos por Função), utilizada para estimar:

  •  Esforço de desenvolvimento de software;
  • Custo de software;
  • Taxa de produção de software;
  • Taxa de manutenção de software;
  • Nível de produtividade da equipe.

SEXTO ARTIGO

4.7 Características Gerais dos Sistemas

Após a identificação dos tipos de funções que representam a funcionalidade específica de uma aplicação é necessário medir a funcionalidade global desta aplicação. A técnica FPA mede a funcionalidade geral de uma aplicação através da avaliação do nível de influência de 14 características gerais dos sistemas.

Cada característica geral do sistema deve ser avaliada de acordo com o seu nível de influência, que varia de 0 a 5.

Os textos associados aos níveis de influência descritos a seguir têm como objetivo direcionar/facilitar a classificação de cada uma das características de um sistema. Se nenhum dos textos se adequar à aplicação avaliada, deve ser escolhido o que melhor se aproxima do caso.

As características gerais de um sistema são:

  1. Comunicação de Dados;
  2. Processamento Distribuído;
  3. Performance;
  4. Utilização do Equipamento;
  5. Volume de Transações;
  6. Entrada de Dados "on-line";
  7. Eficiência do Usuário Final;
  8. Atualização "on-line";
  9. Processamento Complexo;
  10. Reutilização de Código;
  11. Facilidade de Implantação;
  12. Facilidade Operacional;
  13. Múltiplos Locais;
  14. Facilidades de Mudanças.

Atribui-se um peso de 0 a 5 para cada uma destas características, de acordo com o seu nível de influência na aplicação.

  1. Nenhuma influência;
  2. Influência mínima;
  3. Influência moderada;
  4. Influência média;
  5. Influência significativa;
  6. Grande influência.

4.7.1 Comunicação de Dados

Os dados e informações de controle utilizados na aplicação são enviados ou recebidos através de recursos de comunicação de dados. Terminais locais ou rede de micro são considerados como recursos de comunicação de dados.

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. O processamento da aplicação é puramente "batch" ou executado em um PC isolado.
  2. A aplicação é "batch" mas tem entrada de dados remota ou impressão remota.
  3. A aplicação é "batch" mas tem entrada de dados remota e impressão remota.
  4. Captura de dados "on-line", via terminal, rede de micros ou "front-end", para alimentar processos em "batch" ou sistemas de consultas.
  5. Mais de um "front-end", mas a aplicação suporta apenas um tipo de protocolo de comunicação.
  6. Mais de um "front-end", e a aplicação suporta vários tipos de protocolo de comunicação.

4.7.2 Processamento Distribuído

A aplicação tem por característica o fato de que dados ou o processamento são distribuídos entre várias Unidades de Processamento (CPUs).

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. A aplicação não efetua a transferência de dados ou de processamento entre as CPUs da instalação.
  2. A aplicação prepara dados para o usuário final processar em outra CPU da instalação utilizando-se de software genérico (planilhas eletrônicas, editores de texto, bancos de dados).
  3. Os dados são preparados, transferidos e processados em outra CPU da instalação. (Transferência de arquivos).
  4. Processamento distribuído e transferência de dados "on-line" mas em uma única direção. (Processa numa CPU e transfere para outra CPU).
  5. Processamento distribuído e transferência de dados "on-line" em ambas as direções. (Processamento cooperativo).
  6. A aplicação a ser desenvolvida deve decidir dinamicamente qual a CPU mais apropriada para executar a função.

4.7.3 Performance

Identifica os objetivos de performance da aplicação estabelecidos formalmente pelo usuário, que influenciem o desenho, desenvolvimento, implantação e suporte da aplicação.

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. Nenhuma exigência especial de performance foi fixada pelo usuário.
  2. Requerimentos de performance foram estabelecidos e revisados. Nenhuma ação especial foi necessária.
  3. O tempo de resposta é crítico durante as horas de pico. Nenhuma consideração especial de uso de CPU foi requerida. O tempo limite do processamento é sempre para o próximo dia útil.
  4. O tempo de resposta é crítico durante todo o horário de utilização. Não foi necessário nenhum procedimento especial para utilização de CPU. Os limitantes de prazo de processamento são outros sistemas.
  5. Os requerimentos de performance estabelecidos pelo usuário são rigorosos o bastante para requererem tarefas de análise de performance na fase de análise e desenho da aplicação.
  6. Além do descrito no item 4, ferramentas de análise de performance foram usadas na fase de desenho, desenvolvimento ou implementação da aplicação, a fim de proporcionar a performance estabelecida pelo usuário.

4.7.4 Utilização do Equipamento

Representa a necessidade de se fazer considerações especiais no desenho dos sistemas, para que a configuração do equipamento escolhido suporte-o sem que fique sobrecarregado.

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. Não há restrições operacionais implícitas ou explicitas.
  2. Existem restrições operacionais, mas são menos restritivas que aplicações típicas. Nenhum esforço extra é necessário para suplantá-las.
  3. Algumas considerações sobre tempo e segurança são necessárias.
  4. Há necessidade especial de processador para uma parte específica da aplicação.
  5. Restrições operacionais requerem atenção especial a nível de processador central ou processador dedicado para executar a aplicação.
  6. Restrições operacionais são agravadas pela existência de sobrecarga em nível das CPUs distribuídas da instalação.

4.7.5 Volume de Transações

O volume de transações é de tal magnitude que tem influência no desenho, desenvolvimento, implantação e manutenção da aplicação.

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. Nenhum período de picos de transações é esperado.
  2. Picos mensais de transações são esperados.
  3. Picos semanais de transações são esperados.
  4. Picos diários de transações são esperados.
  5. Altos volumes de transações são esperados, o que força a execução de tarefas de análise de impactos na fase de desenho da aplicação.
  6. O alto volume de transação requer o uso de ferramentas de análise de performance nas fases de desenho e desenvolvimento da aplicação.

4.7.6 Entrada de Dados "On-Line"

A aplicação possui entrada de dados "on-line".

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. Todas as transações são processadas em "batch".
  2. 1 a 7% das transações são entradas de dados interativas.
  3. 8 a 15% das transações são entradas de dados interativas.
  4. 16 a 23% das transações são entradas de dados interativas.
  5. 24 a 30% das transações são entradas de dados interativas.
  6. Mais de 30% das transações são entradas de dados interativas.

4.7.7 Eficiência do Usuário Final

As funções da aplicação executadas "on-line" enfatizam que o desenho da aplicação foi voltado para a eficiência do usuário final, e é refletido pelo número e tipo de facilidades disponibilizadas:

  • Navegação por menus;
  • Documentação e/ou HELP "on-line";
  • Movimento automático de cursor;
  • Movimento de tela (scroll) vertical e horizontal;
  • Impressão remota, via transação "on-line";
  • Teclas de funções pré-definidas ou programáveis pelo usuário;
  • Submissão de "jobs" para execução em "batch", a partir de transações "on-line";
  • Seleção de dados na tela através de movimentação de cursor;
  • Uso intensivo de vídeo reverso, brilho intenso, cores, sublinhado e outros recursos de vídeo;
  • Impressão da documentação do sistema/rotina/função através de "hardcopy" em transações "on-line";
  • Interface para mouse;
  • Pop windows;
  • Mínimo possível de telas para executar as funções do negócio;
  • Fácil navegação entre telas, através de teclas de função ou navegação direta;
  • Suporte bilingüe (Contar como 4 itens);
  • Suporte multilingüe (Contar como 6 itens).

Classificar o Nível de Influência para esta característica, na aplicação, segundo a tabela abaixo:

  1. A aplicação não apresenta nenhum dos itens acima.
  2. A aplicação apresenta de 1 a 3 dos itens acima.
  3. A aplicação apresenta de 4 a 5 dos itens acima.
  4. A aplicação apresenta 6 ou mais dos itens acima, mas não há nenhum requerimento do usuário relacionado à eficiência.
  5. A aplicação apresenta 6 ou mais dos itens acima e os requerimentos, estabelecidos para eficiência do usuário final, são rigorosos o suficiente para que a fase de desenho da aplicação inclua análise de fatores como maximizar o uso de "defaults" ou "templates" para minimizar esforço de digitação.
  6. A aplicação apresenta 6 ou mais dos itens acima e os requerimentos, estabelecidos para eficiência do usuário final, são rigorosos o suficiente para que seja necessário o uso de ferramentas que demonstrem que os objetivos de eficiência exigidos foram alcançados.

4.7.8 Atualização de Dados "On-Line"

A aplicação permite a atualização "on-line" dos Arquivos Lógicos Internos.

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. Nenhuma atualização.
  2. Atualização "on-line" de 1 a 3 Arquivos Lógicos Internos. O volume de atualização é baixo e a recuperação de dados é simples.
  3. Atualização "on-line" de 4 ou mais Arquivos Lógicos Internos. O volume de atualização é baixo e a recuperação de dados é simples.
  4. Atualização "on-line" da maioria dos Arquivos Lógicos Internos.
  5. Atualização "on-line" da maioria dos Arquivos Lógicos Internos. A proteção contra perdas de dados é essencial e consta da aplicação.
  6. Além do item 4, altos volumes de dados trazem considerações sobre custo para o processamento de recuperação e estes exigem procedimentos automatizados.

4.7.9 Processamento Complexo

As características de complexidade do processamento da aplicação envolvem:

  • Processamento especial de auditoria e/ou processamento especial de segurança;
  • Processamento lógico extensivo;
  • Processamento matemático extensivo;
  • Grande quantidade de processamento de exceções;
  • Processamento complexo para manipular múltiplas possibilidades de entradas e saídas, meios e tipos de equipamento.

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. A aplicação não apresenta nenhum dos itens acima.
  2. A aplicação apresenta um dos itens acima.
  3. A aplicação apresenta dois dos itens acima.
  4. A aplicação apresenta três dos itens acima.
  5. A aplicação apresenta quatro dos itens acima.
  6. A aplicação apresenta os cinco itens acima.

4.7.10 Reutilização do Código Fonte

A aplicação e o seu código foram especificamente projetados, desenvolvidos e mantidos para serem reutilizados em outras aplicações, através de parametrização.

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. Não foram desenvolvidos códigos reutilizáveis
  2. O código reutilizável é usado somente dentro da própria aplicação.
  3. Menos de 10% dos módulos foram feitos levando-se em conta a sua utilização por outras aplicações.
  4. 10% ou mais dos módulos foram feitos levando-se em conta a sua utilização por outras aplicações.
  5. A aplicação foi projetada e documentada para facilitar a reutilização de código e a aplicação é customizada em nível de código fonte.
  6. A aplicação foi projetada e documentada para facilitar a reutilização de código. Sua customização (parâmetros) pode ser atualizada pelo usuário.

4.7.11 Facilidade de Implantação

O nível de facilidade de implantação da aplicação e as ferramentas de conversão de dados disponibilizados são características da aplicação.

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. Nenhuma consideração especial foi feita pelo usuário, e nenhum procedimento especial foi requerido para a implantação.
  2. Nenhuma consideração especial foi feita pelo usuário, mas um procedimento especial foi requerido para implantação.
  3. Requerimentos de implantação e conversão de dados foram fixados pelo usuário, e roteiros de implantação e conversão de dados foram preparados. O impacto da conversão de dados não é considerado importante.
  4. Requerimentos de implantação e conversão de dados foram fixados pelo usuário, e roteiros de implantação e conversão de dados foram preparados. O impacto da conversão de dados é considerado importante.
  5. Requerimentos de implantação e conversão de dados foram fixados. Ferramentas automatizadas de implantação e conversão de dados foram preparadas e testadas. O impacto da conversão não é considerado importante.
  6. Não tem.

4.7.12 Facilidade Operacional

As especificações da aplicação demandam que sejam providos procedimentos automatizados que minimizem a intervenção manual de operadores.

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. Nenhuma consideração especial sobre facilidade operacional, além dos procedimentos normais de "backup", foram requeridos pelo usuário.
  2. Procedimentos eficientes de inicialização, "backup" e recuperação foram preparados, mas a intervenção do operador é necessária.
  3. Procedimentos eficientes de inicialização, "backup" e recuperação foram preparados, e nenhuma intervenção do operador é necessária.
  4. A aplicação minimiza a operação de montagem de meios magnéticos (fitas/cartuchos).
  5. A aplicação minimiza o manuseio de formulários.
  6. A aplicação foi projetada para não precisar de intervenção do operador no seu funcionamento normal. Apenas a inicialização e parada ficam a seu cargo.

4.7.13 Múltiplos Locais

A aplicação foi especificamente projetada, desenvolvida e suportada para ser instalada em múltiplos locais de uma organização ou para diversas organizações.

Classificar o Nível de Influência, desta característica, na aplicação, conforme a tabela abaixo:

  1. Não foi feita nenhuma solicitação do usuário para considerar a necessidade de instalar a aplicação em mais de um local.
  2. Necessidade de instalação em múltiplos locais foi considerada no projeto, e a aplicação foi projetada para operar em ambientes IDÊNTICOS de "hardware" e "software".
  3. Necessidade de instalação em múltiplos locais foi considerada no projeto, e a aplicação foi projetada para operar em ambientes SIMILARES de "hardware" e "software".
  4. Necessidade de instalação em múltiplos locais foi considerada no projeto, e a aplicação foi projetada para operar, inclusive, em ambientes DIFERENTES de "hardware" e "software".
  5. Um plano de documentação e manutenção foi elaborado e testado para suportar a aplicação em múltiplos locais, e esta pode operar em ambientes IGUAIS ou SIMILARES de "hardware" e "software".
  6. Um plano de documentação e manutenção foi elaborado e testado para suportar a aplicação em múltiplos locais, e esta pode operar em ambientes DIFERENTES de "hardware" e "software".

4.7.14 Facilidade de Mudanças

A aplicação foi especificamente projetada, desenvolvida e suporta manutenção, visando facilidade de mudanças através de capacidade de consultas e relatórios flexíveis, bem como a parametrização dos dados de controle do negócio, de forma que o cliente possa modificá-los a qualquer momento.

A aplicação provê recursos flexíveis de consultas ou de emissão de relatórios:

1. É fornecido recurso flexível de consulta e de emissão de relatório capaz de manipular solicitações simples, com lógica de "and/or" aplicada somente a um Arquivo Lógico Interno.

2. É fornecido recurso flexível de consulta e de emissão de relatório capaz de manipular solicitações de média complexidade, com lógica de "and/or" aplicada a mais de um Arquivo Lógico Interno.

3. É fornecido recurso flexível de consulta e de emissão de relatório capaz de manipular solicitações de alta complexidade, com lógica de "and/or" aplicada a um ou mais Arquivos Lógicos Internos.

Caso os dados de controle do negócio da aplicação sejam mantidos em tabelas ou arquivos, que possam ser atualizadas pelo usuário através de processos "on-line" e interativos, acrescentar ao Nível de Influência determinado acima:

  1. Se estas alterações só são efetivadas no próximo dia útil;
  2. Se estas alterações são efetivadas imediatamente.

Caso a aplicação não disponibilize estas ferramentas será atribuído o Nível de Influência igual a 0 (zero) para esta característica da aplicação.

4.7.15 Exemplo

O nível de influência do sistema de reservas - projeto de desenvolvimento tem os seguintes valores baseados nas suas características.

 

Características Gerais dos Sistemas Nível de Influência Comentários

1. Comunicação de Dados

4

único protocolo

2. Processamento Distribuído

0

não especificado

3. Desempenho

0

não especificado

4. Utilização do Equipamento

1

utilizar oAtual

5. Volume de Transações

1

picos mensais

6. Entrada de Dados"On-Line"

5

100% "on-line"

7. Eficiência do Usuário Final

1

voltado ao usuário

8. Atualização "On-Line"

5

100% atualizado

9. Processamento Complexo

0

não especificado

10. Reutilização de Código

0

não especificado

11. Facilidade de Implantação

0

não especificado

12. Facilidade Operacional

0

não especificado

13. Múltiplos locais

0

não especificado

14. Facilidade de Mudanças

0

não especificado

* * * Nível de Influência ( NI )

17

 

 

4.8 Cálculo do Fator de Ajuste

O valor do fator de ajuste é baseado em 14 características gerais do sistema que medem a funcionalidade geral da aplicação.

Os passos para calcular o Valor do Fator de Ajuste são:

  1. Avaliar as 14 características Gerais dos Sistemas em uma escala de 0 a 5, produzindo o Nível de Influência Individual de cada característica.
  2. Somar os 14 Níveis de Influência Individuais para produzir o Nível de Influência da Aplicação.
  3. Aplicar o Nível de Influência da Aplicação à seguinte equação para produzir o Fator de Ajuste:

(Nível de Influência * 0,01 + 0,65 = Fator de Ajuste)

EXEMPLO

 

Características Gerais dos Sistemas

Nível de Influência

Comentários

1. Comunicação de Dados

4

único protocolo

2. Processamen-to Distribuído

0

não especificado

3. Desempenho

0

não especificado

4. Utilização do Equipamento

1

utilizar o Atual

5. Volume de Transações

1

picos mensais

6. Entrada de Dados "On-Line"

5

100% on-line

7. Eficiência do Usuário Final

1

voltado ao usuário

8. Atualização "On-Line"

5

100% atualizado

9. Processamento Complexo

0

não especificado

10. Reutilização de Código

0

não especificado

11. Facilidade de Implantação

0

não especificado

12. Facilidade Operacional

0

não especificado

13. Múltiplos locais

0

não especificado

14. Facilidade de Mudanças

0

não especificado

* * * Nível de Influência ( NI )

17

 

Fator de Ajuste = (17 * 0,01) + 0,65 = 0,82

 

4.9 Cálculo dos Pontos por Função de um Projeto de Desenvolvimento

Para produzir o total de Pontos por Função de um Projeto de Desenvolvimento, a seguinte fórmula deve ser usada:

PF_DESENVOLVIMENTO=PF_NÃO_AJUSTADO * FATOR_AJUSTE

Onde:

PF_DESENVOLVIMENTO = Total de Pontos por Função do Desenvolvimento

PF_NÃO_AJUSTADO = Total de Pontos por Função Não-Ajustados

FATOR_AJUSTE = Valor do Fator Ajuste

EXEMPLO:

Para encontrar os Pontos por Função Ajustados do Sistema de Reservas - Projeto de Desenvolvimento, a seguinte fórmula deve ser preenchida.

 

PF_DESENVOLVIMENTO=PF_NÃO_AJUSTADO * FATOR_AJUSTE

PF_DESENVOLVIMENTO = 122 * 0,82

PF_DESENVOLVIMENTO = 100

 

Com este artigo, nós encerramos a parte referente a projetos de desenvolvimento. No próximo artigo abordaremos as considerações para utilizar esta técnica em um projeto de manutenção de sistemas. Aguardem.

Referências Bibliográficas:

[BRA96] BRAGA, Antônio. Análise de pontos por função. Rio de Janeiro : Infobook, 1996.

[CON85] CONTE, S. D.; SHEN V.Y. Software engineering metrics and models. Menlo Park : Califórnia, 1985.

[FEN93] FENTON, Norman E. Software metrics a rigorous approach. London, Chapman & Hall, 1993.

[HAL77] HALTEAD, M. H. Elements of software science. New York: Elsevier Computer Science Library, 1977.

[INT91] INTERNATIONAL FUNCTION POINT USER GROUP. Análise de pontos por função. [S.l.] : IFPUG, 1991. (Baseado no Release 3.4 do Manual de Práticas de Contagem do IFPUG).

[INT97] INTERNATIONAL FUNCTION POINT USER GROUP. Disponível na Internet em http://www.bonnister.com/ ifpug/home/docs/ifpughoe.html

[JON91] JONES, Capers. The sociology of software measurement. Computerworld: In Depth, Framingham, v.25. n. 32, p.61-62, ago.1991.

[MAC89] MACHADO, José Alberto. A medição da produtividade no desenvolvimento de software. Rio de Janeiro : UFRJ, 1989.

[PUT78] PUTNAM, L. Trends in measurement, estimation, and control. IEEE Software, 1991.

[SAC68] SACMAN, H. Exploratory experimental studies comparing online and offline programming performance. IEE CACM, vol. 11, n. 1. 1968.

[SHE95] SHEPPERD, Martin. Foundation of software measurement. London: Prentice Hall, 1995.

[UNI93] UNISYS ELETRONICA LTDA. Manual do curso de análise de pontos por função da Unisys Eletrônica Ltda. 1993.