FPA - FUNCTION POINT ANALYSIS - SISTEMÁTICA DE MÉTRICA
Autor: Douglas José Peixoto de Azevedo
Este é o quarto 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;
Quarto Artigo
3 REGRAS DE CONTAGEM
As Regras de Contagem da FPA, contidas neste documento, estão baseadas no Manual de Práticas de Contagem da Análise de Pontos por Função - publicada pelo International Function Point Users Group - IFPUG. Após contadas as funções de dados, abordada no artigo anterior, conta-se as funções de transações que são: Entradas Externas; Saídas Externas e Consultas Externas.
3.3 Entradas Externas
3.3.1 Visão Geral
As Regras de Contagem da FPA, contidas neste documento, estão baseadas no Manual de Práticas de Contagem da Análise de Pontos por Função - publicada pelo International Function Point Users Group - IFPUG. Após contadas as funções de dados, abordada no artigo anterior, conta-se as funções de transações que são: Entradas Externas; Saídas Externas e Consultas Externas.
As Entradas Externas representam as atividades de manutenção de dados e processamento de controle da aplicação. As Entradas Externas contribuem para o cálculo dos Pontos por Função com base na sua quantidade e complexidade funcional relativa de cada uma.
3.3.2 Definições
Uma Entrada Externa processa dados ou processa informações de controle que entram pela fronteira da aplicação. Esses dados, através de um processo lógico único, atualizam Arquivos Lógicos Internos. Informações de controle podem ou não atualizar diretamente um Arquivo Lógico Interno. Uma Entrada Externa é considerada única para a aplicação, se possuir um formato diferente ou se necessitar um processamento lógico diferente de outras Entradas Externas que tenham o mesmo formato. Formato é definido como um conjunto de dados arrumados em uma ordem ou seqüência única dentro da aplicação. Lógica de processamento é a execução de instruções segundo um algoritmo e/ou ordenações especificamente requeridas pelo usuário. Informações de controle são dados utilizados pela aplicação para garantir total conformidade com os requerimentos das funções do negócio especificado pelo usuário. Manutenção é a habilidade de adicionar, alterar ou remover dados de um arquivo através de um procedimento padrão da aplicação.
3.3.3 Identificação
A identificação das Entradas Externas será feita a partir dos seguintes critérios:
- Identificar todos os processos que atualizam um arquivo Lógico Interno. Para cada processo identificado:
- Se os dados utilizados em um processo podem ser recebidos em mais de um formato, então cada formato deve ser considerado uma Entrada Externa.
- Contabilizar uma Entrada Externa para cada atividade de manutenção ( adição, alteração e exclusão) de dados executada.
- Identificar os processos que permitem a entrada de informações de controle dentro da fronteira da aplicação, com o objetivo de atender aos requerimentos do usuário.
3.3.4 Exemplos
Assumindo que as condições de identificação citadas estejam satisfeitas, são consideradas Entradas Externas:
- Dados de transações utilizados na manutenção dos Arquivos Lógicos Internos, alimentados através de arquivos;
- Tela de Entrada on-line: Contar uma entrada externa para cada função de manutenção de um arquivo Lógico Interno. Se a capacidade de adição, alteração e exclusão estiverem presentes, a tela de entrada deve ser considerada como três entradas externas.
- Tela de Entrada Batch: As Entradas Externas duplicadas (realizam a mesma função do negócio) serão computadas individualmente caso utilizem meios distintos para sua realização.
Não são consideradas Entradas Externas:
- Dados de referência: Dados externos utilizados pela aplicação e que não são atualizados nos Arquivos Lógicos Internos;
- Parâmetros de entrada que direcionam a recuperação de dados em uma Consulta Externa (Parte da entrada de uma Consulta Externa);
- Telas de controle de acesso à aplicação que não atualizam os Arquivos Lógicos Internos;
- Telas que fornecem funcionalidade de seleção ou navegação e não atualizam Arquivos Lógicos Internos;
- Múltiplos métodos para executar uma mesma lógica de Entrada Externa.
3.3.5 Classificação
Cada Entrada Externa deve ser classificada de acordo com sua complexidade funcional relativa, que é baseada no número de Arquivos e no número de itens de dados referenciados, demonstrado na tabela 3.
- Identificação do Número de Arquivos Referenciados.
- O número de Arquivos Referenciados é a somatória do número de Arquivos Lógicos Internos e de Arquivos de Interface Externa, atualizados ou consultados na Entrada Externa.
- Identificação do Número de Itens de Dados.
O número de Itens de Dados Referenciados é o total de campos identificados pelo usuário que são atualizados em um Arquivo Lógico Interno por uma Entrada Externa.
Cada Item de Dados atualizado em um Arquivo Lógico Interno por uma Entrada Externa deve ser contabilizado com as seguintes exceções:
- Os itens de dados originários da subdivisão de um item de dado maior não devem ser contabilizados (contabiliza-se apenas o item de dado maior);
- Os itens de dados que sejam armazenados de forma repetitiva em mais de um campo do arquivo, serão contabilizados apenas uma vez;
- Campos repetitivos que são idênticos no formato e existem para permitir múltiplas ocorrências de um determinado item de dado, serão contabilizados uma única vez.
Itens de Dados adicionais devem ser contabilizados para uma Entrada Externa nos seguintes casos:
- Linhas de comandos, teclas de funções ou campos que fornecem ao usuário a capacidade para especificar a ação a ser tomada pela Entrada Externa (Contabilizar um item adicional no caso de existência desta capacidade);
- Campos não informados pelo usuário, mas que são gerados automaticamente pela aplicação e que atualizam um Arquivo Lógico Interno;
- Mensagens de erro: Cada mensagem de erro e/ou confirmação associada a um processo de validação de dados de Entradas Externas deve ser contabilizado como um item de dados.
De acordo com o número de itens de dados e de arquivos referenciados, classificam-se as Entradas Externas em simples, média ou complexa, segundo o quadro abaixo:
Nº DE ARQUI-
VOS REFERENCIADOS |
ITENS DE DADOS REFERENCIADOS DE:
1 A 4 5 A 15 16 OU MAIS |
||
1 |
SIMPLES | SIMPLES | MÉDIA |
2 |
SIMPLES | MÉDIA | COMPLEXA |
3 ou mais |
MÉDIA | COMPLEXA | COMPLEXA |
3.3.6 Pontuação
Para cada Entrada Externa será atribuído um número de Pontos de Função, de acordo com a sua complexidade funcional relativa:
- SIMPLES: 3 (três) Pontos por Função;
- MÉDIA: 4 (quatro) Pontos por Função;
- COMPLEXA: 6 (seis) Pontos por Função.
3.4 Saídas Externas
3.4.1 Visão Geral
As Saídas Externas representam as atividades da aplicação que têm como resultado a saída de dados. As Saídas Externas contribuem para o cálculo dos Pontos por Função com base na sua quantidade e complexidade funcional relativa de cada uma.
3.4.2 Definições
Uma Saída Externa é uma atividade que envia dados ou informações para fora da fronteira da aplicação.
Uma Saída Externa é considerada única para a aplicação, se possuir um formato diferente ou se necessitar um processamento lógico diferente de outras Saídas Externas que tenham o mesmo formato. Formato é definido como um conjunto de dados arrumados em uma ordem ou seqüência única dentro da aplicação. Lógica de processamento é a execução de instruções segundo um algoritmo e/ou ordenações especificamente requeridas pelo usuário.
3.4.3 Identificação
- Identificar todos os processos que:
- Enviam dados para fora da fronteira da aplicação.
- Enviam informações de controle para fora da fronteira da aplicação.
3.4.4 Exemplos
Satisfeitas as condições citadas, são consideradas Saídas Externas:
- Dados transferidos para outra aplicação: Dados residentes nos Arquivos Lógicos Internos, que são processados e formatados para uso por outra aplicação;
- Relatórios: Cada relatório produzido pela aplicação é considerado uma Saída Externa;
- Relatórios Duplicados: Relatórios idênticos, produzidos em diferentes meios para atender necessidades específicas do usuário, devem ser consideradas Saídas Externas distintas, desde que a multiplicidade de meios seja provida pela aplicação;
- Relatórios "On-line": Saída de Dados "on-line", que não seja parte de saída de uma Consulta Externa, caracteriza-se como uma Saída Externa.
Não são consideradas Saídas Externas:
- Telas de Help (Telas contendo texto de apoio ao uso da aplicação);
- Múltiplas formas de executar uma mesma lógica de saída;
- Relatórios Múltiplos: Processos que possuem o mesmo formato de saída e a mesma lógica de processamento, ainda que apresentem resultados distintos ou resultados em meios distintos, são considerados como uma única Saída Externa;
- Relatórios criados diretamente pelo usuário, utilizando-se de ferramentas de extração de dados flexível, ainda que provida pela aplicação, não são considerados como Saídas Externas;
- Relatórios produzidos através de "Query Language".
3.4.5 Classificação
Cada Saída Externa deve ser classificada de acordo com sua complexidade funcional relativa, que é baseada no número de Arquivos e no número de itens de dados referenciados, conforme demonstrado na tabela 6 no canto superior a direita.
Nº DE ARQUI-
VOS REFE-RENCIADOS |
ITENS DE DADOS REFERENCIADOS DE:
1 A 5 6 A 19 20 OU MAIS |
||
Apenas 1 | SIMPLES | SIMPLES | MÉDIA |
De 2 ou 3 | SIMPLES | MÉDIA | COMPLEXA |
4 ou mais | MÉDIA | COMPLEXA | COMPLEXA |
- Identificação do número de arquivos referenciados.
- O número de Arquivos Referenciados é a somatória do número de Arquivos Lógicos Internos e de Arquivos de Interface Externa consultados pela Saída Externa.
- Identificação do número de itens de dados.
O número de Itens de Dados Referenciados é o total de campos identificados pelo usuário que aparecem na Saída Externa. Cada Item de Dados referenciado deve ser contabilizado com as seguintes exceções:
- Os itens de dados originários da subdivisão de um item de dado maior não devem ser contabilizados (contabiliza-se apenas o item de dado maior);
- Os itens de dados que sejam exibidos de forma repetitiva em mais de um campo da Saída Externa, serão contabilizados apenas uma vez;
- Campos repetitivos que são idênticos no formato e existem para permitir múltiplas ocorrências de um determinado item de dado, serão contabilizados uma única vez;
- Literais não são contadas como itens de dados;
- Data, hora e controles de paginação não deverão ser contabilizados como Itens de Dados.
- Devem ser contabilizados como itens de dado todos os campos de sumário ou de total que aparecem na Saída Externa.
De acordo com o número de itens de dados e de arquivos referenciados, classificam-se as Saídas Externas em simples, média ou complexa, segundo o quadro abaixo:
3.4.6 Pontuação
Para cada Saída Externa será atribuído um número de Pontos de Função, de acordo com a sua complexidade funcional relativa:
SIMPLES: 4 (quatro) Pontos por Função;
MÉDIA: 5 (cinco) Pontos por Função;
COMPLEXA: 7 (sete) Pontos por Função.
3.5 Consultas Externas
3.5.1 Visão Geral
As Consultas Externas representam as necessidades de recuperação imediata de dados da aplicação. As Consultas Externas contribuem para o cálculo dos Pontos por Função com base na sua quantidade e complexidade funcional relativa de cada uma.
3.5.2 Definições
Uma Consultas Externa é uma combinação de entrada e saída de dados, onde uma entrada de dados ocasiona uma recuperação e saída imediata de dados. Uma Consulta Externa não contém dados derivados e não atualiza nenhum Arquivo Lógico Interno.
Uma Consulta Externa é considerada única para a aplicação, se possuir um formato diferente de outras consultas, tanto na parte da entrada quanto na da saída, ou se necessitar um processamento lógico diferente de outras Consultas Externas.
Dados derivados são definidos como dados que requerem um processamento diferente de acesso, recuperação, totalização, edição e ordenamento de dados contidos nos Arquivos Lógicos Internos e/ou nos Arquivos de Interface Externa.
Formato é definido como um conjunto de dados arrumados em uma ordem ou seqüência única dentro da aplicação.
Lógica de processamento é a execução de instruções segundo um algoritmo e/ou ordenações especificamente requeridas pelo usuário.
3.5.3 Identificação
A identificação das Consultas Externas será feita a partir dos seguintes critérios:
- As Consultas Externas são processos onde uma entrada de dados ocasiona uma imediata recuperação e exibição de dados;
- Cada Consulta Externa é uma combinação única de entrada e saída de dados para a aplicação;
- Devem ser identificadas pelo usuário como uma função do negócio ou como um requerimento da aplicação.
3.5.4 Exemplos
Satisfeitas as condições citadas, são consideradas Consultas Externas:
- Consultas implícitas: Telas de alteração ou remoção de dados, que mostram o que será alterado ou removido antes de sua ação efetiva, devem ser consideradas como Consultas Externas; (Caso as telas de alteração e remoção sejam idênticas, considerar apenas uma Consulta Externa e, no caso destas serem iguais à tela de Consulta propriamente dita, deve-se considerar apenas a função de consulta como uma Consulta Externa);
- Menus com consultas implícitas: Telas de menus, que além de permitir funcionalidade de seleção e navegação, permitem informar parâmetros para consulta na tela escolhida, devem ser consideradas como sendo a parte de entrada de uma Consulta Externa; (A tela de resposta será a parte de saída da Consulta Externa);
- Telas de seleção: Telas de seleção de relatórios que permitem informar parâmetros para o relatório escolhido, devem ser consideradas como sendo a parte de entrada de uma Consulta Externa; (A parte de saída da Consulta Externa deve ser considerada como tendo uma Complexidade funcional relativa de nível simples);
- Telas de Logon: Telas de controle de acesso à aplicação, que fornecem funcionalidade de segurança, quando supridas pela aplicação, devem ser consideradas como uma Consulta Externa;
- Telas de Help: Telas contendo texto de apoio ao uso da aplicação, que possam ser acessadas ou exibidas através de diferentes técnicas de seleção, ou a partir de diferentes locais da aplicação, devem ser contadas uma única vez, observando as seguintes categorias de telas de Help;
- "Full screen help": Recurso de ajuda que mostra um texto de help relacionado à tela da aplicação, deve ser considerado como uma Consulta Externa de complexidade funcional relativa simples, independentemente do número de telas de texto de help apresentados;
- "Field sensitive help": Recurso de ajuda dependente da localização do cursor, ou de algum outro método de identificação, para exibição de documentação específica para aquele item de dado, deve ser considerado como uma Consulta Externa, computando-se um item de dado para a parte da entrada para cada campo sensível a esta função.
Não são consideradas Consultas Externas:
- Mensagens de erros ou de confirmação associadas às Entradas, Saídas ou Consultas Externas;
- Subsistema de Help: Recurso de ajuda que pode ser manuseado ou acessado independentemente da aplicação;
- Telas de controle de acesso à aplicação e que não fornecem funcionalidade de segurança;
- Telas que fornecem apenas funcionalidade de seleção ou navegação entre as funções da aplicação;
- Dados derivados: Dados derivados de dados contidos nos Arquivos Lógicos Internos e/ou nos Arquivos de Interface Externa devem ser tratados como uma Saída Externa;
3.5.5 Classificação
Cada Consulta Externa deve ser classificada de acordo com sua complexidade funcional relativa, que é determinada pela maior complexidade entre a complexidade funcional relativa da parte da entrada e a complexidade funcional relativa da parte da saída.
Estes são os passos para se classificar uma Consulta Externa.
- Calcular a complexidade funcional da parte de entrada da consulta externa.
- Calcular a complexidade funcional da parte de saída da consulta externa.
- Escolher a maior complexidade encontrada.
A complexidade funcional relativa da parte da entrada é baseada no número de Arquivos Referenciados e no número de itens de dados referenciados nesta etapa.
A complexidade funcional relativa da parte da saída é baseada no número de Arquivos Referenciados e no número de itens de dados referenciados nesta etapa.
O número de Arquivos Referenciados, tanto para a parte de entrada como para a parte da saída, é a somatória do número de Arquivos Lógicos Internos e de Arquivos de Interface Externa acessados na Consulta Externa.
O número de Itens de Dados Referenciados na parte de entrada é o número de parâmetros informados para obtenção do resultado da Consulta Externa.
O número de Itens de Dados Referenciados na parte da saída é o total de campos identificados pelo usuário, que aparecem na Consulta Externa que devem ser contabilizados com as seguintes exceções:
- Os itens de dados originários da subdivisão de um item de dado maior não devem ser contabilizados (contabiliza-se apenas o item de dado maior);
- Os itens de dados que sejam exibidos de forma repetitiva em mais de um campo da Consulta Externa serão contabilizados apenas uma vez;
- Campos repetitivos que são idênticos no formato e existem para permitir múltiplas ocorrências de um determinado item de dado, serão contabilizados uma única vez;
- Literais não são contadas como itens de dados;
- Data, hora e controles de paginação não deverão ser contabilizados como itens de dados;
- Devem ser contabilizados como itens de dados todos os campos de sumário ou de total que aparecem na Consulta Externa.
Nº DE ARQUI-
VOS REFE- RENCIADOS |
ITENS DE DADOS REFERENCIADOS DE:
1 A 4 5 A 15 16 OU MAIS |
||
0 ou 1 |
SIMPLES | SIMPLES | MÉDIA |
2 |
SIMPLES | MÉDIA | COMPLEXA |
3 ou mais |
MÉDIA | COMPLEXA | COMPLEXA |
De acordo com o número de itens de dados e de arquivos referenciados, classifica-se a parte de entrada da Consulta Externa, em simples, média ou complexa segundo o quadro abaixo:
Nº DE ARQUI-
VOS REFE- RENCIADOS |
ITENS DE DADOS REFERENCIADOS DE:
1 A 5 6 A 19 20 OU MAIS |
||
Apenas 1 |
SIMPLES | SIMPLES | MÉDIA |
De 2 a 3 |
SIMPLES | MÉDIA | COMPLEXA |
4 ou mais |
MÉDIA | COMPLEXA | COMPLEXA |
De acordo com o número de itens de dados e de arquivos referenciados, classifica-se a parte de saída de uma Consulta Externas em simples, média ou complexa segundo o quadro a seguir:
3.5.6 Pontuação
Para cada Consulta Externa será atribuído um número de Pontos por Função, de acordo com a sua complexidade funcional relativa:
SIMPLES: 3 (três) Pontos por Função;
MÉDIA: 4 (quatro) Pontos por Função;
COMPLEXA: 6 (seis) Pontos por Função.
3.6 Resumo da Classificação das Funções
FUNÇÃO |
SIMPLES |
MÉDIA |
COMPLEXA |
Arquivos |
7 |
10 |
15 |
Interfaces |
5 |
7 |
10 |
Entradas |
3 |
4 |
6 |
Saídas |
4 |
5 |
7 |
Consultas |
3 |
4 |
6 |
Abaixo procura-se resumir em uma tabela as classificações das funções de dados e das funções de transações, conforme demonstrado na tabela 9.
O quinto artigo da série, mostrará um exemplo completo de projeto de desenvolvimento, utilizando a técnica FPA.
Aguardem ...
[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 produtivida-de 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.