Determinando o Tipo de Contagem
Para usarmos
Análise de Ponto de função precisamos definir o escopo, ou seja, o tipo da contagem.
No segundo post da série fiz uma breve introdução e agora avançaremos
fundamentando alguns conceitos fundamentais para uma contagem bem sucedia.
Algumas
definições antes de avançarmos:
- ALI - Arquivo Lógico Interno: grupo logicamente relacionado de dados ou informações de controle, identificável pelo usuário, mantido dentro da fronteira da aplicação que está sendo controlada. Por exemplo: as tabelas ou classes do sistema.
- AIE - Arquivo de Interface Externa: grupo logicamente relacionado de dados ou informações de controle, referenciado pela aplicação, identificável pelo usuário, mantido fora da fronteira da aplicação que está sendo controlada. Por exemplo: as tabelas acessadas noutro sistema.
- TED - Tipos de Elementos de Dados: campo único, reconhecido pelo usuário, não recursivo. Por exemplo: campos das tabelas.
- TER - Tipos de Elementos de Registros: subgrupo de dados, reconhecido pelo usuário. Por exemplo: generalização/especialização de classes.
- EE - Entrada Externa: processo elementar da aplicação que processa dados ou informações de controle que vêm de fora da fronteira da aplicação que está sendo controlada. Exemplos: validações, fórmulas e cálculos matemáticos cujos parâmetros vêm de fora da fronteira da aplicação.
- SE - Saída Externa: processo elementar da aplicação que gera dados ou informações de controle que são enviados para fora da fronteira da aplicação que está sendo controlada. Exemplos: relatórios e gráficos.
- CE - Consulta Externa: processo elementar da aplicação que representa uma combinação de entrada (solicitação de informação) e saída (recuperação de informação). Exemplos: consultas implícitas, verificação de senhas e recuperação de dados com base em parâmetros.
Processo
de Contagem
Vimos antes
que o processo de contagem dos pontos de função pode ser dividido em sete
etapas:
- Determinar tipo de contagem;
- Identificar a fronteira da aplicação;
- Contar as funções tipo dados;
- Contar as funções tipo transação;
- Calcular pontos de função não ajustados (com base nos resultados obtidos em (3) e (4));
- Calcular o valor do fator de ajuste;
- Calcular os pontos de função ajustados (com base nos resultados obtidos em (5) e (6)).
1.
Determinar o Tipo de Contagem
Projeto de
Desenvolvimento: mede a funcionalidade fornecida aos usuários finais do
software para a primeira instalação da aplicação. Inclui as funcionalidades da
contagem inicial da aplicação e as funcionalidades requeridas para conversão de
dados.
Projeto de
Manutenção: mede as modificações realizadas para aplicações existentes. Inclui
as funcionalidades fornecidas aos usuários através de adição, modificação ou
exclusão de funções na aplicação. As funcionalidades de conversão de dados
também devem ser consideradas, caso existam. Após a manutenção, a contagem da
aplicação deve ser refeita para refletir as alterações realizadas.
Aplicação:
mede uma aplicação instalada. É também referenciada como contagem de linha de
base ou contagem instalada e avalia as funcionalidades correntes providas aos
usuários finais da aplicação.
2.
Identificar a Fronteira da Aplicação
Após
determinado o tipo de contagem, a fronteira da aplicação deve ser identificada.
Ela indica a separação entre o projeto que está sendo medido e as aplicações externas
ao domínio do usuário. É através dela que torna-se possível definir quais
funcionalidades serão incluídas no processo de contagem dos pontos de função.
3.
Contar Funções Tipo Dados
Nesta etapa
as funcionalidades da aplicação começam a ser identificadas e contadas.
A
funcionalidade da aplicação é avaliada em termos do quê é fornecido pela mesma,
não do como é fornecido. Apenas componentes definidos e solicitados pelo
usuário devem ser contados.
As Funções
Tipo Dados representam as funcionalidades fornecidas pelo sistema ao usuário,
para atender às necessidades referentes aos dados que o sistema irá manipular.
Essas funções podem ser:
A diferença
básica entre um ALI e um AIE é que o último não é mantido pela aplicação que
está sendo contada. Um AIE contado para uma aplicação sempre será contado como
um ALI em sua aplicação de origem.
Nas
definições de ALI e AIE foram utilizados alguns termos e expressões que merecem
esclarecimento. São elas:
Informações
de Controle: são dados utilizados pela aplicação para garantir aderência com os
requisitos funcionais especificados pelo usuário. Por exemplo: datas e horas
são utilizadas pelos usuários para estabelecer a sequência ou o momento de
eventos. Assim, datas e horas são informações de controle.
Identificável
pelo Usuário: refere-se aos requisitos específicos que um usuário ou grupo de
usuários seria capaz de definir para a aplicação.
Mantido:
refere-se ao fato de que o dado pode ser modificado através de um processo
elementar da aplicação. Um processo elementar é a menor atividade capaz de
produzir resultados significativos para o usuário. Por exemplo: incluir,
alterar e excluir.
Cada Arquivo
Lógico Interno e cada Arquivo de Interface Externa possuem dois tipos de
elementos que devem ser contados para cada função identificada:
Tipos de
Elementos de Dados (TED): campo único, reconhecido pelo usuário, não recursivo.
Por exemplo: campos das tabelas.
Tipos de
Elementos de Registros (TER): subgrupo de dados, reconhecido pelo usuário. Por exemplo:
generalização/especialização de classes.
Ao final
dessa etapa devem estar identificados quantos Arquivos Lógicos Internos e
Arquivos de Interface Externa o sistema possui e para eles, quantos são os
Tipos de Elementos de Dados e os Tipos de Registros encontrados.
4.
Contar Funções Tipo Transação
As Funções
Tipo Transação representam as funcionalidades de processamento dos dados
fornecidas pelo sistema ao usuário. Cada Entrada Externa, Saída Externa e
Consulta Externa possui dois tipos de elementos que devem ser contados para
cada função identificada:
Tipos de
Elementos de Dados (TED): campo único, reconhecido pelo usuário, não recursivo.
Por exemplo: campos das tabelas.
Tipos de
Arquivos Referenciados ou Arquivos Referenciados (TAR): arquivos lógicos
utilizados para processar a entrada e/ou saída. É o total de ALI e AIE
utilizados pela transação.
Ao final
dessa etapa devem estar identificadas quantas Entradas Externas, Saídas
Externas e Consultas Externas o sistema possui e, para elas, quantos são os
Tipos de Elementos de Dados e os Arquivos Referenciados encontrados.
5.
Calcular os Pontos de Função Não Ajustados
Após serem
contadas todas as Funções Tipo Dados e as Funções Tipo Transação e seus
elementos, é preciso calcular os pontos de função não ajustados, que refletem
especificamente as funcionalidades fornecidas ao usuário pelo produto. Para
isso, é preciso identificar a complexidade e a contribuição, em pontos por
função, de cada uma das funções e elementos contados.
Para
determinar a complexidade e contribuição das funções e seus elementos, é
necessário utilizar as relações dos valores de complexidade e contribuição
fornecidas pela técnica. A seguir são apresentadas tabelas que indicam a
complexidade e contribuição das funções e seus elementos em um sistema, de
acordo com a contagem estabelecida nas etapas (3) e (4).
Complexidade de um Arquivo Lógico Interno ou
Arquivo de Interface Externa de acordo com o número de Tipos de Elementos de
Dados e de Tipos de Elementos de Registros identificados para ele.
Complexidade
ALI e AIE
|
Tipo de
Elemento de Dados
|
|||
1 a 19
|
20 a 50
|
≥ 51
|
||
Tipo de
Elementos de Registro
|
1
|
BAIXA
|
BAIXA
|
MÉDIA
|
2 a 5
|
BAIXA
|
MÉDIA
|
ALTA
|
|
≥ 6
|
MÉDIA
|
ALTA
|
ALTA
|
Complexidade
de uma Entrada Externa de acordo com o número de Tipos de Elementos de Dados e
de Arquivos Referenciados identificados para ela. Também é utilizada para
determinar a complexidade das entradas de uma Consulta Externa.
Complexidade EE e CE
|
Tipo de Elemento de Dados
|
|||
1 a 4
|
5 a 15
|
≥ 16
|
||
Tipo de Arquivo Referenciado
|
0 a1
|
BAIXA
|
BAIXA
|
MÉDIA
|
2
|
BAIXA
|
MÉDIA
|
ALTA
|
|
≥ 3
|
MÉDIA
|
ALTA
|
ALTA
|
Complexidade
de uma Saída Externa de acordo com o número de Tipos de Elementos de Dados e de
Arquivos Referenciados identificados para ela. Também é utilizada para
determinar a complexidade das saídas de uma Consulta Externa.
Complexidade SE e CE
|
Tipo de Elemento de Dados
|
|||
1 a 5
|
6 a 19
|
≥ 20
|
||
Tipo de Arquivo Referenciado
|
0 a1
|
BAIXA
|
BAIXA
|
MÉDIA
|
2 a 3
|
BAIXA
|
MÉDIA
|
ALTA
|
|
≥ 4
|
MÉDIA
|
ALTA
|
ALTA
|
Contribuições (pesos) obtidas através das
complexidades calculadas para as funções identificadas.
Contribuições das Complexidades
|
Contribuições (peso)
|
||||
ALI
|
AIE
|
EE
|
SE
|
CE
|
|
Complexidades
|
7
|
5
|
3
|
4
|
3
|
10
|
7
|
4
|
5
|
4
|
|
15
|
10
|
6
|
7
|
6
|
Para calcular os pontos de função não
ajustados, multiplica-se o número de funções identificadas para uma determinada
complexidade por sua contribuição. Ao final, soma-se todos os pontos de função
encontrados.
A seguir é apresentado um exemplo para
o cálculo dos pontos de função não ajustados (PFNA) gerados pelos ALI de um
sistema hipotético. O mesmo deve ser feito para outras funções do sistema
(AIE, EE, SE e CE).
Função
|
Itens Contados por Complexidade
|
Contribuição
|
Total por Complexidade
|
Total de PFNA da Função
|
ALI
|
1 Baixa
|
x 7
|
7
|
42
|
2 Média
|
x 10
|
20
|
||
1 Alta
|
x 15
|
15
|
6. Calcular Valor do Fator de Ajuste
O número de pontos de função não
ajustados de um sistema reflete a funcionalidade que o sistema fornecerá ao
usuário, sem considerar as especificidades do sistema. Por exemplo, um mesmo
sistema pode ser implementado para operar stand alone para um cliente e
em arquitetura cliente servidor para outro. As funcionalidades seriam as
mesmas, o que resultaria na mesma contagem de pontos de função não ajustados,
mas quando considera-se as características do sistema para cada cliente,
observa-se que os pontos de função devem ser ajustados para refletir a maior
complexidade do sistema na arquitetura cliente servidor.
Para ajustar os pontos de função encontrados na etapa (5) devem ser levadas em consideração 14 (quatorze) características do sistema que serão analisadas e fornecerão o valor do fator de ajuste. São elas:
- Comunicação de Dados
- Processamento Distribuído
- Performance
- Configuração Altamente Utilizada
- Taxa de Transações
- Entrada de Dados On-Line
- Eficiência do Usuário Final
- Atualização On-Line
- Processamento Complexo
- Reutilização
- Facilidade de Operação
- Facilidade de Instalação
- Múltiplos Locais
- Modificações Facilitadas.
Para cada característica deve ser
atribuído um nível de influência de 0 (zero) a 5 (cinco), onde:
0 (zero) indica
nenhuma influência
1 (um) 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.
Para calcular o valor do fator de
ajuste deve-se seguir a relação VFA = (GIT * 0,01) + 0,65
- VFA é o valor do fator de ajuste
- GIT é o grau de influência total (soma de todos os valores dos níveis de influência).
7. Calcular Pontos de Função
Ajustados
Após calculado o valor do fator de
ajuste, os pontos de função não ajustados serão ajustados, multiplicando-se o
valor dos pontos de função não ajustados (PFNA), obtidos em (5), pelo
valor do fator de ajuste (VFA),obtido em (6).
Assim, PFA = PFNA x VFA
O número de pontos de função encontrado
representa o tamanho da aplicação de acordo com sua funcionalidade.
Para calcular as estimativas de
esforço, prazo e custos para a aplicação é necessário conhecer valores como o
custo de um ponto de função (por exemplo R$200,00) e o tempo necessário para
realizar um ponto de função (por exemplo 2,5 h), ou o esforço para realizar um
ponto de função (por exemplo 14 pessoas/mês) e o custo do esforço. Com esses
valores é possível calcular as estimativas para o projeto através das relações
entre o número total de pontos de função do sistema e os valores de um ponto de
função.
Para determinar os valores de um ponto
de função, a organização pode realizar medições em projetos anteriores e obter
um valor médio para o ponto de função. Caso não existam projetos anteriores
podem ser consultadas tabelas disponibilizadas pelo IFPUG (Institute
Function Point Users Group) e por seus órgãos representantes em cada país.
Grande
Abraço,
Gilberto
Ribeiro
Nenhum comentário :
Postar um comentário