Escolar Documentos
Profissional Documentos
Cultura Documentos
1
“Não se consegue controlar o que
não se consegue medir.”
2
Bibliografia
"Function Point Analysis: Measurement
Practices for Successful Software Projects", de
David Garmus e David Herron
"Análise de Pontos de Função: Medição,
Estimativas e Gerenciamento de Projetos de
Software", de Carlos Vazquez, Gulherme Simões e
Renato Albert
3
Referências On Line
http://www.ifpug.org
http://www.bfpug.com.br
http://www.isbsg.org.au
4
Conteúdo
O que é APF ?
Objetivos da Técnica
Como se Calcula – Processo de Contagem
Definições
Tipo de Contagem
Funções de Dados
Funções de Transação
Cálculo dos Pontos não Ajustados
Fator de Ajuste
Cálculo dos Pontos Ajustados
Dúvidas e Dicas
Prática – Exemplo e exercícios
5
O que é APF ?
“É uma medida de dimensionamento
de software através da funcionalidade
implementada em um sistema, sob o
ponto de vista do usuário.”
6
Objetivos da Técnica
Medir o que foi requisitado e recebido pelo usuário
(visão do usuário);
Medir independentemente da tecnologia utilizada
para implementação (linguagem, método,
plataforma);
Prover uma métrica de medição para apoiar a
análise de produtividade e qualidade;
Prover uma forma de estimar o tamanho do
software; e
Prover um fator de normalização para comparação
de software.
7
Benefícios da Técnica
Determinar o tamanho de um produto adquirido
através da contagem de todas as funções incluídas –
é saber o que se está comprando.
Auxilia a análise do tipo make or buy
Auxilia a análise de produtividade e qualidade
Apoia o gerenciamento de escopo de projetos
(aumento ou diminuição do escopo).
Complementa o gerenciamento dos requisitos
(solidez e completeza).
8
Benefícios da Técnica
Estimar custo e recursos para o desenvol-
vimento e manutenção de software.
Meio para fundamentar a negociação de
contratos.
Comparativo de softwares ou produtividade.
9
Definições
Escopo da contagem – define quais
funcionalidades (de uma ou mais
aplicações) serão incluídas em uma
determinada contagem.
Fronteira da aplicação – é a interface
conceitual que delimita o software que
será medido e o mundo exterior.
10
Definições
Processo elementar – menor unidade de
atividades significativa para o usuário. Deve
ser completo em si mesmo, independente, e
deixar o negócio da aplicação em estado
consistente.
Arquivo Lógico Interno (ALI) – são os dados
ou informações mantidas pela aplicação a
ser contada.
Arquivo de Interface Externa (AIE) – são os
dados lidos de outra aplicação.
11
Definições
Entrada Externa (EE) – É a função que faz a
manutenção dos dados da aplicação.
Saída Externa (SE) – É a função que tem
processamento da informação a ser exibida.
Consulta Externa (CE) – É uma consulta
simples da informação armazenada na
aplicação.
12
Como se Calcula:
1. A definição do propósito da contagem deve ser feita
definindo-se o tipo de contagem e identificando-se
o escopo da contagem e a fronteira da aplicação.
2. O cálculo dos pontos não ajustados é feito em
seguida, identificando-se e classificando as Funções
de Dados e de Transação.
3. Deve ser determinado e calculado o fator de ajuste.
4. Finalmente calcula-se o valor dos pontos por função
ajustados aplicando-se a fórmula adequada.
13
Como se Calcula – Processo de Contagem
Contar 2
Funções do Tipo
Dados Calcular
Contagem de
Pontos de 4
Função não
Contar Ajustados
Determinar 1 Definir a Fronteira Funções do Tipo Calcular
da Aplicação e Transação Número de
o Tipo de
o Escopo da Pontos de
Contagem
Contagem Função
Determinar/Calcular Ajustados
Valor do
Fator de Ajuste
14
1- Definir Propósito da Contagem
Para esta definição devemos:
Identificar o tipo de contagem;
Definir a fronteira da aplicação;
Definir o escopo da contagem.
15
1.1- Identificar o Tipo de
Contagem
Projeto de Desenvolvimento – para a primeira
instalação do software, conta também se houver
atividade de conversão de dados (do sistema antigo
para o novo – que está sendo contado).
Projeto de Melhoria – é a contagem para
manutenção de um sistema, exclusão, alteração ou
inclusão de funcionalidades.
Aplicação – também chamado de baseline é a
contagem real de um software ou parte dele.
16
1.2- Definir a Fronteira Aplicação
Para determinação da fronteira:
Deve ter base no ponto de vista do
usuário. O foco deve estar no que ele
pode entender e descrever;
A fronteira entre aplicações deve ser
baseada na separação das funções
conforme estabelecido pelo negócio e
não em considerações tecnológicas;
17
1.2- Definir a Fronteira Aplicação
Para determinação da fronteira (cont.):
Em projetos de melhoria, a fronteira
estabelecida no início do projeto deve
estar de acordo com a fronteira
estabelecida para a aplicação.
18
1.3- Definir o Escopo Contagem
O escopo da contagem pode abranger:
Todas as funcionalidades disponíveis;
Funcionalidades efetivamente utilizadas
pelo usuário;
Algumas funcionalidades específicas
(relatórios, módulos, etc)
19
2- Cálculo dos pontos não ajustados
Para o cálculo dos pontos não
ajustados devemos:
Identificar as funções de dados e de
transação da aplicação;
Identificar a complexidade de cada um;
Atribuir o valor dos pontos
(contribuição);
Somar o total dos pontos encontrados.
20
2.1- Contar Funções de Dados
Arquivo Lógico Interno (ALI) – um grupo de
dados ou informações de controle;
identificável pelo usuário; logicamente
relacionados; mantido dentro da fronteira da
aplicação.
A principal intenção de um ALI é armazenar
dados mantidos por meio de um ou mais
processos elementares da aplicação.
21
2.1- Contar Funções de Dados
Exemplos de ALI:
Tabelas que armazenam dados mantidos pela aplicação;
Arquivos de configuração mantidos pela aplicação;
Arquivos de segurança de acesso à aplicação (senhas),
mantidos por ela;
Arquivos de help, desde que mantidos pela aplicação;
Arquivos de mensagens de erro, desde que mantidos pela
aplicação;
Arquivos mantidos não só pela aplicação, mas também
por outra aplicação.
22
2.1- Contar Funções de Dados
Não-Exemplos de ALI:
Arquivos temporários, de trabalho ou de
classificação
Arquivos gerados para processamento em outra
aplicação.
Arquivos de backup;
Arquivos introduzidos exclusivamente em função
da tecnologia utilizada;
Arquivos de índices;
Operações de junção e projeção, visões (views).
23
2.1- Contar Funções de Dados
Arquivo de Interface Externa (AIE) – é um
grupo de dados ou informações de controle;
identificável pelo usuário; logicamente
relacionados; referenciado (lido) pela
aplicação.
A principal intenção de um AIE é armazenar
dados referenciados por meio de um ou mais
processos elementares dentro da fronteira
da aplicação. Um AIE deve ser um ALI de
outra aplicação.
24
2.1- Contar Funções de Dados
Exemplos de AIE:
Dados de referência externos utilizados pela
aplicação;
Arquivos de help, desde que mantidos por outra
aplicação;
Arquivos de mensagens de erro, desde que
mantidos por outra aplicação.
25
2.1- Contar Funções de Dados
Não-Exemplos de AIE:
Arquivos de movimento recebidos de outra
aplicação para manter um ALI;
Dados mantidos pela aplicação e utilizados por
outra aplicação;
Dados formatados e processados para uso de
outras aplicações.
26
Tabela de Complexidade ALI e AIE
1 a 19 itens de 20 a 50 itens 51 ou mais
dados de dados itens de dados
referenciados referenciados referenciados
2 a 5 registros
SIMPLES MÉDIA COMPLEXA
lógicos
6 ou mais
MÉDIA COMPLEXA COMPLEXA
registros
lógicos
27
2.2- Funções de Transação (EE)
Entrada Externa - É um processo
elementar, que processa dados ou
informações de controle recebidos de
fora da fronteira da aplicação, cuja
principal intenção é manter um ou mais
ALIs e/ou modificar o comportamento
do sistema.
28
2.2- Funções de Transação (EE)
Exemplos de EE:
Telas de inclusão, exclusão ou de
alteração
Entradas batch que mantém um ALI
Importar dados de outras aplicações
29
2.2- Funções de Transação (EE)
Tabela de Complexidade (EE)
1 a 4 itens de 5 a 15 itens de 16 ou mais
dados dados itens de dados
referenciados referenciados referenciados
2 arquivos
SIMPLES MÉDIA COMPLEXA
referênciados
3 ou mais
MÉDIA COMPLEXA COMPLEXA
arquivos
referênciados
30
2.2- Funções de Transação (SE)
Saída Externa - É um processo elementar,
que envia dados ou informações de controle
para fora da fronteira da aplicação, cuja
principal intenção é apresentar informação
ao usuário por meio de lógica de
processamento (fórmula, cálculo criar dados
derivados) que não seja apenas a
recuperação de dados ou informações de
controle. Pode manter um ou mais ALIs e/ou
alterar o comportamento do sistema.
31
2.2- Funções de Transação (CE)
Consulta Externa - É um processo elementar,
que envia dados ou informações de controle
para fora da fronteira da aplicação, cuja
principal intenção é apresentar informação
ao usuário por meio de uma simples
recuperação de dados ou informações de
controle de um ALI ou AIE. Não contém
fórmulas ou cálculos, não mantêm ALIs nem
altera o comportamento do sistema.
32
2.2- Funções de Transação (CE)
Tabela de Complexidade (SE ou CE)
1 a 5 itens de 6 a 19 itens de 20 ou mais
dados dados itens de dados
referenciados referenciados referenciados
2 ou 3 arquivos
SIMPLES MÉDIA COMPLEXA
referênciados
4 ou mais
MÉDIA COMPLEXA COMPLEXA
arquivos
referênciados
33
Tabela de Contribuição
Funções de Dados e de Transações
Nível de Complexidade
34
Sumário da Lógica de Processamento
Usadas por Funções de Transação
Tipo de Lógica de Processamento EE SE CE
Validações pode pode pode
Cálculos e fórmulas matemáticas pode Deve* não
Conversão em valores equivalentes pode pode pode
Filtros e seleção de dados com base em critérios específicos na comparação de vários conjuntos dados pode pode pode
Análise de condições para que se determine quais se aplicam pode pode pode
Atualização de pelo menos um ALI Deve* Deve* não
Referencia pelo menos um ALI ou AIE pode pode deve
Recuperação de dados ou informações de controle pode pode deve
Criação de dados derivados pode Deve* não
Alteração do comportamento do sistema Deve* Deve* não
Preparação e apresentação de informação para fora da fronteira pode deve deve
Capacidade de aceitar dados ou informação de controle que entra pela fronteira deve pode pode
Mudança da ordenação ou organização de um conjunto de dados (não suficiente para garantir pode pode pode
unicidade do PE)
35
5- Cálculo dos Pontos não Ajustados
36
Fator de Ajuste
O valor do FATOR DE AJUSTE é calculado a partir de 14
características gerais dos sistemas, que permitem uma
avaliação geral da funcionalidade da aplicação. Estas
características são:
1. Comunicação de Dados
2. Processamento Distribuído
3. Performance
4. Utilização do Equipamento
5. Volume de Transações
6. Eficiência do Usuário Final
7. Entrada de dados “on-line”
37
Fator de Ajuste
8. Atualização “on-line”
9. Processamento Complexo
10. Reutilização de Código
11. Facilidade de Implantação
12. Facilidade Operacional
13. Mútiplos Locais
14. Facilidade de Mudanças
38
Fator de Ajuste
Fórmula:
Fator de Ajuste = ( NI * 0,01 ) +
0,65
Nível de Influência (NI)
0 - Nenhuma influência
Para cada um dos 14 índices 1 - Influência mínima
deve ser analisado o NI, somado 2 - Influência moderada
e então aplicado à fórmula. 3 - Influência média
4 - Influência significativa
5 - Grande influência
39
Cálculo dos Pontos Ajustados
40
Dúvidas e Dicas
Tenho várias consultas na tabela de clientes, uma
consulta detalhada retornando quase todos os itens
de dados da tabela e em outra tela tenho uma lista
de clientes mostrando apenas CPF e Nome – Como
contar ?
Neste caso serão contadas duas Consultas Externas
Em uma funcionalidade de alteração altero um
campo mas consulto outros n itens. Quantos itens
de dados tenho, um ou n+1 ?
Os itens de dados devem ser somados (n+1)
Como pontuar a manutenção de um sistema que só
terá seu padrão visual alterado ?
Neste caso a contagem de ponto de função não será útil.
41
Dúvidas e Dicas
Como classificar um arquivo texto que é importado
pelo sistema ?
A importação é uma Entrada Externa pois alimentam ALIs.
Mesmo se a aplicação atualizar a data da importação
no arquivo texto ?
Não pode ser contado como ALI pois os itens de dados são
contados dentro das tabelas do banco; não pode ser AIE pois
têm manutenção nos dados, portanto deve ser contado como
EE e para esta função contar também a data como item de
dados.
42
Dúvidas e Dicas
Uma gravação em disquete com dados da
base, é uma CE ou SE ?
Se a extração tiver processamento (cálculo de registros) é SE
se for cópia da base é CE.
Tenho um relatório que é somente extração da
base, mas sendo que se ultrapassar o limite de 100
linhas o relatório sai em arquivo. Como pontuar ?
Neste caso devemos contar como SE, pois há o cálculo das
linhas e é de conhecimento do usuário que o relatório
ultrapassar o limite (há contagem de linhas) o relatório será
gravado em disco, senão será impresso.
43
Dúvidas e Dicas
O meu sistema tem uma tela para atualizar o
endereço do trabalhador e irá utilizar um
método e uma tabela de outro sistema para
atualizar os registros, como deve ser
contado isso ?
De acordo com a descrição acima, o sistema a ser contado
tem um processo elementar (atualizar trabalhador) que
deverá ser contado como uma EE e esta terá um arquivo
referenciado (o ALI trabalhador).
44
Prática – Exemplo e exercícios
45