Professional Documents
Culture Documents
ÍNDICE
1. INTRODUÇÃO ....................................................................................................................................................... 3
1.1 - HISTÓRICO ......................................................................................................................................................... 3
2. VISÃO GERAL DA FPA ...................................................................................................................................... 5
2.1. OBJETIVOS DA ANÁLISE POR PONTOS DE FUNÇÃO .............................................................................. 5
2.2. APLICAÇÕES DA FPA.................................................................................................................................... 6
2.3. TIPOS DE CÁLCULO DA TÉCNICA FPA...................................................................................................... 6
2.4. VISÃO GERAL DE UMA APLICAÇÃO ......................................................................................................... 7
2.5. RESUMO DO CÁLCULO DE PONTOS DE FUNÇÃO ................................................................................................... 7
3. REGRAS DE CONTAGEM................................................................................................................................... 9
3.1. IDENTIFICAÇÃO E CLASSIFICAÇÃO DE FUNÇÕES ................................................................................................. 9
3.2. EXEMPLO ...................................................................................................................................................... 23
3.3. EXERCÍCIO.................................................................................................................................................... 24
3.4. CARACTERÍSTICAS GERAIS DOS SISTEMAS......................................................................................... 25
3.5. EXEMPLO ...................................................................................................................................................... 31
3.6. EXERCÍCIO.................................................................................................................................................... 31
4. CÁLCULO DE PONTOS DE FUNÇÃO ........................................................................................................... 31
4.1. CÁLCULO DE PONTOS DE FUNÇÃO NÃO AJUSTADOS....................................................................... 31
4.2. CÁLCULO DO FATOR DE AJUSTE............................................................................................................. 33
4.3. CÁLCULO DE PONTOS DE FUNÇÃO AJUSTADOS ................................................................................. 34
5 DIMENSIONANDO PROJETOS COM FPA .................................................................................................... 41
5.1. MÉTODO DE ESTIMATIVA POR PERCENTUAL..................................................................................... 41
5.2. EXEMPLO ...................................................................................................................................................... 43
5.3. EXERCÍCIO.................................................................................................................................................... 43
6. APÊNDICE........................................................................................................................................................... 44
A. APLICAÇÕES DA TÉCNICA FPA .................................................................................................................. 44
Análise de Pontos de Função 3
1. INTRODUÇÃO
Atualmente, o nível de competitividade das organizações está diretamente ligado à eficiência
de seus sistemas de informação, que estão cada vez mais baseados em computadores. Com o
amadurecimento desses sistemas, o volume dos programas vem aumentando e assim os custos
de desenvolvimento e manutenção vão se tornando parâmetros críticos para gerenciamento.
1.1 - Histórico
Por pelo menos uns cem anos, a definição econômica padrão de produtividade tem sido “bens
ou serviços produzidos por unidade de trabalho e custo”. Esta definição era extremamente
difícil de ser aplicada ao software devido à discordância sobre o que exatamente constituía
“bens ou serviços” num projeto de desenvolvimento de aplicação.
Procurando desenvolver uma forma de medida de sistemas que fosse aceitável e consistente,
foi gasto muito esforço para tentar formalizar este processo. Algumas técnicas foram
implementadas visando mensurar os sistemas e identificar a produtividade na área de
informática:
Dado o sucesso do estudo, a pesquisa continuou em 1977, dando origem a um sistema que
consiste em registrar para cada programa desenvolvido o número de operadores e operandos
utilizados, permitindo o cálculo do tamanho do programa e o esforço de programação.
Esta medida é independente da linguagem de programação, mas está baseada na sintaxe dos
programas e não considera seu conteúdo. Outra desvantagem é que seu processo é
incompreensível ao usuário final.
Além disso, esta técnica só é aplicável após a codificação dos programas, não permitindo
estimativas em projetos.
Atualmente essa técnica vem sendo muito utilizada nos EUA, Canadá, Reino Unido, Austrália
e Nova Zelândia. Incluídas entre as principais organizações usuárias estão as seguintes
empresas:
(*) Existem ferramentas no mercado, sem certificação do IFPUG, que permitem o cálculo
automático dos Pontos de Função a partir de uma especificação da análise e/ou código-fonte da
aplicação.
Conclusão
A criação dos Pontos de Função causou uma revolução na engenharia de software. O impacto
dos Pontos de Função nos estudos de produtividade de software foi proporcional à invenção do
barômetro e do termômetro de mercúrio para física. Pela primeira vez na história, fatores
importantes que afetam o software puderam ser medidos mais precisamente.
O impacto do IFPUG na indústria também foi significativo. Não existia nenhuma organização
equivalente durante os 45 anos de uso de método de “linhas de código-fonte”, e o caos
resultante dificultou estudos econômicos e ocultou problemas mais profundos devido à métrica
insatisfatória.
A FPA dimensiona software quantificando a funcionalidade que ele proporciona aos usuários
baseado, principalmente, no seu desenho lógico.
conciso para permitir consistência, ao longo do tempo, dos projetos, e entre os usuários da
técnica.
Custo de software
Etc.
Entrada Externa
Transações vindas diretamente do usuário com o objetivo de atualizar os arquivos lógicos
internos. Por exemplo, a atividade de inclusão de um novo funcionário no cadastro.
Saída Externa
São dados extraídos da aplicação, tais como relatórios e mensagens do terminal de vídeo. Por
exemplo, um relatório do cadastro de funcionários em ordem alfabética.
Consulta Externa
Combinação de uma entrada externa e uma saída de dados, isto é, uma requisição de dados que
gera uma aquisição e exibição imediata de dados. Por exemplo, a atividade de consulta de
saldo em um banco onde o correntista informa o número da conta e recebe imediatamente o
valor do seu saldo.
Fronteiras da Aplicação
É necessário delimitar as fronteiras da aplicação que está sendo dimensionada, para se
estabelecer a propriedade dos dados e relacionamentos com aplicações externas.
Para isso, é necessário observar a aplicação sempre do ponto de vista do usuário, e não do
ponto de vista tecnológico, isto é, o que o usuário pode entender e descrever. Através da
especificação e diagramas gráficos, pode-se desenhar uma fronteira ao redor do sistema,
evidenciando o que é interno e o que é externo à aplicação.
Entrada Externa
Saída Externa
Consulta Externa
Cada tipo de função dever ser classificado de acordo com sua complexidade funcional relativa,
como :
SIMPLES
MÉDIA
COMPLEXA
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. Facilidade de Mudanças
Atribui-se um peso de 0 a 5 para cada característica, de acordo com o seu nível de influência
na aplicação.
0 - Nenhuma Influência
1 - Influência mínima
2 - Influência moderada
3 - Influência média
4 - Influência significativa
5 - Grande Influência
3. REGRAS DE CONTAGEM
As regras de contagem da FPA, aqui descritas, estão baseadas no Function Point Counting
Practices Manual - Release 4.0, publicado pelo IFPUG em janeiro de 1994.
Para facilitar inclusões ou modificações à medida que novas regras de contagem da FPA são
aprovadas pelo IFPUG, cada tipo de função descrito nesta seção está organizado da seguinte
forma :
Visão Geral
Definições
Identificação
Exemplos
Classificação
Visão Geral
Análise de Pontos de Função 10
Definições
Arquivo Lógico Interno é um grupo de dados logicamente relacionados ou informações de
controle identificadas pelo usuário, que é utilizado e sofre manutenção dentro da Fronteira da
aplicação.
Informações de Controle são dados utilizados pela aplicação para garantir total conformidade
com os requerimentos das funções do negócio especificadas pelo usuário.
Identificação
(1) Identificar todos os dados ou informações de controle:
Exemplos
São considerados um ou mais Arquivos Lógicos Internos, dependendo da visão do usuário:
Um arquivo que sofre manutenção por mais de uma aplicação deve ser considerado
Arquivo Lógico Interno em todas as aplicações com esta característica.
Arquivos temporários;
Arquivos de trabalho;
Arquivos introduzidos somente por causa da tecnologia utilizada, por exemplo, um arquivo
de parâmetros para um software com WFL, JCL, etc.;
Classificação
Cada Arquivo Lógico Interno deve ser classificado de acordo com sua complexidade funcional
relativa, que é baseada no número de Registros Lógicos e no número de Itens de Dados do
arquivo.
Registro Lógico pode ser definido como um subgrupo de dados reconhecido pelo usuário
dentro de um Arquivo Lógico Interno. Dependendo da visão do usuário, um Arquivo Lógico
Interno pode ter mais de um Registro Lógico.
Há dois tipos de subgrupos de dados que podem ser identificados como registros lógicos:
Mandatórios são aqueles subgrupos de dados que o usuário deve utilizar pelo menos um
durante o processo elementar de criação de um item num Arquivo Lógico Interno;
Opcionais são aqueles subgrupos de dados que o usuário tem a opção de utilizar um ou
nenhum durante o processo elementar de criação de um item num ARquivo Lógico Interno.
As seguintes regras devem ser aplicadas para a contabilização dos registros lógicos:
Considere 1 registro lógico caso o Arquivo Lógico Interno não possua subgrupos.
Cada item de dado ou campo referenciado em um Arquivo Lógico Interno deve ser
contabilizado, considerando as seguintes observações:
Os itens de dados devem ser considerados de acordo com a visão do usuário. Por exemplo,
um número contábil ou data que é armazenado em múltiplos campos dever ser contado
como um único item de dados.
Itens de dados que aparecem mais de uma vez em um Arquivo Lógico Interno por causa da
tecnologia ou técnica de implementação devem ser contados apenas uma vez. Por exemplo,
se um Arquivo Lógico Interno é composto de mais de uma tabela em DBMS relacional, as
chaves utilizadas para relacionar as tabelas são contadas uma única vez.
Campos repetitivos que são idênticos no formato e existem para permitir múltiplas
ocorrências de um determinado item de dados são contados um única vez. Por exemplo, em
um Arquivo Lógico Interno contendo um campo valor-mensal ocorrendo 12 vezes e um
campo valor-anual devemos contar dois itens de dados, um para o campo valor-mensal e
outro para o campo valor-anual.
1 a 19 20 a 50 51 ou mais
itens de dados itens de dados itens de dados
1 SIMPLES SIMPLES MÉDIA
registro lógico
2a5 SIMPLES MÉDIA COMPLEXA
registros lógicos
6 ou mais MÉDIA COMPLEXA COMPLEXA
registros lógicos
Figura 3-1: Tabela de Complexidade de Arquivo Lógico Interno
Visão Geral
Os Arquivos de Interface Externa representam os requerimentos de dados cuja manutenção é
feita fora dos limites da aplicação. Os Arquivos de Iterface Externa contribuem para o Cálculo
de Pontos de Função com base na sua quantidade e complexidade funcional relativa.
Definições
Análise de Pontos de Função 13
Informações de Controle são dados utilizados pela aplicação para garantir total conformidade
com os requerimentos das funções do negócio especificadas pelo usuário.
Identificação
(1) Identificar todos os dados ou informações de controle:
(a) Armazenados fora da Fronteira da Aplicação,
Exemplos
São considerados um ou mais Arquivos de Interface Externa, dependendo da visão do usuário:
Dados de Referência (dados externos utilizados pela aplicação, mas que não utilizados para
manutenção em Arquivos Lógicos Internos)
Dados recebidos de outra aplicação utilizados para adicionar, alterar ou remover dados em
Arquivo Lógico Interno. (Estes dados externos são considerados dados de transação e,
portanto, este processo de manutenção é considerado uma Entrada Externa).
Dados cuja manutenção é feita pela aplicação que está sendo avaliada, mas que são
acessados e utilizados por outra aplicação.
Dados formatados e processados para uso por outra aplicação devem ser considerados uma
Saída Externa.
Classificação
Análise de Pontos de Função 14
Cada Arquivo de Interface Externa deve ser classificado de acordo com sua complexidade
funcional relativa, que é baseada no número de Registros Lógicos e do número de Itens de
Dados do arquivo.
Há dois tipos de subgrupos de dados que podem ser identificados como registros lógicos:
Mandatórios são aqueles subgrupos de dados que o usuário deve utilizar pelo menos um
durante o processo elementar de criação de um item num arquivo.
Opcionais são aqueles subgrupos de dados que o usuário tem a opção de utilizar um ou
nenhum durante o processo elementar de criação de um item num arquivo.
As seguintes regras devem ser aplicadas para a contabilização dos registros lógicos:
Considere 1 registro lógico caso o Arquivo de Interface Externa não possua subgrupos.
Cada item de dado ou campo referenciado de um Arquivo de Interface Externa deve ser
contabilizado, considerando as seguintes observações:
Os itens de dados devem ser considerados de acordo com a visão do usuário. Por exemplo,
um número contábil ou data que é armazenado em múltiplos campos deve ser contado
como um único item de dados.
Itens de dados que aparecem mais de uma vez em um Arquivo de Interface Externa por
causa da tecnologia ou técnica de implementação devem ser contados apenas uma vez. Por
exemplo, se um Arquivo de Interface Externa é composto de mais de uma tabela em um
DBMS relacional, as chaves utilizadas para relacionar as tabelas são contadas uma única
vez.
Campos repetitivos que são idênticos no formato e existem para permitir múltiplas
ocorrências de um determinado item de dados são contados uma única vez. Por exemplo,
em um Arquivo de Interface Externa contendo campo valor-mensal ocorrendo 12 vezes e
um campo valor-anual devemos contabilizar dois itens de dados, um para o campo valor-
mensal e outro para o campo valor-anual.
Análise de Pontos de Função 15
1 a 19 20 a 50 51 ou mais
itens de dados itens de dados itens de dados
1 SIMPLES SIMPLES MÉDIA
registro
lógico
2a5 SIMPLES MÉDIA COMPLEXA
registros
lógicos
6 ou mais MÉDIA COMPLEXA COMPLEXA
registros
lógicos
Figura 3-2: Tabela de Complexidade de Arquivo de Interface Externa
Visão Geral
As Entradas Externas representam as atividades de manutenção de dados e processamento de
controle de aplicação. As Entradas Externas contribuem para o Cálculo de Pontos de Função
com base na sua quantidade e complexidade funcional.
Definições
Uma Entrada Externa processa dados ou 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
das demais ou se necessitar de uma lógica de processamento diferente de outras Entradas
Externas que tenham o mesmo formato.
Informações de Controle são dados utilizados pela aplicação para garantir total conformidade
com os requerimentos das funções do negócio especificadas pelo usuário.
Processo Elementar é o menor conjunto de atividades com significado para o usuário final em
termos de função de negócio.
Formato é definido como um conjunto de dados arrumados em uma ordem ou seqüência única
dentro da aplicação. Por exemplo: o layout de uma tela de terminal de vídeo.
Identificação
(1) Identificar todos os processos que recebem dados de fora da aplicação e que atualizam um
Arquivo Lógico Interno.
Para cada processo identificado:
a) Se dados utilizados em um processo podem ser recebidos em mais de um formato, então
cada formato deve ser considerado uma Entrada Externa.
b) Se o processo necessitar de uma lógica de processamento diferente da utilizada em outras
Entradas Externas que tenham o mesmo formato, então este deverá ser considerado uma
Entrada Externa distinta.
Análise de Pontos de Função 16
c) Contabilizar uma Entrada Externa para cada atividade de manutenção (adição, alteração e
remoção) executada.
Exemplos
Assumindo que as condições de identificação citadas estejam satisfeitas, são consideradas
Entradas Externas:
Tela de Entrada: Contar uma Entrada Externa para cada função de manutenção de um
Arquivo Lógico Interno. Se as capacidades de adição, alteração e remoção estiverem
presentes, a tela de entrada deve ser considerada como três Entradas Externas.
Tela de Entrada: Neste contexto, é uma tela lógica que pode ser composta de uma ou várias
telas físicas processadas como uma única transação. Já uma tela física que permite a
execução de várias transações deve considerar tantas Entradas Externas quantas forem as
transações.
Dados de Referência: Dados externos utilizados pela aplicação, mas que não são
atualizados em Arquivos Lógicos Internos. Por exemplo, informações fornecidas em uma
tela de logon que permite o acesso ao sistema mas não atualiza nenhum Arquivo Lógico
Interno.
Telas de Logon: Telas que facilitam o acesso a uma aplicação e não atualizam Arquivos
Lógicos Internos não são consideradas Entradas Externas.
Telas de Menu: Telas que fornecem somente funcionalidade de seleção ou navegação e não
atualizam Arquivos Lógicos Internos que não são consideradas Entradas Externas.
Múltiplos métodos de executar uma mesma lógica de entrada: Por exemplo, entrar “A” ou
“ADD” numa linha de comando, ou utilizar uma tecla de função, deve ser considerada uma
única Entrada Externa.
Classificação
Cada Entrada Externa deve ser classificada de acordo com sua complexidade funcional
relativa, que é baseada no número de Arquivos Referenciados e no número de Itens de Dados.
Análise de Pontos de Função 17
Cada item de dado atualizado em um Arquivo Lógico Interno pela Entrada Externa deve ser
contabilizado, considerando as seguintes observações:
Os itens de dados devem ser considerados de acordo com a visão do usuário. Por exemplo,
um número contábil que é armazenado em múltiplos campos deve ser contado como um
único item de dados.
Itens de dados que aparecem mais de uma vez em um arquivo por causa da tecnologia ou
técnica de implementação devem ser contados apenas uma vez. Por exemplo, se um
arquivo é composto de mais de uma tabela em um DBMS relacional, as chaves utilizadas
para relacionar as tabelas são contadas uma única vez.
Campos não informados pelo usuário, mas que são atualizados em um Arquivo Lógico
Interno por uma Entrada Externa, devem ser contabilizados. Por exemplo: um sistema que
gera chaves seqüenciais, atualizadas em um Arquivo Lógico Interno, mas que não são
fornecidos pelo usuário, deve ser contado como um item de dados da Entrada Externa.
1a4 5 a 15 16 ou mais
itens de dados itens de dados itens de
dados
0 ou 1 SIMPLES SIMPLES MÉDIA
arquivo
referenciado
2 SIMPLES MÉDIA COMPLEXA
arquivos
referenciados
3 ou mais MÉDIA COMPLEXA COMPLEXA
arquivos
referenciados
Figura 3.3: Tabela de Complexidade de Entrada Externa
Análise de Pontos de Função 18
Visão Geral
As Saídas Externas representam as atividades da aplicação que tem como resultado saídas de
dados. As Saídas Externas contribuem para o Cálculo de Pontos de Função com base na sua
quantidade e complexidade funcional.
Definições
Uma Saída Externa é uma atividade que envia dados ou informações de controle para fora da
fronteira da aplicação.
Uma Saída Externa é considerada única para a aplicação, se referenciar um conjunto de itens
de dados diferente das demais ou se necessitar de uma lógica de processamento diferente de
outras Saídas Externas que tenham o mesmo formato.
Informações de Controle são dados utilizados pela aplicação para garantir total conformidade
com os requerimentos das funções de negócio especificadas pelo usuário.
Formato é definido como um conjunto de dados arrumados em uma ordem ou seqüência única
dentro da aplicação. Por exemplo, layout de um relatório.
Identificação
(1) Identificar todos os processos que:
(a) Deve ser considerada uma Saída Externa para cada processo que envia dados ou informações de
controle para fora da fronteira da aplicação.
(b) Se o processo necessitar de uma lógica de processamento diferente da utilizada em outras Saídas
Externas que tenham o mesmo formato, então este deverá ser considerado uma Saída Externa
distinta.
Exemplos
Assumindo que as condições de identificação descritas estejam satisfeitas, devem ser
consideradas Saídas Externas.
Dados transferidos para outra aplicação: Dados residentes em um Arquivo Lógico Interno,
que são formatados e processados para uso por uma aplicação externa. A identificação de
uma Saída Externa é baseada no tipo de processamento necessário para manipular os
dados. Um arquivo físico de saída pode corresponder a um certo número de Saídas
Externas, quando visto logicamente. Por outro lado, uma Saída Externa pode corresponder
a mais de um arquivo físico de saída se a lógica de processamento e formato for idêntica
para cada arquivo físico.
Relatórios: Cada relatório produzido por uma aplicação pode ser considerado uma Saída
Externa. Dois relatórios de formatos idênticos, inclusive detalhes e sumário final, devem
ser considerados como duas Saídas Externas, se necessitarem de lógicas de processamento
distintas ou cálculos distintos para serem produzidos.
Análise de Pontos de Função 19
Relatórios “On-line”: Saída de dados “on-line” que não seja a parte de saída de uma
Consulta Externa.
Formatos Gráficos: Devem ser contados da mesma forma, como saída em formato
texto, ou seja, cada formato gráfico diferente deverá ser considerado como uma
saída externa.
Relatórios Múltiplos com Mesma Lógica e Formato: Relatórios que possuem o mesmo
formato e lógica, mas que existem para mostrar valores distintos, não devem ser contados
como Saídas Externas distintas. Por exemplo, dois relatórios com o mesmo formato e
lógica, o primeiro contendo clientes de “A a L” e o segundo de “M a Z”, são considerados
como uma única Saída Externa.
Classificação
Cada Saída Externa deve ser classificada de acordo com sua complexidade funcional, que é
baseada no número de Arquivos Referenciados e no número de Itens de Dados.
Cada item de dado de uma Saída Externa deve ser contabilizado, considerando as seguintes
observações:
Os itens de dados devem ser considerados de acordo com a visão do usuário, por exemplo,
um número contábil que é exibido no relatório em múltiplos campos deve ser considerado
como um único item de dados.
Análise de Pontos de Função 20
Gráficos: contar um item para cada tipo de legenda ou equivalente numérico na saída
gráfica. Por exemplo, um gráfico de pizza deve ter dois itens: um para designar a categoria
e um para percentual.
Deve ser contado um item de dado adicional para cada campo de sumário ou de total que
aparece na Saída Externa.
De acordo com o número de itens de dados e dos arquivos referenciados, classifica-se a Saída
Externa em simples, média ou complexa, conforme apresentado na Figura 3.4.
1a5 6 a 19 20 ou mais
itens de itens de dados itens de
dados dados
0 ou 1 SIMPLES SIMPLES MÉDIA
arquivo
referenciado
2a3 SIMPLES MÉDIA COMPLEXA
arquivos
referenciados
4 ou mais MÉDIA COMPLEXA COMPLEXA
arquivos
referenciados
Figura 3.4: Tabela de Complexidade de Saída Externa
Visão Geral
As Consultas Externas representam as necessidades de processamento de consultas da
aplicação. As Consultas Externas contribuem para o Cálculo de Pontos de Função com base na
sua quantidade e complexidade funcional.
Definições
Uma Consulta Externa é uma combinação de entrada/saída de dados onde uma de dados
ocasiona uma recuperação e saída de dados correspondente. 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 possui um formato diferente de
outras consultas tanto na parte de entrada quanto na parte de saída, ou se requer uma lógica de
processamento (edição) diferente de outras consultas.
Dados Derivados são definidos como dados que requerem um processamento diferente de um
acesso, recuperação ou edição de dados de um Arquivo Lógico Interno e/ou Arquivo de
Interface Externa.
Formato é definido como um conjunto de dados arrumados em uma ordem ou seqüência única
dentro da aplicação. Por exemplo, layout de uma tela de terminal de vídeo.
Identificação
(1) Identificar todos os processos onde uma entrada está associada a uma
correspondente recuperação e exibição de dados, sem derivação dos mesmos e
sem atualização de Arquivos Lógicos Internos.
(2) Para cada processo identificado:
Análise de Pontos de Função 21
(a) Verificar se a lógica de processamento envolvida tanto na parte de entrada quanto na de Saída
é diferente da de Consultas Externas da aplicação.
(b) Verificar se os itens de dados, tanto na parte de entrada quanto na de Saída, são diferentes
das de outras Consultas Externas da aplicação.
Exemplos
Assumindo que as condições de identificação descritas estejam satisfeitas, são consideradas
Consultas Externas:
Um processo de recuperação de dados, que seleciona os dados com base em uma entrada
fornecida.
Menus com consultas implícitas: Telas de menus, que além de permitir funcionalidade de
seleção de telas, permitem também informar parâmetros para consulta na tela escolhida,
devem ser consideradas Consultas Externas. O menu será considerado a parte de entrada da
consulta e a tela selecionada será a parte de saída da consulta.
Telas de Logon: Telas de logon que fornecem funcionalidade de segurança devem ser
consideradas Consultas Externas.
Telas de Help: Telas de auxílio, que podem 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. Textos de help, que podem ser acessados em múltiplas áreas de uma tela ou em
várias telas de uma aplicação, devem ser contados uma única vez.
Duas categorias de telas de help são consideradas Consultas Externas.
Help de uma Tela (“Full Screen Help”): Recurso de help que é dependente da tela da
aplicação. Mostra o texto de help que está relacionado à tela. Contar uma Consulta Externa
simples por aplicação que possuir este recurso, independentemente do número de telas de
help associadas.
Múltiplas Formas de Executar uma Mesma Lógica de Consulta: Por exemplo, entrar “I” ou
“Inquiry” na linha de comando ou uma tecla de função deve ser contado uma única vez.
Telas de menus que fornecem somente funcionalidade de seleção de telas não são
consideradas Consultas Externas.
Dados derivados: Dados derivados devem ser tratados como uma entrada ou saída de dados
ao invés de consulta.
Análise de Pontos de Função 22
Documentação On-Line
Sistema de Teste
Classificação
Estes são os passos para se classificar uma Consulta Externa:
1. Calcular a complexidade funcional da parte de entrada da Consulta Externa.
2. Calcular a complexidade funcional da parte de saída da Consulta Externa.
3. Escolher a maior complexidade encontrada.
Os itens de dados devem ser considerados de acordo com a visão do usuário, por exemplo,
um número contábil ou data que é apresentado em múltiplos campos deve ser contado
como um único item de dados.
1a4 5 a 15 16 ou mais
itens de dados itens de dados itens de dados
0 ou 1 SIMPLES SIMPLES MÉDIA
arquivo
referenciado
2 SIMPLES MÉDIA COMPLEXA
arquivos
referenciados
3 ou mais MÉDIA COMPLEXA COMPLEXA
arquivos
referenciados
Figura 3.5: Tabela de Complexidade da Consulta - Parte da Entrada
Análise de Pontos de Função 23
1a5 6 a 19 20 ou mais
itens de dados itens de dados itens de dados
0 ou 1 SIMPLES SIMPLES MÉDIA
arquivo
referenciado
2a3 SIMPLES MÉDIA COMPLEXA
arquivos
referenciados
4 ou mais MÉDIA COMPLEXA COMPLEXA
arquivos
referenciados
Figura 3.6: Tabela de Complexidade da Consulta - Parte da Saída
3.2. EXEMPLO
Com base na especificação do Sistema de Reservas - Projeto de Desenvolvimento,
identificamos e classificamos as seguintes funções:
Arquivo de 1 2 X
Apartamentos
Arquivo de Clientes 1 9 X
TOTAL DE ARQUIVOS DE 1
INTERFACE EXTERNA
Análise de Pontos de Função 24
Inclusão de 1 4 X
Apartamentos
Alteração de 1 4 X
Apartamentos
Exclusão de 1 3 X
Apartamentos
Inclusão de Clientes 2 12 X
Alteração de Clientes 2 12 X
Exclusão de Clientes 1 3 X
Relatório de 1 2 X
Apartamentos
Relatório de Clientes 1 4 X
Entrada Saída
DESCRIÇÃO DA S M C
FUNÇÃO A I A I
Consulta de Reservas 1 2 3 8 X
Consulta ao Cadastro 1 3 1 1 X
de Apartamentos
Consulta ao Cadastro 1 3 2 10 X
de Clientes
3.3. EXERCÍCIO
Com base na especificação do Sistema Integrado de Estoque - Projeto de desenvolvimento
descrita no Manual de Estudos de Casos, identifique e classifique as funções do sistema.
Análise de Pontos de Função 25
Cada característica deve ser avaliada de acordo com o seu Nível de Influência, atribuindo-se
um peso que varia de 0 a 5, segundo a tabela abaixo:
0 - Nenhuma Influência
1 - Influência mínima
2 - Influência moderada
3 - Influência média
4 - Influência significativa
5 - Grande influência
Os textos associados aos níveis de influência, descritos a seguir, têm como objetivo direcionar
e 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 aproximar do caso.
3.4.3. Performance
Esta característica identifica os objetivos de performance da aplicação, estabelecidos e
aprovados pelo usuário, que influenciaram (ou irão influenciar) o desenho, desenvolvimento,
implantação e suporte da aplicação.
Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:
Menus
Documentação/Help On-line
Uso intenso de vídeo reverso, brilho intensificado, sublinhado, cores e outros recursos de
vídeo
“Pop-up Windows”
Suporte multilingüe (suporta mais de dois idiomas, contar como seis itens)
3 - Apresenta 6 ou mais dos itens acima, mas não há nenhum requerimento do usuário
relacionado à eficiência.
4 - Apresenta 6 ou mais dos itens acima, e os requerimentos estabelecidos para eficiência do
usuário são rigorosos o suficiente para que a fase de desenho da aplicação inclua fatores
para minimizar a digitação, maximizar os “defaults”, utilizar “templates” etc.
5 - Apresenta 6 ou mais dos itens acima, e os requerimentos estabelecidos para eficiência do
usuário são rigorosos o suficiente para que seja necessário o uso de ferramentas e
processos especiais para demonstrar que os objetivos de eficiência foram alcançados.
0 - Nenhuma atualização.
1 - Atualização “on-line” de 1 a 3 arquivos de controle. O volume de atualizações é baixo e a
recuperação de dados é simples.
2 - Atualização “on-line” de 4 ou mais arquivos de controle. O volume de atualizações é
baixo e a recuperação de dados é simples.
3 - Atualização “on-line” da maioria dos Arquivos Lógicos Internos.
4 - Além dos itens anteriores, a proteção contra perda de dados é essencial e foi
especificamente projetada e codificada nos sistema.
5 - Além dos itens anteriores, altos volumes de dados trazem considerações sobre custo para
o processo de recuperação. Exigem procedimentos de recuperação totalmente
automatizados com a mínima intervenção do operador.
2 - Menos de 10% da aplicação foi feita, levando-se em conta a sua utilização para outras
aplicações.
3 - 10% ou mais da aplicação foi feita, levando-se em conta a sua utilização por outras
aplicações.
4 - A aplicação foi feita projetada e documentada para facilitar a reutilização de código e a
aplicação é customizada pelo usuário a nível do código fonte.
5 - A aplicação foi projetada e documentada para facilitar a reutilização de código e a
aplicação é customizada para uso de parâmetros que podem ser atualizados pelo usuário.
0 - Nenhuma consideração especial foi feita pelo usuário, e nenhum procedimento especial foi
requerido para a implantação.
1 - Nenhuma consideração especial foi feita pelo usuário, mas um procedimento especial foi
requerido para a implantação.
2 - 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 e testados. O impacto da
conversão de dados no projeto não é considerado importante,.
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 e testados. O impacto da
conversão de dados no projeto é considerado importante.
4 - Além do descrito no item (2), ferramentas automatizadas de implantação e conversão de
dados foram preparados e testadas.
5 - Além do descrito no item (3), ferramentas automatizadas de implantação e conversão de
dados foram preparadas e testadas.
Dados de controle são mantidos em tabelas que são atualizadas pelo usuário através de
processos “on-line” e interativos, mas as alterações só são efetivadas no próximo dia útil.
Dados de controle são mantidos em tabelas que podem ser atualizadas pelo usuário através
de processos “on-line” e interativos e as alterações são efetivadas imediatamente (contar
como dois itens).
Análise de Pontos de Função 31
3.5. EXEMPLO
O nível de influência do Sistema de Reservas - Projeto de Desenvolvimento tem os seguintes
valores baseados nas suas características:
3.6. EXERCÍCIO
Identifique e classifique o nível de influência das características do Sistema Integrado de
Estoque - Projeto de Desenvolvimento.
O Valor de Pontos de Função Não-Ajustados de cada componente é então totalizado por tipo
de função e finalmente por aplicação. O resultado final é o Valor de pontos de Função Não-
Ajustados da Aplicação.
A Figura 4.1 apresenta tabela que pode ser usada para facilitar o Cálculo de pontos de Função
Não-Ajustados.
Nota:
(1) A complexidade funcional de um tipo de função é baseada unicamente nas Matrizes de
Complexidade (Ver Seção 3). Antes da Release 3.1 da FPA, a complexidade funcional de um
Análise de Pontos de Função 32
tipo de função podia ser ajustada a um nível para cima ou para baixo, dependendo de uma série
de fatores. O Comitê de Práticas de Contagem do IFPUG acredita que esta decisão elimina a
subjetividade introduzida por esses fatores de ajuste das complexidade.
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 de Função Não-Ajustados desta
aplicação. Para isso, nos auxiliamos do seguinte formulário:
EXERCÍCIO:
Calcule os Pontos de Função Não-Ajustados do Sistema Integrado de Estoque - Projeto de
Desenvolvimento.
A Figura 4-2 da página seguinte apresenta uma tabela que facilita o cálculo do Fator de Ajuste:
EXEMPLO:
Fator de Ajuste do Sistema de Reservas - Projeto de Desenvolvimento pode ser calculado da
seguinte maneira:
Análise de Pontos de Função 34
FATOR DE AJUSTE
EXERCÍCIO
Calcule o Fator de Ajuste do Sistema Integrado de Estoque - Projeto de Desenvolvimento.
Onde:
Observações:
As funções do processo de conversão de dados estão incluídas no Total de Pontos de Função
Não-Ajustados.
Análise de Pontos de Função 35
EXEMPLO
Para encontrar os Pontos de Função Ajustados do Sistema de Reservas - Projeto de
Desenvolvimento, a seguinte fórmula deve ser preenchida.
PF_DESENVOLVIMENTO = 69,7 PF
EXERCÍCIO
Calcule os Pontos de Função Ajustados do Sistema Integrado de Estoque - Projeto de
Desenvolvimento.
Onde:
Observação:
As funções do processo de conversão de dados estão incluídas nesse cálculo no item
PF_INCLUIDO.
EXEMPLO
Para calcular os Pontos de Função Ajustados do Sistema de Reservas - Projeto de Manutenção,
os seguintes passos devem ser seguidos:
Análise de Pontos de Função 36
TOTAL DE ENTRADAS 1
EXTERNAS
Tipo de Função: Saídas Externas
DESCRIÇÃO DA FUNÇÃO Arq Iten S M C
. s
Relatório de Reservas 2 4 X
Canceladas
TOTAL DE SAÍDAS 1
EXTERNAS
Arquivo de Apartamentos 1 5 X
Inclusão de Apartamentos 1 7 X
Alteração de Apartamentos 1 7 X
Exclusão de Apartamentos 1 3 X
TOTAL DE ENTRADAS 3 2
EXTERNAS
TOTAL DE SAÍDAS 1
EXTERNAS
Consulta ao Cadastro 1 3 1 4 X
de Apartamentos
TOTAL DE ENTRADAS 1
EXTERNAS
2 COMPLEXA X 6= 12 21
1 SIMPLES X 4= 4
SAÍDA MÉDIA X 5=
COMPLEXA X 7= 4
1 SIMPLES X 3= 3
CONSULTA 1 MÉDIA X 4= 4
COMPLEXA X 6= 7
PF_MANUTENÇÃO = 50,1 PF
EXERCÍCIO
Calcule os Pontos de Função Ajustados do Sistema Integrado de Estoque - Projeto de
Manutenção, descrito no Manual de Estudos de Casos.
PF_APLICAÇÃO=PF_DESENVOLVIMENTO -
(PF_CONVERSÃO*FATOR_AJUSTE)
Onde:
PF_APLICAÇÃO = Total de Pontos de Função da Aplicação
PF_NÃO-AJUSTADO = Total de Pontos de Função Não-Ajustados
FATOR_AJUSTE = Valor do Fator de Ajuste
PF_APLICAÇÃO=PF_DESENVOLVIMENTO-
(PF_CONVERSÃO*FATOR_AJUSTE)
Onde:
PF_APLICAÇÃO = Total de Pontos de Função da Aplicação
PF_DESENVOLVIMENTO = Total de Pontos de Função do Projeto de Desenvolvimento
PF_CONVERSÃO = Total de Pontos de Função Não-Ajustados das Funções de
Conversão de Dados no Projeto de Desenvolvimento
FATOR_AJUSTE = Valor do Fator de Ajuste
Onde:
PF_APLICAÇÃO =Total de Pontos de Função da Aplicação
PF_NÃO AJUSTADO =Total de Pontos de Função Não-Ajustados da Aplicação antes do
projeto de manutenção
PF_INCLUÍDO =Total de Pontos de Função Não-Ajustados das funções que foram
incluídas na aplicação
EXEMPLO
Ao final do Projeto de Manutenção do Sistema de Reservas é necessário recalcular o tamanho
da aplicação.
PF_APLICAÇÃO = 77,4 PF
EXERCÍCIO
Recalcule o tamanho do Sistema Integrado de Estoque após o encerramento do Projeto de
Manutenção.
A figura 5.1 apresenta uma comparação entre o nível de conhecimento do projeto e a precisão
das estimativas.
Conhecimento do Projeto
PrecisãoEstimativa
Entretanto, para se fazer estimativas antes do final da Fase de Desenho com uma margem de
erro aceitável, é aconselhável que o usuário se apoie em algum método com base estatística
para suprir a falta de conhecimento de algumas funções da aplicação. A seguir é apresentada a
descrição de um desses métodos.
Baseado nesta análise estatística, o usuário necessita identificar apenas a quantidade de um dos
tipos de função da aplicação para derivar a quantidade dos outros. A quantidade de um tipo de
função deve ser representada sempre em valores inteiros.
Para calcular os Pontos de Função Não-Ajustados, deve-se sempre trabalhar com uma
complexidade funcional média para todos os tipos de função.
No Cálculo dos Pontos de Função Ajustados, deve-se considerar o valor do Fator de Ajuste
igual a 1.
Observação:
É importante lembrar que este método presume um relacionamento lógico e previsível entre
variáveis independentes, quando na realidade para um determinado projeto esse
relacionamento pode não acontecer. Nesses casos, à medida que aumenta o grau de
conhecimento da aplicação, pode-se identificar qual e em que quantidade um determinado tipo
de função ficou fora da média.
Exemplo
Ao analisar uma determinada aplicação antes do final da Fase de Desenho, só se conseguiu
identificar a existência de 13 arquivos lógicos internos.
Aplicando o método descrito, pode-se concluir que:
CONSULTA 7 MÉDIA X 4= 28 28
*** TOTAL DE PONTOS DE FUNÇÃO NÃO-AJUSTADOS =311
Considerando o Valor do Fator de Ajuste igual a 1, este valor corresponde aos Pontos de
Função Ajustados da aplicação.
5.2. EXEMPLO
No início da Análise do Projeto de Desenvolvimento do Sistema de reservas (veja o Manual de
Estudos de Casos), havíamos identificado apenas a quantidade de arquivos lógicos internos.
Utilizando o Método de Estimativa por Percentual podemos afirmar que:
Considerando o Valor do Fator de Ajuste igual a 1, este valor corresponde aos Pontos de
Função Ajustados do Sistema de Reservas.
5.3. EXERCÍCIO
No início da Análise do Projeto de Desenvolvimento do Sistema Integrado de Estoque (veja no
Manual de Estudos de Casos), havíamos identificado apenas a quantidade de arquivos internos.
Utilize o Método de Estimativa por Percentual para calcular os pontos de função da aplicação.
Análise de Pontos de Função 44
6. Apêndice
A. APLICAÇÕES DA TÉCNICA FPA
A técnica FPA é utilizada para medir o tamanho de um projeto ou aplicação conforme
mostrado nas seções anteriores. No entanto, quando utilizada em combinação com outras
medidas, a técnica FPA poderá ter várias aplicações.
Por exemplo, a técnica FPA pode ser utilizada para determinar:
Custo de Software
Por exemplo, imaginando-se que um analista trabalhou 900 horas para desenvolver uma
aplicação de 400 PFs, pode-se afirmar que sua produtividade neste trabalho foi:
Por que a produtividade desse analista sofreu alteração tão significativa de o tamanho das duas
aplicações era idêntico?
Linguagem de Codificação
Experiência da Equipe
etc.
Por exemplo, qual é o esforço necessário para desenvolver um software de 500 PFs por um
analista cuja produtividade histórica é de 2,5 horas de trabalho por ponto de função.
Aplicando a fórmula, tem-se:
ESFORÇO = 2,5 horas / ponto de função * 500 pontos de função
ESFORÇO = 1250 horas de trabalho
Considerando uma semana de 40 horas e um ano 52 semanas, o esforço pode ser expresso nas
seguintes unidades:
Hora de Trabalho Bruta (uma hora de trabalho por indivíduo, incluindo interrupções
normais).
Hora de Trabalho Líquida (uma hora de trabalho produtivo, que eqüivale a cerca de 0,75
hora de trabalho bruta).
Mês de Trabalho Bruto (aproximadamente 174 horas de trabalho, que eqüivale a (40 horas
* 52 semanas) / 12 meses)).
Mês de Trabalho Líquido (aproximadamente 130 horas de trabalho, que eqüivale a cerca de
0,75 mês de trabalho bruto).
Ano de Trabalho Bruto (aproximadamente 2080 horas de trabalho, que eqüivale a (40
horas * 52 semanas)).
Ano de Trabalho Líquido (aproximadamente 1560 horas de trabalho, que eqüivale a 0,75
ano de trabalho bruto).
EXEMPLO
Baseado na dimensão de 69,7 Pontos de Função do Sistema de Reservas, podemos calcular o
esforço de desenvolvimento nas seguintes linguagens:
Onde: Hh Homem-hora
HM Homem-mês
O custo de um software pode ser definido como sendo o tamanho do software em PFs
multiplicado pelo custo de um Ponto de Função. Pode ser expresso pela fórmula:
Análise de Pontos de Função 48
EXEMPLO
O custo do ponto de função de uma instalação para uma determinada tecnologia (linguagem de
programação) pode ser obtido a partir da análise de sistemas contratados/desenvolvidos e seus
respectivos custos, como segue:
EXEMPLO
No período de 1 ano, o setor de desenvolvimento liberou para produção os seguintes sistemas:
Sistema Tamanho
(PF)
Controle de Estoque 560 PF
Controle de Vendas 830 PF
Contas a Receber 670 PF
Total 2.060 PF
EXEMPLO
O quadro abaixo apresenta o volume de manutenção ocorrido durante um ano em uma
determinada instalação:
Análise de Pontos de Função 49