FPA - FUNCTION POINT ANALYSIS - SISTEMÁTICA MÉTRICA
Autor: Douglas José Peixoto de Azevedo
Este é o quinto 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 softwa-re;
- Custo de software;
- Taxa de produção de software;
- Taxa de manutenção de software.
- Nível de produtividade da equipe;
Quinto Artigo
4 SISTEMA EXEMPLO - RESERVAS - PROJETO DE DESENVOLVIMENTO DESCRIÇÃO
4.1 Resumo do Sistema
4.1.1 Objetivo
Apoiar o setor no controle de re-servas.
4.1.2 Descrição
O Sistema de Reservas visa apoiar o departamento responsável do Hotel ABC nos processos de reservas dos clientes (pessoas físicas ou jurídicas).
Através de terminais ligados ao computador central, este sistema receberá e fornecerá todas as informações referentes às reservas feitas no momento de sua solicitação, registrando em base de dados própria e validando, quando necessário, na base de dados do departamento de pessoal.
Além disso, deverão ser previstos relatórios para apoio ao setor de recepção e faturamento.
4.1.3 Funções
As seguintes funções são supor-tadas pelo sistema:
- Registro de reservas
- Alterações de reservas
- Exclusão de reservas
- Cadastramento de clientes
- Alterações de dados cadastrais de clientes
- Exclusão de clientes cadastrados
- Cadastramento de informações sobre apartamentos
- Alteração de dados de apartamentos
- Exclusão de apartamentos cadastrados
4.1.4 Produtos Gerados
a) Relatórios
Os seguintes relatórios são previstos:
- Reservas de um período
- Clientes Ativos
- Dados dos apartamentos
b) Consultas
Foram previstas as seguintes con-sultas:
- Informações de reservas (dado o có-digo).
- Informações de cliente.
- Informações de apartamentos.
4.1.5 Características
As seguintes características do sistema são destacadas:
- Trabalha de forma on-line, via Ter-minais ou micros (emulando);
- Atualiza informações on-line e em tempo real;
- São necessários procedimentos de recuperação que minimizem a inter-venção do operador;
- A navegação é feita através de menu;
- Desenvolvido em linguagem de quarta geração;
- Possui seu próprio banco de dados;
- Será utilizada a atual configuração do equipamento;
- Existem grandes picos de transações mensais;
- Sistema voltado ao usuário final.
4.2 Gráficos
4.2.1 Modelo de Dados
4.2.2 Diagrama de Contexto
4.3 Lay-Out de Arquivos
4.3.1 Arquivo de Reservas – ver Tabela 1
4.3.2 Arquivo de Apartamentos – ver Tabela 2
4.3.3 Arquivo de Clientes – ver Tabela 3
4.3.4 Arquivo de Funcionário – verTabela 4
4.4 Lay-Out de Tela
4.4.1 Registro de Reservas
Registro de Reservas
Número da Reserva [.......................... ]
Matrícula Funcionário [ ...............................]
Código do Cliente [ .............................]
Data Reserva [ ..................................]
Período: Início [ ..............................]
Fim [ ...................]
Tipo apto [ .....................]
Pessoa: Sobrenome [ .........................]
Nome [ .............................]
(a) Arquivos Referenciados
- Arquivo Reservas
- Arquivo Funcionários
- Arquivo Clientes
(b) Regras de Validação
- Verificar se reserva existe
- Validar data (reserva, início e fim)
- Verificar se funcionário está cadastrado
- Verificar se cliente está cadastrado
4.3.1 Arquivo de Reservas - Tabela 1
Itens de Dados |
Tamanho |
Tipo |
Decimal |
Numero da Reserva |
4 |
numérico |
|
Matrícula Funcionário |
6 |
numérico |
|
Código do Cliente |
5 |
numérico |
|
Data da Reserva |
6 |
numérico |
|
Período Inicio |
6 |
numérico |
|
Período Fim |
4 |
numérico |
|
Tipo Apto |
1 |
alfa |
|
Pessoas Sobrenome |
20 |
alfa |
|
Pessoas nome |
20 |
alfa |
4.3.2 Arquivo de Apartamentos - Tabela 2
Itens de dado |
Tamanho |
Tipo |
Decimal |
Numero Apto |
5 |
numérico |
|
Tipo |
1 |
alfa |
4.3.3 Arquivo de Clientes - Tabela 3
Itens de Dados |
Tamanho |
Tipo |
Decimal |
Código do Cliente |
5 |
numérico |
|
Tipo Classe |
3 |
alfa |
|
Nome Cliente |
40 |
alfa |
|
Tipo Pessoa |
1 |
alfa |
|
CGC / CPF |
14 |
numérico |
|
Endereço |
30 |
alfa |
|
Pessoa Contato |
20 |
alfa |
|
Telefone |
8 |
alfa |
|
Matrícula Funcionário |
6 |
numérico |
4.3.4 Arquivo de Funcionário - Tabela 4
Itens de Dados |
Tamanho |
Tipo |
Decimal |
Matrícula Funcionário |
6 |
numérico |
|
Nome Funcionário |
40 |
alfa |
|
Função |
5 |
alfa |
|
Salário |
12 |
numérico |
2 |
CPF |
9 |
numérico |
|
Endereço |
30 |
alfa |
|
Telefone |
8 |
alfa |
4.4.2 Alteração de Reservas
Alteração de Reservas
Número da Reserva [ ..........................]
Matrícula Funcionário [ ...........................]
Código do Cliente [ .......................]
Data Reserva [ ....................]
Período: Início [....................... ]
Fim [ .........................]
Tipo apto [ .......................]
Pessoa: Sobrenome [ .......................]
Nome [ .............................]
(a) Arquivos referenciados
- Arquivo Reservas
- Arquivo Funcionários
- Arquivo Clientes
(b) Regras de Validação
- Verificar se reserva existe
- Validar data (reserva, início e fim )
- Verificar se funcionário está cadastrado
- Verificar se cliente está cadastrado
4.4.3 Exclusão de Reservas
Exclusão de Reservas
Número da Reserva [ .............................]
Matrícula Funcionário [ ................................]
(a) Arquivos Referenciados
- Arquivo Reservas
- Arquivo Funcionários
(b) Regras de Validação
- Verificar se funcionário está cadastrado
- Verificar se reserva existe
4.4.4 Consulta de Reservas
Consulta de Reservas
Informe número reserva [............................... ]
Nome funcionário:.....................................................................
Nome cliente.....................................................................
Data reserva ....../....../......
Período: Início .......................
Fim .......................
Tipo apto .......................
Pessoa: Sobrenome .......................
Nome .......................
(a) Arquivos referenciados
- Arquivo Reservas
- Arquivo Funcionários
- Arquivo Clientes
(b) Regras
- Esta consulta será feita a todas as reservas ativas
4.4.5 Manutenção do Cadastro de Apartamentos
Cadastro de Apartamentos
Informe operação [................................ ]
I - incluir
A - alterar
E - excluir
C - consultar
Número [ ..........................]
Tipo [ ......................]
(a) Arquivo referenciado
- Arquivo Apartamentos
(b) Regras de validação
- Validar Tipo, se S, D, ou T
- Verificar se operação é válida
- Verificar se apartamento está cadastrado
4.4.6 Manutenção do Cadastro de Clientes
Cadastro de Clientes
Informe operação [........................ ]
I - incluir
A - alterar
E - excluir
C - consultar
Código cliente [............................ ]
Tipo (VIP/STD) [.............................. ]
Nome [.............................. ]
Tipo (Fis/Jur) [ ..........................]
CGC [............................... ]
CPF [ .................................]
Endereço [............................... ]
Pessoa de contato [ ..............................]
Telefone [ .................................]
Matrícula [ ...................................]
Funcionário ....................
(a) Arquivos referenciados
- Arquivo Clientes
- Arquivo Funcionários (não referenciado para exclusão)
(b) Regras
- Validar CPF/CGC
- Validar Tipo
- Verificar se funcionário está cadastrado
- Verificar se cliente está cadastrado
- Verificar se operação é válida
4.5 Lay-Out de Relatórios
4.5.1 Relatórios de Reservas
- Relatório de Reservas
- Data: 10/04/97
Sobrenome Nome Tipo Período
Apto Início Fim
----------------------------------------------------------
Silva João Antônio S 10/03/97 10/04/97
(a) - Arquivo referenciado
- Arquivo reservas
(b) Regras
- Este relatório deverá estar classificado por sobrenome e nome
4.5.2 Relatórios de Apartamentos
Relatório de Apartamentos
Data: 10/04/97
NÚMERO TIPO
---------------------------------------------------------
101 S
(a) - Arquivo referenciado
- Arquivo apartamentos
(b) Regras
- Relacionar todos os apartamentos cadastrados
4.5.3 Relatório de Clientes
Relatório de Clientes
Data: 10/04/97
Código Nome Tipo Contato
0001234 Comércio e Indústria S José da Silva
(a) - Arquivo referenciado
- Arquivo clientes
(b) Regras
- Listar todos os clientes cadastrados
4.6 Sistema de Reservas-Projeto de Desenvolvimento – Solução do Exemplo
4.6.1 Identificar Funções do Sistema
- Arquivos Lógicos Internos
- Reservas
- Apartamentos
- Clientes
- Arquivo Lógico Externo
- Funcionários
- Entradas Externas
- Registro de Reservas
- Alteração de Reservas
- Exclusão de Reserva
- Cadastramento de Apartamentos
- Alterações de Apartamentos
- Exclusão de Apartamentos
- Cadastramento de Clientes
- Alteração de Clientes
- Exclusão de Clientes
- Saídas Externas
- Relatório de Reservas
- Relatório de Apartamentos
- Relatório de Clientes
- Consultas
- Consulta de Reservas
- Consulta de Clientes
- Consulta de Apartamentos
4.6.2 Classificar as Funções – Tabela 5
Arquivo de Reservas
Itens de Dados |
Tamanho |
Tipo |
Decimal |
Número da Reserva |
4 |
numérico |
|
Matrícula Funcionário |
6 |
numérico |
|
Código do Cliente |
5 |
numérico |
|
Data da Reserva |
6 |
numérico |
|
Período Início |
6 |
numérico |
|
Período Fim |
4 |
numérico |
|
Tipo Apto |
1 |
alfa |
|
Pessoa Sobrenome |
20 |
alfa |
|
Pessoa Nome |
20 |
alfa |
Reservas
Tipo: Arquivo Interno
Total de Itens: 9
Tipos de Registro: 1
Classificação: Simples
Arquivo de Apartamentos – Tabela 6
Itens de Dados |
Tamanho |
Tipo |
Decimal |
Número Apto |
5 |
numérico |
|
Tipo |
1 |
alfa |
Tipo: Arquivo Interno
Total de Itens: 2
Tipos de Registro: 1
Classificação: Simples
Arquivo de Clientes – Tabela 7
Itens de Dados |
Tamanho |
Tipo |
Decimal |
Código do cliente |
5 |
numérico |
|
Tipo classe |
3 |
alfa |
|
Nome cliente |
40 |
alfa |
|
Tipo pessoa |
1 |
alfa |
|
CGC / CPF |
14 |
numérico |
|
Endereço |
30 |
alfa |
|
Pessoa contato |
20 |
alfa |
|
Telefone |
8 |
alfa |
|
Matrícula funcionário |
6 |
numérico |
Tipo: Arquivo Interno
Total de Itens: 9
Tipos de Registro: 1
Classificação: Simples
Arquivo de funcionário – ver Tabela 8
Tipo: Arquivo Interface Externa
Total de Itens: 7
Tipos de Registro: 1
Classificação: Simples
Registro de Reservas
Registro de Reservas
Número da Reserva [................................. ]
Matrícula Funcionário [ ...................................]
Código do Cliente [ .............................]
Data Reserva [ .....................................]
Período: Início [ ...............................]
Fim [ .....................................]
Tipo apto [ ..............................]
Pessoa: Sobrenome [ ..................................]
Nome [ ....................................]
Arquivo de funcionário – Tabela 8
Itens de Dados |
Tamanho |
Tipo |
Decimal |
Matrícula Funcionário |
6 |
numérico |
|
Nome Funcionário |
40 |
alfa |
|
Função |
5 |
alfa |
|
Salário |
12 |
numérico |
2 |
CPF |
9 |
numérico |
|
Endereço |
30 |
alfa |
|
Telefone |
8 |
alfa |
Funções Identificadas
(a) Registro de Reservas
Tipo: Entrada Externa
Total de Itens: 9
Arquivos Referenciados Reservas
Clientes Funcionário (externo)
Total de Arquivos: 3
Classificação: Complexa
(b) Mensagens de Erro - Registro de Reservas
Tipo: Saída Externa
Total de Itens: 6
Arquivos Referenciados: Reservas Clientes Funcionários (externo)
Total de Arquivos: 3
Classificação: Média
Alteração de Reservas
Alteração de Reservas
Número da Reserva [........................... ]
Matrícula Funcionário [ ............................]
Código do Cliente [ ...........................]
Data Reserva [ ............................]
Período: Início [ ...............................]
Fim [ ................................]
Tipo apto [ ...............................]
Pessoa: Sobrenome [............... ]
Nome [ ................................]
Funções Identificadas
(a) Alteração de Reservas
Tipo: Entrada Externa
Total de Itens: 9
Arquivos Referenciados Reservas Clientes Funcionário (externo)
Total de Arquivos: 3
Classificação: Complexa
(b) Mensagens de Erro - Alteração de Re-servas
Tipo: Saída Externa
Total de Itens: 6
Arquivos Referenciados: Reservas Clientes Funcionários (externo)
Total de Arquivos: 3
Classificação: Média
Exclusão de Reservas
Exclusão de Reservas
Número da Reserva [............................. ]
Matrícula Funcionário [ ...........................]
Funções Identificadas
(a) Exclusão de Reservas
Tipo: Entrada Externa ==è (do ponto de vista FPA)
Total de Itens: 2
Arquivos Referenciados: Reservas Funcionário (externo)
Total de Arquivos: 2
Classificação: Simples
(b) Mensagens de Erro - Exclusão de Reservas
Tipo: Saída Externa
Total de Itens: 2
Arquivos Referenciados: Reservas Funcionários (externo)
Total de Arquivos: 2
Classificação: Simples
Consulta de Reservas
Consulta de Reservas
Informe número reserva [............................ ]
Nome funcionário:.....................................................................
Nome cliente.....................................................................
Data reserva ....../....../......
Período: Início .......................
Fim .......................
Tipo apto .......................
Pessoa: Sobrenome .......................
Nome .......................
Funções Identificadas
Consulta de Reservas
Tipo: Consulta
Total de Itens: Entrada - 1
Saída - 8
Arquivos Referenciados Entrada Reservas (Número,Data)
Saída Reservas (Número, Data)
Clientes Funcionários (externo)
Total de Arquivos: Entrada 1
Saída 3
Classificação: Médio
Manutenção do Cadastro de Apartamentos
Cadastro de Apartamentos
Informe operação [................................... ]
I - incluir
A - alterar
E - excluir
C - consultar
Número [.............................. ]
Tipo [ ...............................]
Funções Identificadas
(a) Inclusão de Apartamentos
Tipo: Entrada Externa
Total de Itens: 3
Arquivos Referenciados: Apartamentos
Total de Arquivos: 1
Classificação: Simples
(b) Alteração de Apartamentos
Tipo: Entrada Externa
Total de Itens: 3
Arquivos Referenciados: Apartamentos
Total de Arquivos: 1
Classificação: Simples
(c) Exclusão de Apartamentos
Tipo: Entrada Externa
Total de Itens: 2
Arquivos Referenciados: Apartamentos
Total de Arquivos: 1
Classificação: Simples
(d) Consulta de Apartamentos
Tipo: Consulta
Total de Itens: Entrada 2
Saída 1
Arquivos Referenciados: Entrada Apartamentos
Saída Apartamentos
Total de Arquivos: Entrada 1
Saída 1
Classificação: Simples
(e) Mensagens de Erro - Inclusão de Apartamentos
Tipo: Saída Externa
Total de Itens: 3
Arquivos Referenciados: Apartamentos
Total de Arquivos: 1
Classificação: Simples
(f) Mensagens de Erro - Alteração de Apar-tamentos
Tipo: Saída Externa
Total de Itens: 3
Arquivos Referenciados: Apartamentos
Total de Arquivos: 1
Classificação: Simples
(g) Mensagens de Erro - Exclusão de Apartamentos
Tipo: Saída Externa
Total de Itens: 3
Arquivos Referenciados: Apartamentos
Total de Arquivos: 1
Classificação: Simples
Manutenção do Cadastro de Clientes
Cadastro de Clientes
Informe operação [.............................. ]
I - incluir
A - alterar
E - excluir
C - consultar
Código cliente [.......................... ]
Tipo (VIP/STD) [ .......................]
Nome [ ..............................]
Tipo (Fis/Jur) [ .........................]
CGC [ .............................]
CPF [ .............................]
Endereço [ ......................]
Pessoa de contato [ .............................]
Telefone [ .................................]
Matrícula [ ..............................]
Funcionário ....................
Funções Identificadas
(a) Inclusão de Apartamentos
Tipo: Entrada Externa
Total de Itens: 11
Arquivos Referenciados: Clientes
Funcionários (externo)
Total de Arquivos: 2
Classificação: Médio
(b) Alteração de Clientes
Tipo: Entrada Externa
Total de Itens: 11
Arquivos Referenciados: Clientes Funcionários (externo)
Total de Arquivos: 2
Classificação: Simples
(c) Exclusão de Clientes
Tipo: Entrada Externa
Total de Itens: 2
Arquivos Referenciados: Clientes
Total de Arquivos: 1
Classificação: Simples
(d) Consultas de Clientes
Tipo: Consulta
Total de Itens: Entrada 2
Saída 10
Arquivos Referenciados: Entrada Clientes
Saída Clientes
Funcionários (externo)
Total de Arquivos: Entrada 1
Saída 2
Classificação: Médio
(e) Mensagens de Erro - Inclusão de Clien-tes
Tipo: Saída Externa
Total de Itens: 5
Arquivos Referenciados: Clientes
Funcionários (externo)
Total de Arquivos: 2
Classificação: Simples
(f) Mensagens de Erro - Alteração de Clien-tes
Tipo: Saída Externa
Total de Itens: 5
Arquivos Referenciados: Clientes
Funcionários (externo)
Total de Arquivos: 2
Classificação: Simples
(g) Mensagens de Erro - Exclusão de Clien-tes
Tipo: Saída Externa
Total de Itens: 2
Arquivos Referenciados: Clientes
Total de Arquivos: 1
Classificação: Simples
Relatório de Reservas
Relatório de Reservas
Data: 10/04/97
Sobrenome Nome Tipo Período
Apto Início Fim
----------------------------------------------------------
Silva João Antônio S 10/03/97 10/04/97
Funções Identificadas
Relatório de Reservas
Tipo: Saída Externa
Total de Itens: 5
Arquivos Referenciados Reservas
Total de Arquivos: 1
Classificação: Simples
Relatórios de Apartamentos
Relatório de Apartamentos
Data: 10/04/97
NÚMERO TIPO
---------------------------------------------------
101 S
Funções Identificadas
Relatório de Apartamentos
Tipo: Saída Externa
Total de Itens: 2
Arquivos Referenciados Apartamentos
Total de Arquivos: 1
Classificação: Simples
Relatório de Clientes
Relatório de Clientes
Data: 10/04/97
Código Nome Tipo Contato
0001234 Comércio e Indústria S José da Silva
Funções Identificadas
Relatório de Clientes
Tipo: Saída Externa
Total de Itens: 4
Arquivos Referenciados Clientes
Total de Arquivos: 1
Classificação: Simples
RESUMO DAS FUNÇÕES
Tipo de Função - Arquivo Lógico Interno – Tabela 9
Descrição da Função |
Reg |
Itens |
S |
M |
C |
Arquivo de Reservas |
1 |
9 |
X |
||
Arquivo de Apartamentos |
1 |
2 |
X |
||
Arquivo de Clientes |
1 |
9 |
X |
||
* * TOTAL DE ARQUIVOS LÓGICOS INTERNOS *** |
3 |
Tipo de Função – Arquivo de Interface Externa – Tabela 10
Descrição da
Função |
Reg |
Itens |
S |
M |
C |
Arquivo de
Funcionários |
1 |
2 |
X |
||
*** TOTAL DE ARQUIVOS DE INTERFACE EXTERNA *** |
1 |
Tipo de Função - Entradas Externas – Tabela 11
Descrição da Função | Arq | Itens | S | M | C |
Registro de reservas | 3 | 9 | X | ||
Alteração de reservas | 3 | 9 | X | ||
Exclusão de reservas | 2 | 2 | X | ||
Inclusão de apartamentos | 1 | 3 | X | ||
Alteração de apartamentos | 1 | 3 | X | ||
Exclusão de apartamentos | 1 | 2 | X | ||
Inclusão de clientes | 2 | 11 | X | ||
Alteração de clientes | 2 | 11 | X | ||
Exclusão de clientes | 1 | 2 | X | ||
* * * TOTAL DE ENTRADAS EXTERNAS * * * | 5 | 2 | 2 |
Tipo de Função - Saídas Externas – ver Tabela 12
Tipo de Função - Consultas Externas– ver Tabela 13
4.6.3 Cálculo dos Pontos por Função Não-Ajustados
Uma vez os componentes de uma aplicação tenham sido identificados e categorizados nos vários tipos de funções (arquivos, interfaces, entrada, saídas e consultas), cada componente é então associado a um valor de pontos por função não-ajustados, dependendo do tipo de função e de sua complexidade funcional.
O valor dos pontos por função não ajustados de cada componente é então totalizado por tipo de função e finalmente por aplicação. O resultado é o valor dos pontos por função não-ajustados da aplicação.
EXEMPLO: Após a identificação e classificação das funções do sistema de reservas - projeto de desenvolvimento, temos condições de calcular os pontos por função não-ajustados desta aplicação.
Tipo de Função | Complexidade Funcional | Total Complexidade | Total Tipo Função |
Arquivo | 3 Simples X 7 =
Média X 10 = Complexa X 15 = |
21 |
21 |
Interface | 1 Simples X 5 =
Média X 7 = Complexa X 10 = |
5 |
5 |
Entrada | 5 Simples X 3 =
2 Média X 4 = 2 Complexa X 6 = |
15 8 12 |
35 |
Saída | 10 Simples X 4 =
2 Média X 5 = Complexa X 7 = |
40 10 |
50 |
Consulta | 1 Simples X 3 =
2 Média X 4 = Complexa X 6 = |
3 8 |
11 |
*** Total de Pontos por Função Não-Ajustados = 122 |
Tipo de Função - Saídas Externas – Tabela 12
Descrição da Função | Arq | Itens | S | M | C |
Relatório de reservas | 1 | 5 | X | ||
Relatório de apartamentos | 1 | 2 | X | ||
Relatório de clientes | 1 | 4 | X | ||
Mensagens de Erro(Registro de reservas) | 3 | 6 | X | ||
Mensagens de Erro(Alteração de reservas) | 3 | 6 | X | ||
Mensagens de Erro(Exclusão de reservas) | 2 | 2 | X | ||
Mensagens de Erro(Inclusão de apartamentos) | 1 | 3 | X | ||
Mensagens de Erro(Alteração de apartamentos) | 1 | 3 | X | ||
Mensagens de Erro(Exclusão de apartamentos) | 1 | 3 | X | ||
Mensagens de Erro(Inclusão de clientes) | 2 | 5 | X | ||
Mensagens de Erro(Alteração de clientes) | 2 | 5 | X | ||
Mensagens de Erro(Exclusão de clientes) | 1 | 2 | X | ||
*** TOTAL DE SAÍDAS EXTERNAS *** | 10 | 2 |
Tipo de Função - Consultas Externas - Tabela 13
Descrição da Função | ENTRADA | SAÍDA | ||||||||||
A | I | A | I | S | M | C | ||||||
Consulta de reservas | 1 | 1 | 3 | 8 | X | |||||||
Consulta ao cadastro de apartamentos | 1 | 2 | 1 | 1 | X | |||||||
Consulta ao cadastro de clientes | 1 | 2 | 2 | 10 | X | |||||||
*** TOTAL DE CONSULTAS EXTERNAS *** | 1 | 2 |
O sexto artigo da série, mostrará um exemplo completo de projeto de desenvolvimento utilizando a técnica FPA, aguardem ...
Referências Bibliográficas:
Citadas no quarto artigo, na edição anterior, Bate Byte nº 70, referente ao mês de novembro, p. 24.