fpa man1

49
FPA Function Point Analysis (Análise de Pontos de Função) Release 4.0 - IFPUG

Upload: diegoruggeru

Post on 06-Jun-2015

1.311 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Fpa man1

FPA

Function Point Analysis

(Análise de Pontos de Função)

Release 4.0 - IFPUG

Page 2: Fpa man1

Análise de Pontos de Função 2

Í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

Page 3: Fpa man1

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.

E como gerenciar a área de desenvolvimento de sistemas dentro da empresa ? No aspecto do controle econômico do software, uma tarefa essencial é a de determinar o valor ou tamanho dos sistemas, pois não se pode gerenciar aquilo que não se pode medir. Esta medida, para ser aceitável, deveria:

ser independente da tecnologia empregada no desenvolvimento do software.

produzir resultados consistentes.

Além disso, seria desejável que pudesse:

ser obtida por não-especialistas em processamento de dados

ser compreendida pelo usuário final

ser utilizada para estimativas

ser coletada automaticamente.

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:

a. Contagem de Linhas do Código Fonte A primeira forma encontrada para medir o tamanho de um sistema foi a contagem de suas linhas de código. Esta técnica tem como vantagem a simplicidade, mas está muito presa à linguagem utilizada, tendo pouco significado para o usuário final e podendo levar a uma falsa idéia de que aumentar a produtividade significa aumentar o número de linhas desenvolvidas durante um período. Além disso, esta técnica só é aplicável após a codificação dos programas, não permitindo estimativas em projetos.

b. Sistema Métrico de Halstead Em 1972, Maurice Halstead da Universidade de Purdue iniciou estudos sobre algoritmos tentando testar empiricamente a hipótese de que os operadores (comandos e palavras reservadas) e os operandos (itens de dados) em um programa deviam se relacionar com a quantidade de erros no algoritmo.

Page 4: Fpa man1

Análise de Pontos de Função 4

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.

c. Análise de Pontos de Função No início da década de 70, pesquisadores do Serviço de Processamento de Dados da IBM, a pedido do grupo de usuários (GUIDE), começaram a analisar centenas de programas para isolar as variáveis críticas, que determinam a produtividade da programação. Descobriam que poderiam basear a avaliação de um sistema, medindo-se o valor das funções executadas pelos programas, em vez de utilizar como base o volume ou a complexidade do código dos programas. Em 1979, Allan J. Albrech (IBM, White Plains), prosseguindo essas pesquisas, introduziu uma técnica de avaliação conhecida como Análise de Pontos de Função (FPA - Function Point Analysis). A técnica FPA mede uma aplicação baseada na visão externa do usuário, sendo, portanto, independente da linguagem utilizada, permitindo calcular o esforço de programação e auxiliando o usuário final a melhorar o exame e avaliação de projetos. Em 1986, foi formado o Grupo Internacional de Usuários da FPA (IFPUG - International Function Point Users Group) destinado a divulgar informações e novas implementações da técnica a todos os seus associados. Pontos de função não são estáticos nem deveriam ser. As regras para contar pontos de função devem ser revistas e expandidas periodicamente para representar o modelo em termos de tecnologias novas e modificadas. Até 1988, mais de 25.000 sistemas de informação haviam sido avaliados utilizando a FPA e a taxa de crescimento de seu uso tem dobrado a cada ano, sendo bem aceita como padrão mundial de medição de sistemas de informação.

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:

UNISYS Air Canada Air New Zealand American

Airlines American

Express AT&T

Bank of America Bank of N. Scotia

Boeing

British Airways Caterpillar CBS Records Delta Airlines DU PONT Eastman Kodak EXXON FORD Fujitsu General Eletric IBM Jonhson & Jonhson NCR Pacific Bell Rolls Royce Royal Bank of

Canada SHELL Texas Instruments

3M U.S.Navy XEROX

Page 5: Fpa man1

Análise de Pontos de Função 5

Quadro Comparativo das Técnicas Na figura 1.1 apresentamos um resumo das principais características das técnicas apresentadas nesta seção.

Características Linhas

de Código

Sistema de

Halstead

Pontos de

Função 1. Independência de tecnologia

não sim sim

2. Produção de resultados consistentes

sim sim sim

3. Avaliação por usuários sem conhecimento de PD

não não sim

4. Significância para o usuário final

não não sim

5. Utilização em estimativas não não sim 6. Contabilização automática sim sim sim (*)

Figura 1.1: Quadro Comparativo das Técnicas Apresentadas

(*) 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.

2. VISÃO GERAL DA FPA A técnica FPA (Function Point Analysis) dimensiona uma aplicação na perspectiva do usuário final, ao invés de levar em consideração as características técnicas da linguagem utilizada. A FPA dimensiona software quantificando a funcionalidade que ele proporciona aos usuários baseado, principalmente, no seu desenho lógico.

2.1. OBJETIVOS DA ANÁLISE POR PONTOS DE FUNÇÃO Os objetivos da técnica são:

medir o que foi requisitado e recebido pelo usuário,

medir independentemente da tecnologia utilizada para implementação,

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.

Page 6: Fpa man1

Análise de Pontos de Função 6

Além de atingir os objetivos descritos acima, o processo de contagem de pontos de função deve ser:

simples para minimizar o trabalho adicional do processo de mensuração

conciso para permitir consistência, ao longo do tempo, dos projetos, e entre os usuários da técnica.

2.2. APLICAÇÕES DA FPA A função principal da FPA é medir o tamanho de uma aplicação ou de um projeto. Entretanto, quando utilizada em combinação com outras medidas, esta técnica pode ser utilizada para determinar:

Nível de produtividade da equipe

Esforço de desenvolvimento de software

Custo de software

Taxa de produção de software

Taxa de manutenção de software

Etc.

2.3. TIPOS DE CÁLCULO DA TÉCNICA FPA A técnica FPA pode ser aplicada tanto no dimensionamento de aplicações já implantadas quanto do dimensionamento de projetos de desenvolvimento ou manutenção de aplicações.

Dimensionamento de um Projeto de Desenvolvimento Este cálculo é utilizado para dimensionar (em pontos de função) o tamanho de um projeto de desenvolvimento de uma nova aplicação. O objetivo deste cálculo é quantificar as funções solicitadas e entregues ao usuário pela nova aplicação, incluindo neste caso, as funções referentes ao processo de conversão de dados. Este valor menos os PF associados às atividades de conversão torna-se o tamanho da aplicação, após sua implantação.

Dimensionamento de um Projeto de Manutenção Este cálculo é utilizado para dimensionar o tamanho de um projeto de manutenção em uma aplicação já existente. O objetivo deste cálculo é medir todas as modificações (inclusões, alterações e exclusões) de funções do usuário, incluindo também, as funções providas pelo processo de conversão de dados. Ao final de um projeto de manutenção, é necessário recalcular o tamanho da aplicação para refletir as mudanças nas funções da aplicação.

Dimensionamento de uma Aplicação Este cálculo é utilizado para dimensionar o tamanho real de uma aplicação em pontos de função. O valor encontrado representa a funcionalidade da aplicação do ponto de vista do usuário. Esse valor pode diferir da Dimensão do Projeto de Desenvolvimento desta aplicação uma vez que não inclui as funções do processo de conversão de dados.

Page 7: Fpa man1

Análise de Pontos de Função 7

2.4. VISÃO GERAL DE UMA APLICAÇÃO Uma aplicação, vista sob a ótica do usuário, é um conjunto de funções ou atividades do negócio que o beneficiam na realização de suas tarefas. Essas funções podem ser divididas nos seguintes grupos:

Arquivo Lógico Interno

Grupo lógico de dados do ponto de vista do usuário cuja manutenção é feita internamente pela aplicação. Por exemplo, o cadastro de funcionários cujas atualizações ficam sob a responsabilidade do Depto. RH é considerado um arquivo lógico interno para esse departamento.

Arquivo de Interface Externa

Grupo lógico de dados utilizado na aplicação cuja manutenção pertence a outra aplicação. Por exemplo, se uma cópia do cadastro de funcionários é necessária para auxiliar as atividades do Depto. De Empréstimos e Benefícios Sociais, então esta cópia é considerada um arquivo de interface externa para esse departamento.

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.

2.5. Resumo do cálculo de pontos de função Determinam-se os pontos de função de uma aplicação em três etapas de avaliação. A primeira resulta na contagem de PONTOS DE FUNÇÃO NÃO-AJUSTADOS, que refletem as funções específicas e mensuráveis do negócio, providas ao usuário pela aplicação, cuja fronteira foi claramente identificada. A segunda etapa da avaliação gera o FATOR DE AJUSTE, que representa a funcionalidade geral provida ao usuário pela aplicação. A terceira etapa resulta na contagem de PONTOS DE FUNÇÃO AJUSTADOS, que refletem a aplicação do fator de ajuste sobre o resultado apurado na primeira etapa.

Cálculo de Pontos de Função Não-Ajustados Uma função específica do usuário em uma aplicação é avaliada em termos do que é fornecido pela aplicação e não como é fornecido. Somente componentes solicitados pelo usuário e visíveis são contados. As funções específicas da aplicação devem ser identificadas e agrupadas por tipo de função, considerando a fronteira definida. Os tipos de função são :

Arquivo Lógico Interno

Page 8: Fpa man1

Análise de Pontos de Função 8

Arquivo de Interface Externa

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

O critério de classificação varia entre os tipos de função e é abordado na Seção 3. O valor dos pontos para cada função varia de 3 a 15, dependendo do seu tipo e grau de complexidade. Totalizando seus valores, gera-se o total de PONTOS DE FUNÇÃO NÃO-AJUSTADOS da aplicação avaliada. Esses valores obtidos através da figura 4-1 da Seção 4.

Cálculo do 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. Na seção 3.4. há uma abordagem completa dessas características. As características gerais de um sistema são : 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

Cálculo de Pontos de Função Ajustados Finalmente, o total de Pontos de Função da aplicação, do projeto de desenvolvimento ou do projeto de manutenção pode ser encontrado combinando-se o Fator de Ajuste e a quantidade de Pontos de Função Não-Ajustados calculados anteriormente, segundo fórmulas apresentadas na seção 4.3.

Page 9: Fpa man1

Análise de Pontos de Função 9

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

3.1. Identificação e Classificação de Funções O primeiro passo a ser seguido para a contagem de pontos de função de um projeto ou aplicação envolve a determinação:

do Tipo de Contagem de pontos de função a ser realizado

da Fronteira da aplicação ou do projeto a ser dimensionado.

Como mencionado anteriormente, a técnica FPA pode ser utilizada para o dimensionamento tanto de uma aplicação quanto de um projeto de desenvolvimento ou manutenção, diferenciando-se estes tipos de contagem pelo universo de funções a ser considerado. No caso dos projetos de desenvolvimento e manutenção, devem ser também avaliadas as funções referentes à conversão de dados necessárias para a efetiva implantação da aplicação. Complementarmente, deve ser claramente identificada, no início dos procedimentos de contagem, a fronteira da aplicação ou projeto, estabelecendo-se desta forma:

os limites entre as funções a serem atendidas pela aplicação ou projeto dimensionado e àquelas pertencentes ao ambiente externo

a propriedade dos dados considerados pelo processo de contagem

o relacionamento entre processos, com a indicação de onde estes ocorrem.

Para a identificação da Fronteira do processo de contagem, devem ser adotadas as seguintes regras:

A fronteira é determinada considerando-se o ponto de vista do usuário, ou seja, o que o usuário pode entender e descrever como função da aplicação.

A fronteira entre aplicações relacionadas deve considerar a funcionalidade das aplicações em termos das funções de negócio identificadas pelo usuário, e não sob a perspectiva técnica das interfaces necessárias.

3.1.1. Arquivos Lógicos Internos

Visão Geral

Page 10: Fpa man1

Análise de Pontos de Função 10

Os Arquivos Lógicos Internos representam os requerimentos de armazenamento de dados cuja manutenção é feita pela própria aplicação. Os Arquivos Lógicos Internos contribuem para o Cálculo de Pontos de Função com base na sua quantidade e complexidade funcional relativa.

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. Grupo de Dados Logicamente Relacionados refere-se a dados relacionados em um nível em que o usuário experiente consegue perceber como sendo importante para permitir que a aplicação realiza uma atividade específica. Em um Diagrama de Fluxo de Dados, um Arquivo Lógico Interno seria equivalente a um depósito de dados; no Modelo de Entidades e Relacionamentos (DER) equivale a uma entidade. 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. Manutenção é a habilidade de adicionar, alterar ou remover dados de um arquivo através de um processo elementar da aplicação.

Identificação (1) Identificar todos os dados ou informações de controle:

(a) Armazenados dentro da Fronteira da aplicação

(b) Que sofrem manutenção por um processo elementar da aplicação

(c ) Identificados pelo usuário como sendo um requerimento da aplicação.

(2) Agrupar os dados logicamente com base na visão do usuário:

a) Em um nível de detalhe que possa satisfazer um requerimento específico da aplicação;

b) Visualizando os arquivos lógicos. Embora algumas tecnologias de armazenamento de dados (tabelas, arquivos convencionais, arquivos indexados, etc.) possam equivaler a um Arquivo Lógico Interno, não deve ser necessariamente assumido que um arquivo físico sempre eqüivale a um arquivo lógico.

Exemplos São considerados um ou mais Arquivos Lógicos Internos, dependendo da visão do usuário:

Dados da aplicação (arquivos mestres como cadastro de clientes ou cadastro de funcionários);

Arquivos de dados de segurança da aplicação;

Arquivos de dados de auditoria;

Arquivos de mensagens de auxílio;

Arquivos de mensagens de erro;

Page 11: Fpa man1

Análise de Pontos de Função 11

Arquivo de backup. Somente será considerado se especificamente solicitado pelo usuário para atender requerimentos da aplicação;

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.

NÃO são considerados Arquivos Lógicos Internos:

Arquivos temporários;

Arquivos de trabalho;

Arquivos de classificação (SORT);

Arquivos suspensos. Arquivos contendo transações incompletas de uma Entrada Externa não devem ser contados a menos que os dados desse arquivo possam ser acessados ou atualizados pelo usuário através de uma Entrada Externa, Saída Externa e/ou Consulta Externa específica;

Arquivos de backup requeridos pelos procedimentos de backup e recuperação do CPD;

Arquivos introduzidos somente por causa da tecnologia utilizada, por exemplo, um arquivo de parâmetros para um software com WFL, JCL, etc.;

Arquivos de índices alternativos (métodos alternativos de acesso físico a um arquivo);

Operações de junção e projeção (os itens já foram contabilizados em outros arquivos internos e interfaces).

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.

(a) Identificação do Número de Registros Lógicos

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.

Por exemplo, num Sistema de Recursos Humanos, o processo de inclusão de informações sobre um empregado compreende o preenchimento de dados de caráter cadastral. Em adição às informações cadastrais, o empregado pode ser incluído como horista ou mensalista. Cada empregado pode ter também informações adicionais sobre seus dependentes. Considerando os requerimentos do Sistema de Recursos Humanos, podemos identificar para o Arquivo Lógico Interno Empregados o seguinte conjunto de registros lógicos:

Page 12: Fpa man1

Análise de Pontos de Função 12

Informações Cadastrais (mandatório) Informações para Mensalistas (opcional) Informações para Horistas (opcional) Informações sobre Dependentes (opcional)

As seguintes regras devem ser aplicadas para a contabilização dos registros lógicos:

Conte 1 registro lógico para cada subgrupo identificado, opcional ou madatório;

Considere 1 registro lógico caso o Arquivo Lógico Interno não possua subgrupos.

(b) Identificação do Número de Itens de Dados Item de Dado representa um segmento de um Arquivo Lógico Interno que tem um significado único e pode ser identificado pelo usuário. 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.

De acordo com o número de itens de dados referenciados e de registros lógicos, classifica-se o Arquivo Lógico Interno em simples, médio ou complexo, conforme apresentado na Figura 3.1

1 a 19 itens de dados

20 a 50 itens de dados

51 ou mais itens de dados

1 registro lógico

SIMPLES SIMPLES MÉDIA

2 a 5 registros lógicos

SIMPLES MÉDIA COMPLEXA

6 ou mais registros lógicos

MÉDIA COMPLEXA COMPLEXA

Figura 3-1: Tabela de Complexidade de Arquivo Lógico Interno

3.1.2. Arquivo de Interface Externa

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

Page 13: Fpa man1

Análise de Pontos de Função 13

Arquivo de Interface Externa é um grupo de dados logicamente relacionados ou informações de controle identificadas pelo usuário, que é utilizado pela aplicação, mas sofre manutenção a partir de outra aplicação. Grupo de Dados Logicamente Relacionados refere-se a dados relacionados em um nível que o usuário experiente consegue perceber como sendo importante para permitir que a aplicação realize uma atividade específica. 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,

(b) Que NÃO sofram manutenção pela Aplicação,

(c ) Identificados pelo usuário como sendo um requerimento da aplicação.

(2) Agrupar os dados logicamente com base na visão do usuário:

a) Em um nível de detalhe que possa satisfazer um requerimento específico da aplicação;

b) Visualizando os arquivos lógicos. Embora algumas tecnologias de armazenamento de dados (tabelas, arquivos convencionais, arquivos indexados, etc.) possam eqüivaler a um Arquivo de Interface Externa, não deve ser necessariamente assumido que um arquivo físico sempre eqüivale a um arquivo lógico.

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)

Arquivos de mensagens de auxílio

Arquivos de mensagens de erro

NÃO são considerados Arquivos de Interface Externa:

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

Page 14: Fpa man1

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.

(a) Identificação do Número de Registros Lógicos Registro Lógico pode ser definido como um subgrupo de dados reconhecido pelo usuário dentro de um Arquivo de Interface Externa. Dependendo da visão do usuário, um Arquivo de Interface Externa 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.

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:

Conte 1 registro lógico para cada subgrupo identificado, opcional ou mandatório, e efetivamente utilizado pela aplicação.

Considere 1 registro lógico caso o Arquivo de Interface Externa não possua subgrupos.

(b) Identificação do Número de Itens de Dados Item de Dado representa um segmento de um Arquivo de Interface Externa que tem um significado e pode ser identificado pelo usuário. 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.

Page 15: Fpa man1

Análise de Pontos de Função 15

De acordo com o número de itens de dados referenciados e de registros lógicos, classifica-se o Arquivo de Interface Externa em simples, médio ou complexo, conforme apresentado na Figura 3-2.

1 a 19

itens de dados 20 a 50

itens de dados 51 ou mais

itens de dados 1

registro lógico

SIMPLES SIMPLES MÉDIA

2 a 5 registros lógicos

SIMPLES MÉDIA COMPLEXA

6 ou mais registros lógicos

MÉDIA COMPLEXA COMPLEXA

Figura 3-2: Tabela de Complexidade de Arquivo de Interface Externa

3.1.3. Entradas Externas

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. Manutenção é a habilidade de adicionar, alterar ou remover dados de um arquivo através de um processo elementar da aplicação. 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.

Lógica de Processamento é definida como o conjunto de críticas, cálculos, algoritmos e referências/utilização de Arquivos Lógicos Internos ou Arquivos de Interface Externa, especificamente requeridos pelo usuário para a realização de um processo elementar.

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.

Page 16: Fpa man1

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.

(2) 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.

Exemplos Assumindo que as condições de identificação citadas estejam satisfeitas, são consideradas Entradas Externas:

Dados de Transações: Dados Externos utilizados na manutenção de Arquivos Lógicos Internos.

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.

Entrada “batch”: Para cada processo de manutenção de um Arquivo Lógico Interno, contabilize uma Entrada Externa para cada adição, alteração e remoção.

Entradas Externas Duplicadas: Processos de entrada, especificamente solicitados pelo usuário devem ser contados separadamente. Por exemplo, um sistema bancário, que aceita transações idênticas de depósito, uma através de uma caixa automático (ATM) e a segunda feita pelo caixa do banco.

Atualizações em Arquivos Suspensos: Se um arquivo suspenso pode ser acessado e atualizado pelo usuário, então cada atividade de manutenção deve ser considerada uma Entrada Externa.

NÃO são consideradas Entradas Externas:

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.

Parte de Entrada de uma Consulta Externa: Parâmetros de entrada que direcionam a recuperação de dados de uma consulta.

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.

Page 17: Fpa man1

Análise de Pontos de Função 17

a) Identificação do Número de Arquivos Referenciados Arquivo Referenciado é qualquer Arquivo Lógico Interno consultado ou atualizado pelo processo ou qualquer Arquivo de Interface Externa consultado. O número de Arquivos Referenciados é o somatório dos Arquivos Lógicos Internos e Arquivos de Interface Externa atualizados ou consultados na Entrada Externa.

b) Identificação do Número de Itens de Dados Item de Dado é um campo único, não recursivo, identificado pelo usuário, que é atualizado em um Arquivo Lógico Interno pela Entrada Externa. 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.

Linha(s) de comando ou teclas de função que fornecem a capacidade para especificar a ação a ser tomada pela Entrada Externa. Um item de dado adicional deve ser considerado na Entrada Externa. Não deve ser contabilizado um item por comando/tecla de função existente.

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.

Mensagem de erro ou confirmação relacionadas aos processos lógicos executados pela Entrada Externa. Caso sejam requeridas pelo usuário mensagens de erro/confirmação, um item de dado adicional deve ser considerado para a Entrada Externa, independente da quantidade de mensagens de erro/confirmação previstas.

De acordo com o número de itens de dados e das referências a arquivos lógicos internos e arquivos de interface externa, classifica-se a Entrada Externa em simples, média ou complexa, conforme apresentado na Figura 3.3.

1 a 4 itens de dados

5 a 15 itens de dados

16 ou mais itens de dados

0 ou 1 arquivo

referenciado

SIMPLES SIMPLES MÉDIA

2 arquivos

referenciados

SIMPLES MÉDIA COMPLEXA

3 ou mais arquivos

referenciados

MÉDIA COMPLEXA COMPLEXA

Figura 3.3: Tabela de Complexidade de Entrada Externa

Page 18: Fpa man1

Análise de Pontos de Função 18

3.1.4. Saídas Externas

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. Lógica de Processamento é definida como o conjunto de críticas, cálculos, algoritmos e referência/acesso a arquivos especificamente requeridos pelo usuário.

Identificação (1) Identificar todos os processos que:

(a) Enviam dados para fora da fronteira da aplicação

(b) Enviam informações de controle para fora da fronteira da aplicação.

(2) Para cada processo identificado:

(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.

Page 19: Fpa man1

Análise de Pontos de Função 19

Relatórios Duplicados: Relatórios idênticos, produzidos em diferentes meios para atender necessidades específicas do usuário, devem ser considerados como Saídas Externas distintas. Cada processo requerido para produzir uma saída em um meio diferente é considerado um processamento lógico distinto. Por exemplo, dois relatórios idênticos, um em formulário contínuo e o outro em microficha, devem ser considerados duas Saídas Externas.

Relatórios “On-line”: Saída de dados “on-line” que não seja a parte de saída de uma Consulta Externa.

Dados Derivados: Dados derivados, resultantes de cálculos ou outras operações sobre dados originais, que não necessariamente atualizem um arquivo.

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.

Gerador de Relatórios: Saídas desenvolvidas para o usuário através de um gerador de relatório deverão ser considerados como uma saída externa para cada relatório específico.

NÃO são consideradas Saídas Externas:

Telas de Help: Ver Consultas Externas.

Múltiplas Formas de Executar uma Mesma Lógica de Saída.

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.

Relatórios Ad-Hoc: Quando o usuário é responsável diretamente pela criação (através do uso de uma linguagem como FOCUS ou SQL) de um número indefinido de relatórios, nenhuma Saída Externa é considerada.

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.

(a) Identificação do Número de Arquivos Referenciados Arquivo Referenciado é qualquer Arquivo Lógico Interno ou Arquivo de Interface Externa consultado pelo processamento da Saída Externa. O número de Arquivos Referenciados é o somatório dos Arquivos Lógicos Internos e Arquivos de Interface Externa consultados na Saída Externa.

(b) Identificação do Número de Itens de Dados Item de Dado é um campo único, não recursivo, identificado pelo usuário, que é apresentado na Saída Externa. 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.

Page 20: Fpa man1

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.

Literais não devem ser contados como itens de dados.

Data, hora, controles de paginação etc. não devem ser considerados.

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.

1 a 5 itens de dados

6 a 19 itens de dados

20 ou mais itens de dados

0 ou 1 arquivo

referenciado

SIMPLES SIMPLES MÉDIA

2 a 3 arquivos

referenciados

SIMPLES MÉDIA COMPLEXA

4 ou mais arquivos

referenciados

MÉDIA COMPLEXA COMPLEXA

Figura 3.4: Tabela de Complexidade de Saída Externa

3.1.5. Consultas Externas

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:

Page 21: Fpa man1

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.

Consultas implícitas: Telas de alteração/remoção, que mostram o que será alterado ou removido antes de sua ação efetiva, devem ser consideradas como Consultas Externas devido à sua capacidade de consulta. Se a parte de entrada e saída da consulta for idêntica para as funções de remoção e de alteração, conte apenas uma Consulta Externa. Se a aplicação possui telas distintas de alteração e exclusão, e ambas fornecerem capacidade de consulta idêntica, considere apenas uma Consulta Externa.

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.

Help de um campo da Tela (“Field Sensitive Help”): Um recurso de help dependente da localização do cursor ou algum outro método de identificação para exibição de documentação específica para aquele item de dados. Considere uma Consulta Externa simples por aplicação, de forma independente do número de telas de ajuda associadas.

Consulta em formato gráfico.

NÃO são consideradas Consultas Externas:

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.

Page 22: Fpa man1

Análise de Pontos de Função 22

Documentação On-Line

Sistema de Teste

Subsistema de Help: Deve ser considerado uma aplicação em separado.

Sistemas Tutoriais: São considerados aplicações em separado.

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.

(a) Identificação do Número de Arquivos Referenciados - Partes de Entrada e Saída

O número de Arquivos Referenciados é o somatório de todos os Arquivos Lógicos Internos e Arquivos de Interface Externa acessados, considerando separadamente as partes de entrada e de Saída da Consulta Externa.

(b) Identificação do Número de Itens de Dados - Parte de Entrada Todos os itens de dados que servem de parâmetro no processamento da Consulta Externa devem ser contados. Deve ser contabilizado um item de dado adicional caso sejam requeridas mensagens de erro ou campos de confirmação associados à parte de entrada da Consulta Externa.

(c ) Identificação do Número de Itens de Dados - Parte de Saída O número de itens de dados é a quantidade de campos não recursivos, identificados pelo usuário, que aparecem na parte de Saída da Consulta Externa. Todos os campos que aparecem na parte de Saída devem ser contabilizados, 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 é apresentado em múltiplos campos deve ser contado como um único item de dados.

Literais não devem ser contados como itens de dados.

Data, hora, controles de paginação, etc. não devem ser contados.

De acordo com o número de itens de dados e dos arquivos referenciados, classifica-se a complexidade funcional das Consultas Externas como o maior nível obtido, comparando-se a complexidade da parte de entrada e da de Saída, utilizando-se as Figuras 3.5 e 3.6.

1 a 4 itens de dados

5 a 15 itens de dados

16 ou mais itens de dados

0 ou 1 arquivo

referenciado

SIMPLES SIMPLES MÉDIA

2 arquivos

referenciados

SIMPLES MÉDIA COMPLEXA

3 ou mais arquivos

referenciados

MÉDIA COMPLEXA COMPLEXA

Figura 3.5: Tabela de Complexidade da Consulta - Parte da Entrada

Page 23: Fpa man1

Análise de Pontos de Função 23

1 a 5 itens de dados

6 a 19 itens de dados

20 ou mais itens de dados

0 ou 1 arquivo

referenciado

SIMPLES SIMPLES MÉDIA

2 a 3 arquivos

referenciados

SIMPLES MÉDIA COMPLEXA

4 ou mais arquivos

referenciados

MÉDIA COMPLEXA COMPLEXA

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: Tipo de Função: Arquivo Lógico Interno

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 3 INTERNOS

Tipo de Função: Arquivo de Interface Externa

DESCRIÇÃO DA

FUNÇÃO Reg. Itens S M C

Arquivo de Funcionários

1 2 X

TOTAL DE ARQUIVOS DE 1 INTERFACE EXTERNA

Page 24: Fpa man1

Análise de Pontos de Função 24

Tipo de Função: Entradas Externas

DESCRIÇÃO DA FUNÇÃO

Arq. Itens S M C

Registro de Reservas 3 10 X Alteração de Reserva 3 10 X Exclusão de Reserva 2 3 X Inclusão de Apartamentos

1 4 X

Alteração de Apartamentos

1 4 X

Exclusão de Apartamentos

1 3 X

Inclusão de Clientes 2 12 X Alteração de Clientes 2 12 X Exclusão de Clientes 1 3 X TOTAL DE ENTRADAS EXTERNAS 5 2 2

Tipo de Função: Saídas Externas

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

TOTAL DE SAÍDAS EXTERNAS 3

Tipo de Função: Consultas Externas

DESCRIÇÃO DA

FUNÇÃO

Entrada A I

Saída

A I

S

M

C

Consulta de Reservas

1 2 3 8 X

Consulta ao Cadastro de Apartamentos

1 3 1 1 X

Consulta ao Cadastro de Clientes

1 3 2 10 X

TOTAL DE CONSULTAS EXTERNAS 1 2

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.

Page 25: Fpa man1

Análise de Pontos de Função 25

3.4. CARACTERÍSTICAS GERAIS DOS SISTEMAS Após a identificação dos tipos de funções que representam a funcionalidade específica de uma aplicação, é necessário medir a funcionalidade global desta aplicação. A técnica FPA mede a funcionalidade geral de uma aplicação através da avaliação do nível de influência de 14 Características Gerais dos sistemas. As características gerais de um sistema são: 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 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.1. Comunicação de Dados Os dados e informações de controle utilizados na aplicação são enviados ou recebidos através de recursos de comunicação de dados. Terminais conectados a um computador utilizam os recursos de comunicação de dados. Protocolo é um conjunto de convenções que permite a troca ou transferência de informações entre dois sistemas ou periféricos. Toda comunicação de dados requer algum tipo de protocolo. Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo: 0 - O processamento da aplicação é puramente “batch” ou é executado em um PC isolado. 1 - A aplicação é “batch” mas tem entrada de dados remota ou impressão remota. 2 - A aplicação é “batch” mas tem entrada de dados remota e impressão remota. 3- Captura de Dados “on-line” via terminal de vídeo ou via um processador “front-end”, para

alimentar processos “batch” ou sistemas de consultas (“Query Systems”). Por exemplo, as transações de um banco são armazenadas em um computador “front-end” durante o dia e, à noite, estas informações alimentam os processos batch e o sistema de consulta de saldo do banco.

4 -Mais que um “front-end”, mas a aplicação suporta apenas um tipo de protocolo de comunicação.

5 -Mais que um “front-end” e a aplicação suporta mais de um tipo de protocolo de comunicação.

3.4.2. Processamento Distribuído Dados ou processamento distribuído entre várias unidades de processamento (CPUs) são uma característica da aplicação dentro de sua fronteira. Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

Page 26: Fpa man1

Análise de Pontos de Função 26

0 - A aplicação não auxilia na transferência de dados ou processamento entre as CPUs da

instalação. 1 - A aplicação prepara dados para o usuário final processar em outra CPU da instalação. Por

exemplo, planilhas eletrônicas ou gerenciadores de banco de dados de PC. 2 - Os dados são preparados para transferência, transferidos e processados em uma outra

CPU da instalação (mas NÃO para processamento pelo usuário final como visto no item (1).

3 - Processamento distribuído e transferência de dados “on-line” apenas em uma direção. 4 - Processamento distribuído e transferência de dados “on-line” em ambas as direções. 5 - As funções de processamento são executadas dinamicamente na CPU mais

apropriada.

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:

0 - Nenhuma exigência especial de performance foi fixada pelo usuário. 1 - Requerimentos de performance foram estabelecidos e revisados, mas nenhuma ação

especial foi necessária. 2 - O tempo de resposta ou throughput é crítico durante as horas de pico. Nenhuma

consideração especial para utilização de CPU foi requerida. O intervalo de tempo limite (“deadline”) do processamento é sempre para o próximo dia útil.

3 - O tempo de resposta ou throughput é crítico durante todo o horário de utilização. Não foi necessário nenhum procedimento especial para utilização de CPU. Os requerimentos de prazo de processamento com outros sistemas são limitantes.

4 - Os requerimentos de performance estabelecidos pelo usuário são rigorosos o bastante para requerer tarefas de análise de performance na fase de análise e desenho da aplicação.

5 - Além do descrito no item 4, ferramentas de análise de performance foram usadas nas fases de desenho, desenvolvimento e/ou implementação a fim de proporcionar a performance estabelecida pelo usuário.

3.4.4. Utilização do Equipamento Característica que representa a necessidade de se fazer considerações especiais no desenho dos sistemas para que a configuração do equipamento não fique sobrecarregada. Por exemplo, o usuário deseja executar a aplicação no equipamento atual ou no que será contratado. Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo: 0 - Não há restrições operacionais explícitas ou implícitas. 1 - Existem restrições operacionais, mas são menos restritivas do que aplicações típicas.

Nenhum esforço extra é necessário para suplantar as restrições. 2 - Algumas considerações sobre tempo e segurança são necessárias. 3 - Necessidades especiais de processador para uma parte específica da aplicação. 4 - Restrições operacionais estabelecidas requerem atenção especial a nível de processador

central ou processador dedicado para executar a aplicação. 5 - Além do descrito acima, existem sobrecargas a nível das unidades de processamento

(CPUs) distribuídas da instalação.

3.4.5. Volume de Transações O volume de transações é alto e tem influência no desenho, desenvolvimento, implantação e manutenção da aplicação. Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo: 0 - Nenhum período de pico de transações é esperado. 1 - Picos de transações mensais, quadrimestrais, sazonais e anuais são esperados. 2 - Picos semanais de transações são esperados. 3 - Picos diários de transações são esperados. 4 - Altos volumes de transações foram fixados pelo usuário para a aplicação, o que força a

execução de tarefas de análise de performance na fase de desenho da aplicação.

Page 27: Fpa man1

Análise de Pontos de Função 27

5 - Requer o uso de ferramentas de análise de performance nas fases de desenho, desenvolvimento e/ou implantação, além das considerações acima.

3.4.6. Entrada de Dados “On-line” A aplicação possui entrada de dados “on-line”. Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo: 0 - Todas as transações são processadas em modo batch. 1 - 1% a 7% das transações são entradas de dados interativas. 2 - 8% a 15% das transações são entradas de dados interativas. 3 - 16% a 23% das transações são entradas de dados interativas. 4 - 24% a 30% das transações são entradas de dados interativas. 5 - Mais de 30% das transações são entradas de dados interativas.

3.4.7. Eficiência do Usuário Final As funções “on-line” fornecidas enfatizam um desenho da aplicação voltado para a eficiência do usuário final.

Menus

Documentação/Help On-line

Movimento automático do cursor

Movimento de Tela (“Scrolling”) vertical e horizontal

Impressão remota (via transações “on-line”)

Teclas de Função pré-definidas

Execução de “jobs batch” a partir de transações “on-line”

Seleção de dados da tela via movimentação do cursor

Uso intenso de vídeo reverso, brilho intensificado, sublinhado, cores e outros recursos de vídeo

Impressão da documentação via “hard copy” em transações “on-line”

Interface para “mouse”

“Pop-up Windows”

O mínimo possível de telas para executar as funções do negócio

Fácil navegação entre telas (por exemplo, através de teclas de função)

Suporte bilíngüe (suporta dois idiomas, contar como quatro itens)

Suporte multilingüe (suporta mais de dois idiomas, contar como seis itens)

Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo: 0 - A aplicação não apresenta nenhum dos itens acima. 1 - Apresenta de 1 a 3 dos itens acima. 2 - Apresenta de 4 a 5 dos itens acima.

Page 28: Fpa man1

Análise de Pontos de Função 28

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.

3.4.8. Atualização “On-line” A aplicação possibilita a atualização “on-line” dos Arquivos Lógicos Internos. Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

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.

3.4.9. Processamento Complexo O processamento complexo é uma característica da aplicação, podendo ser divido nas seguintes categorias:

Processamento especial de auditoria e/ou processamento especial de segurança.

Processamento lógico extensivo.

Processamento matemático extensivo.

Grande quantidade de processamento de exceções, resultando em transações incompletas que necessitam de reprocessamento. Por exemplo: transações incompletas de ATMs causadas por interrupções de comunicação, valores de dados ou falha de edição.

Processamento complexo para manipular múltiplas possibilidades de entrada /saída. Por exemplo: múltiplos meios e independência de equipamentos.

Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0 - Não apresenta nenhum dos itens acima. 1 - Apresenta um dos itens acima. 2 - Apresenta dois dos itens acima. 3 - Apresenta três dos itens acima. 4 - Apresenta quatro dos itens acima. 5 - Apresenta todos os itens acima.

3.4.10. Reutilização de Código A aplicação e o seu código foram especificamente projetados, desenvolvidos e suportados para serem reutilizados em outras aplicações. Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

0 - Não apresenta código reutilizável. 1 - O código reutilizável é usado somente dentro da própria aplicação.

Page 29: Fpa man1

Análise de Pontos de Função 29

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.

3.4.11. Facilidade de Implantação Facilidade de implantação e conversão de dados são características da aplicação. Um plano de implantação e conversão de dados e/ou ferramentas de conversão de dados foi preparado e testado durante a fase de testes dos sistemas. Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo:

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.

3.4.12. Facilidade Operacional Facilidade operacional é uma característica da aplicação. Procedimentos efetivos de inicialização, backup e recuperação foram desenvolvidos e testados durante a fase de teste do sistema. A aplicação minimiza a necessidade de atividades manuais, tais como montagem de fitas magnéticas, manuseio de formulários e intervenção manual do operador. Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo: 0 - Nenhuma consideração especial sobre facilidade operacional, além dos procedimentos

normais de backup, foi feita pelo usuário. 1 - Selecionar os seguintes itens que se aplicam à aplicação. Cada item selecionado possui o

valor um.

Procedimentos eficientes de inicialização, backup e recuperação foram preparados, mas a intervenção do operador é necessária.

Procedimentos eficientes de inicialização, backup e recuperação foram preparados, mas nenhuma intervenção do operador é necessária (contar como dois itens).

A aplicação minimiza a operação de montagem de fitas magnéticas.

A aplicação minimiza a necessidade de manuseio de formulários.

5 - A aplicação foi projetada para não precisar de intervenção do operador no seu funcionamento normal. Apenas a inicialização e parada do sistema ficam a cargo do operador. A recuperação automática de erros é uma característica da aplicação.

Page 30: Fpa man1

Análise de Pontos de Função 30

3.4.13. Múltiplos Locais A aplicação foi especificamente projetada, desenvolvida e suportada para ser instalada em múltiplos locais de uma organização ou para múltiplas organizações. Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo: 0 - Nenhuma solicitação do usuário para considerar a necessidade de instalar a aplicação em

mais de um local. 1 - Necessidade de instalação em múltiplos locais foi levada em consideração no projeto do

sistema e a aplicação foi projetada para operar somente em ambiente idênticos de hardware e software.

2 - Necessidade de instalação em múltiplos locais foi levada em consideração no projeto do sistema e a aplicação foi projetada para operar somente em ambientes similares de hardware e software.

3 - Necessidade de instalação em múltiplos locais foi levada em consideração no projeto do sistema e a aplicação foi projetada para operar inclusive em ambientes diferentes de hardware e/ou software.

4 - Um plano de documentação e manutenção foi elaborado e testado para suportar a aplicação em múltiplos locais e a aplicação atende aos itens (1) e (2).

5 - Um plano de documentação e manutenção foi elaborado e testado para suportar a aplicação em múltiplos locais e a aplicação atende ao item (3).

3.4.14. Facilidade de Mudanças A aplicação foi especificamente projetada, desenvolvida para suportar manutenção, visando a facilidade de mudanças. Por exemplo:

Capacidade de consultas/relatórios flexíveis está disponível.

Dados de controle do negócio são agrupados em tabelas passíveis de manutenção pelo usuário.

Classificar o Nível de Influência na aplicação de acordo com a tabela abaixo: 0 - Nenhum requerimento especial foi solicitado pelo usuário para projetar a aplicação,

visando minimizar ou facilitar mudanças. 1 - Selecionar quais dos seguintes itens se aplicam à aplicação. Cada item possui valor um:

É fornecido recurso de consulta/relatórios flexíveis capaz de manipular solicitações simples de consulta (“query requests”). Por exemplo: lógica de and/or aplicada a somente um Arquivo Lógico Interno (contar como um item).

É fornecido recurso de consultas/relatórios flexíveis capaz de manipular solicitações de consulta (“query requests”) de média complexidade. Por exemplo: lógica de and/or aplicada a mais de um Arquivo Lógico Interno (contar como dois itens).

É fornecido recurso de consulta/relatórios flexíveis capaz de manipular solicitações complexas de consulta (“query requests”).Por exemplo: combinações de lógica de and/or aplicadas a um ou mais Arquivos Lógicos Internos (contar como três itens).

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).

Page 31: Fpa man1

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:

CARACTERÍSTICAS GERAIS DOS SISTEMAS

NÍVEL DE INFLUÊNCIA

1. Comunicação de Dados 4 2. Processamento Distribuído 0 3. Performance 0 4. Utilização do Equipamento 1 5. Volume de Transações 1 6. Entrada de Dados “On-Line” 5 7. Eficiência do Usuário Final 1 8. Atualização “On-Line” 5 9. Processamento Complexo 0 10. Reutilização de Código 0 11. Facilidade de Implantação 0 12. Facilidade Operacional 1 13. Múltiplos Locais 0 14. Facilidade de Mudanças 0 NÍVEL DE INFLUÊNCIA (NI) 18

3.6. EXERCÍCIO Identifique e classifique o nível de influência das características do Sistema Integrado de Estoque - Projeto de Desenvolvimento.

4. Cálculo de Pontos de Função O Cálculo de Pontos de Função de uma aplicação é um processo realizado em três etapas:

Cálculo de Pontos de Função Não-Ajustados

Cálculo do Fator de Ajuste

Cálculo de Pontos de Função Ajustados

4.1. CÁLCULO DE PONTOS DE FUNÇÃO NÃO AJUSTADOS Uma vez que os componentes de uma aplicação tenham sido identificados e categorizados nos vários tipos de funções (Arquivos Lógicos Internos, Arquivos de Interface Externa, Entradas Externas, Saídas Externas e Consultas Externas), cada componente é então associado a um Valor de Pontos de Função Não-Ajustados, dependendo do tipo de função e de sua complexidade funcional (1). 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

Page 32: Fpa man1

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. TIPO DE FUNÇÃO

COMPLEXIDADE FUNCIONAL

TOTAL COMPLEX.

TOTAL TIPO

FUNÇÃO ARQ. LÓGICO

SIMPLES X 7= MÉDIA X 10= COMPLEXA X 15 =

ARQ. INTERFACE

SIMPLES X 5 = MÉDIA X 7 = COMPLEXA X 10 =

ENTRADA SIMPLES X 3 = MÉDIA X 4 = COMPLEXA X 6 =

SAÍDA SIMPLES X 4 = MÉDIA X 5 = COMPLEXA X 7 =

CONSULTA SIMPLES X 3 = MÉDIA X 4 = COMPLEXA X 6 =

*** TOTAL DE PONTOS DE FUNÇÃO NÃO-AJUSTADOS =

Figura 4.1 - Tabela de Cálculo de Pontos de Função Não-Ajustados

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:

PONTOS DE FUNÇÃO NÃO-AJUSTADOS TIPO DE FUNÇÃO

COMPLEXIDADE FUNCIONAL

TOTAL COMPLEX

.

TOTAL TIPO

FUNÇÃO ARQ. LÓGICO

3 SIMPLES X 7= MÉDIA X 10= COMPLEXA X 15=

21 21

ARQ. 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 3 SIMPLES X 4= MÉDIA X 5= COMPLEXA X 7=

12 12

CONSULTA 1 SIMPLES X 3= 2 MÉDIA X 4= COMPLEXA X 6=

3 8

11

*** TOTAL DE PONTOS DE FUNÇÃO NÃO-AJUSTADOS = 84

Page 33: Fpa man1

Análise de Pontos de Função 33

EXERCÍCIO: Calcule os Pontos de Função Não-Ajustados do Sistema Integrado de Estoque - Projeto de Desenvolvimento.

4.2. CÁLCULO DO FATOR DE AJUSTE

valor do Fator de Ajuste é baseado em 14 Características Gerais dos Sistemas que medem a funcionalidade geral da aplicação. A cada característica é atribuído um peso que varia de 0 a 5. A totalização das 14 características representa o Valor do Fator de Ajuste. Quando aplicado, esse valor ajusta o total de Pontos de Função Não Ajustados em +/- 35%, produzindo o valor final de Pontos de Função da Aplicação.

Os passos para calcular o Valor do Fator de Ajuste são: 1 - Avaliar o Nível de Influência cada uma das 14 Características Gerais dos Sistemas em uma

escala de 0 a 5. 2 - Somar os 14 Níveis de Influência obtidos para produzir o Nível de Influência da Aplicação. 3 - Aplicar o Nível de Influência à seguinte equação para produzir o Fator de Ajuste:

(NÍVEL DE INFLUÊNCIA * 0,01) + 0,65 = FATOR DE AJUSTE

A Figura 4-2 da página seguinte apresenta uma tabela que facilita o cálculo do Fator de Ajuste:

CARACTERÍSTICAS GERAIS

DOS SISTEMAS NÍVEL DE

INFLUÊNCIA 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 NÍVEL DE INFLUÊNCIA (NI) FATOR DE AJUSTE = (NI * 0,01) + 0,65 =

Figura 4.2 - Tabela de Cálculo do Fator de Ajuste

EXEMPLO: Fator de Ajuste do Sistema de Reservas - Projeto de Desenvolvimento pode ser calculado da seguinte maneira:

Page 34: Fpa man1

Análise de Pontos de Função 34

FATOR DE AJUSTE

CARACTERÍSTICAS GERAIS DOS SISTEMAS

NÍVEL DE INFLUÊNCIA

1. Comunicação de Dados 4 2. Processamento Distribuído 0 3. Performance 0 4. Utilização do Equipamento 1 5. Volume de Transações 1 6. Entrada de Dados “On-Line” 5 7. Eficiência do Usuário Final 1 8. Atualização “On-Line” 5 9. Processamento Complexo 0 10. Reutilização de Código 0 11. Facilidade de Implantação 0 12. Facilidade Operacional 1 13. Múltiplos Locais 0 14. Facilidade de Mudanças 0 NÍVEL DE INFLUÊNCIA (NI) 18 FATOR DE AJUSTE = (NI * 0,01) + 0,65 = 0,83

EXERCÍCIO Calcule o Fator de Ajuste do Sistema Integrado de Estoque - Projeto de Desenvolvimento.

4.3. CÁLCULO DE PONTOS DE FUNÇÃO AJUSTADOS Nesta etapa são utilizados três tipos de fórmulas diferentes dependendo do tipo de cálculo que se deseja obter. Os tipos de cálculo são:

Cálculo de Pontos de Função de um Projeto de Desenvolvimento.

Cálculo de Pontos de Função de um Projeto de Manutenção.

Cálculo de Pontos de Função da Aplicação

4.3.1. Cálculo de Pontos de Função de um Projeto de Desenvolvimento Para calcular o total de Pontos de Função de um Projeto de Desenvolvimento, a seguinte fórmula deve ser usada:

PF_DESENVOLVIMENTO = PF-NÃO_AJUSTADO * FATOR_AJUSTE

Onde: PF_DESENVOLVIMENTO = Total de Pontos de Função de um Projeto de

Desenvolvimento PF_NÃO_AJUSTADO = Total de Pontos de Função Não-Ajustados

FATOR_AJUSTE = Valor do Fator de Ajuste

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.

Page 35: Fpa man1

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 = PF_NÃO-AJUSTADO * FATOR_DE_AJUSTE PF_DESENVOLVIMENTO = 84 * 0,83

PF_DESENVOLVIMENTO = 69,7 PF

EXERCÍCIO Calcule os Pontos de Função Ajustados do Sistema Integrado de Estoque - Projeto de Desenvolvimento.

4.3.2. Cálculo de Pontos de Função de um Projeto de Manutenção Para calcular o total de Pontos de Função de Manutenção, a seguinte fórmula deve ser utilizada:

PF_MANUTENÇÃO = [(PF_INCLUÍDO + PF_ALTERADO_ATUAL) * FA_ATUAL] + (PF_EXCLUÍDO * FA_ANTERIOR)

Onde: PF_MANUTENÇÃO=Total de Pontos de Função 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 PF_ALTERADO_ATUAL=Total de Pontos de Função Não-Ajustados das funções que foram modificadas na aplicação. Este número reflete as funções após as modificações PF_EXCLUÍDO=Total de Pontos de Função Não-Ajustados das funções que foram removidas da aplicação. FA_ATUAL=Fator de Ajuste após o projeto de manutenção FA_ANTERIOR=Fator de Ajuste antes do projeto de manutenção

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:

Page 36: Fpa man1

Análise de Pontos de Função 36

Passo 1: Identificar e Classificar as Funções Incluídas Tipo de Função: Entradas Externas DESCRIÇÃO DA FUNÇÃO Arq

. Iten

s S M C

Cancelamento de Reservas

3 6 X

TOTAL DE ENTRADAS EXTERNAS

1

Tipo de Função: Saídas Externas DESCRIÇÃO DA FUNÇÃO Arq

. Iten

s S M C

Relatório de Reservas Canceladas

2 4 X

TOTAL DE SAÍDAS EXTERNAS

1

Passo 2: Identificar e Classificar as Funções Alteradas Tipo de Função: Arquivo Lógico Interno DESCRIÇÃO DA FUNÇÃO Re

g. Iten

s S M C

Arquivo de Reservas Arquivo de Apartamentos

1

1

11

5

X

X

TOTAL DE ARQUIVOS LÓGICOS INTERNOS 2

Tipo de Função: Entradas Externas DESCRIÇÃO DA FUNÇÃO Ar

q. Iten

s S M C

Registro de Reservas Alteração de Reserva Inclusão de Apartamentos Alteração de Apartamentos Exclusão de Apartamentos

4 4

1 1 1

12 11

7 7 3

X X X

X X

TOTAL DE ENTRADAS EXTERNAS

3 2

Tipo de Função: Saídas Externas DESCRIÇÃO DA FUNÇÃO Arq

. Iten

s S M C

Relatório de Apartamentos

1 5 X

TOTAL DE SAÍDAS EXTERNAS

1

Tipo de Função: Saídas Externas

Page 37: Fpa man1

Análise de Pontos de Função 37

DESCRIÇÃO DA FUNÇÃO

Entrada A I

Saída

A I

S

M

C

Consulta de Reservas

1 2 3 10 X

Consulta ao Cadastro de Apartamentos

1 3 1 4 X

TOTAL DE CONSULTAS EXTERNAS 1 1

Passo 3: Identificar e Classificar as Funções Excluídas Tipo de Função: Entradas Externas DESCRIÇÃO DA FUNÇÃO Arq

. Itens S M C

Exclusão de Reservas

2 3 X

TOTAL DE ENTRADAS EXTERNAS

1

Passo 4: Calcular Pontos de Função Não-Ajustados das Inclusões TIPO DE FUNÇÃO

COMPLEXIDADE FUNCIONAL

TOTAL COMPLEX

TOTAL TIPO

FUNÇÃO ARQ. LÓGICO SIMPLES X 7=

MÉDIA X 10= COMPLEXA X 15=

ARQ.

INTERFACE

SIMPLES X 5= MÉDIA X 7= COMPLEXA X 10=

ENTRADA

SIMPLES X 3= MÉDIA X 4= 1 COMPLEXA X 6=

6

6

SAÍDA 1 SIMPLES X 4= MÉDIA X 5= COMPLEXA X 7=

4

4

CONSULTA SIMPLES X 3= MÉDIA X 4= COMPLEXA X 6=

*** PONTOS DE FUNÇÃO NÃO-AJUSTADOS INCLUÍDOS = 10

Passo 5: Calcular Pontos de Função Não-Ajustados das Alterações após as modifcações

TIPO DE FUNÇÃO

COMPLEXIDADE FUNCIONAL

TOTAL COMPLEX.

TOTAL TIPO

FUNÇÃO

ARQ. LÓGICO

2 SIMPLES X 7= MÉDIA X 10= COMPLEXA X 15=

14

14

ARQ. INTERFACE

SIMPLES X 5= MÉDIA X 7= COMPLEXA X 10=

ENTRADA

3 SIMPLES X 3= MÉDIA X 4=

9

Page 38: Fpa man1

Análise de Pontos de Função 38

2 COMPLEXA X 6= 12 21

SAÍDA 1 SIMPLES X 4= MÉDIA X 5= COMPLEXA X 7=

4

4

CONSULTA 1 SIMPLES X 3= 1 MÉDIA X 4= COMPLEXA X 6=

3 4

7 *** PONTOS DE FUNÇÃO NÃO-AJUSTADOS ALTERADOS =46

(Após Modificações)

Passo 6: Calcular Pontos de Função Não-Ajustados das Exclusões

TIPO DE FUNÇÃO

COMPLEXIDADE FUNCIONAL

TOTAL COMPLEX

TOTAL TIPO

FUNÇÃO

ARQ. LÓGICO

SIMPLES X 7= MÉDIA X 10= COMPLEXA X 15=

ARQ.

INTERFACE

SIMPLES X 5= MÉDIA X 7= COMPLEXA X 10=

ENTRADA

1 SIMPLES X 3= MÉDIA X 4= COMPLEXA X 6=

3

3

SAÍDA SIMPLES X 4= MÉDIA X 5= COMPLEXA X 7=

CONSULTA

SIMPLES X 3= MÉDIA X 4= COMPLEXA X 6=

*** PONTOS DE FUNÇÃO NÃO-AJUSTADOS EXCLUÍDOS = 3

Passo 7: Calcular Fator de Ajuste Atual

CARACTERÍSTICAS GERAIS DOS SISTEMAS

NÍVEL DE INFLUÊNCIA

1. Comunicação de Dados 4 2. Processamento Distribuído 0 3. Performance 0 4. Utilização do Equipamento 1 5. Volume de Transações 2 6. Entrada de Dados “On-Line” 5 7. Eficiência do Usuário Final 1 8. Atualização “On-Line” 5 9. Processamento Complexo 0 10. Reutilização de Código 0 11. Facilidade de Implantação 0 12. Facilidade Operacional 1 13. Múltiplos Locais 1 14. Facilidade de Mudanças 0 NÍVEL DE INFLUÊNCIA (NI) 20

Page 39: Fpa man1

Análise de Pontos de Função 39

FATOR DE AJUSTE = (NI * 0,01) + 0,65 = 0,85

Observação: FATOR DE AJUSTE Anterior = 0,83

Passo 8: Calcular Pontos de Função Ajustados do Sistema de Reservas - Projeto de Manutenção PF_MANUTENÇÃO = ((PF_INCLUÍDO + PF_ALTERADO_ATUAL) * FA_ATUAL) + (PF_EXCLUÍDO * FA_ANTERIOR) PF_MANUTENÇÃO = (10 + 46) * 0,85 + 3 * 0,83 = 47,6 + 2,49

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.

4.3.3. Cálculo de Pontos de Função de uma Aplicação

(a) Pontos de Função de Aplicação Já Implantada Para calcular o total de Pontos de Função de uma Aplicação já implantada, a seguinte fórmula deve ser usada:

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

b) Pontos de Função de Aplicação a partir de pontos de Função de um Projeto de Desenvolvimento Para calcular o total de Pontos de Função de uma Aplicação a partir do Total de Pontos de Função de um Projeto de Desenvolvimento, a seguinte fórmula deve ser utilizada:

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

(c ) Pontos de Função da Aplicação após um Projeto de Manutenção Para produzir o total de Pontos de Função de uma Aplicação após um Projeto de Manutenção, a seguinte fórmula deve ser usada:

Page 40: Fpa man1

Análise de Pontos de Função 40

PF_APLICAÇÃO = (PF_NÃO AJUSTADO + PF_INCLUÍDO + PF_ALTERADO_ATUAL - PF_ALTERADO_ANTERIOR - PF_EXCLUÍDO) * FA_ATUAL

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 PF_ALTERADO_ATUAL =Total de Pontos de Função Não-Ajustados das funções que foram

modificadas na aplicação. Este número reflete as funções após as modificações

PF_ALTERADO_ANTERIOR =Total de Pontos de Função Não-Ajustados das funções que foram modificadas na aplicação. Este número reflete as funções antes das modificações

PF_EXCLUÍDO =Total de Pontos de Função Não-Ajustados das funções que foram removidas da aplicação

FA_ATUAL =Valor do Fator de Ajuste após o projeto de manutenção

EXEMPLO Ao final do Projeto de Manutenção do Sistema de Reservas é necessário recalcular o tamanho da aplicação.

Passo 1: Calcular Pontos de Função Não-Ajustados das Alterações antes das modificações

TIPO DE FUNÇÃO

COMPLEXIDADE FUNCIONAL

TOTAL COMPLEX.

TOTAL TIPO

FUNÇÃO

ARQ. LÓGICO

2 SIMPLES X 7= MÉDIA X 10= COMPLEXA X 15=

14

14

ARQ. INTERFACE

SIMPLES X 5= MÉDIA X 7= COMPLEXA X 10=

ENTRADA

3 SIMPLES X 3= MÉDIA X 4= 2 COMPLEXA X 6=

9

12

21

SAÍDA 1 SIMPLES X 4= MÉDIA X 5= COMPLEXA X 7=

4

4

CONSULTA 1 SIMPLES X 3= 1 MÉDIA X 4= COMPLEXA X 6=

3 4

7 *** PONTOS DE FUNÇÃO NÃO-AJUSTADOS ALTERADOS = 46

(Antes das Modificações)

Passo 2: Calcular Pontos de Função da Aplicação após as modificações PF_APLICAÇÃO = (PF_NÃO-AJUSTADO + PF_INCLUÍDO +

PF_ALTERADO_ATUAL - PF_ALTERADO_ANTERIOR - PF_EXCLUÍDO) * FA_ATUAL

PF_APLICAÇÃO = (84 + 10 + 46 - 46 - 3) * 0,85

Page 41: Fpa man1

Análise de Pontos de Função 41

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.

5 Dimensionando Projetos com FPA Uma das principais vantagens do FPA sobre outras técnicas de medição de aplicações é a possibilidade de estimar dimensão de projetos desde as primeiras fases de análise e desenho. A precisão da estimativa do tamanho de uma aplicação varia de acordo com o grau de conhecimento adquirido sobre a mesma. Segundo a empresa SPR - Software Productivity Research, ao final da fase de desenho do sistema é possível fazer estimativas com uma margem de erro de +/- 10%. 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

100%90%80%60%40%10% 25%

+5%+10%+20%+25%+35% +30%

Fase 1Requerimentos

Fase 2Desenho Final

Fase 3Desenho Final

Fase 4Codificação

Fase 5Teste

Fase 6Instalação

Figura 5-1: Relação entre Conhecimento do Projeto e Precisão da Estimativa FPA

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.

5.1. MÉTODO DE ESTIMATIVA POR PERCENTUAL A partir de dados coletados em mais de 120 projetados, a empresa SPR - Software Productivity Research verificou a existência de uma correlação entre os vários tipos de funções de uma aplicação, que pode ser expressa da seguinte forma:

Page 42: Fpa man1

Análise de Pontos de Função 42

A quantidade de Arquivos Lógicos Internos representa 25% do total de funções de uma aplicação.

A quantidade de Arquivos de Interface Externa representa 3% do total de funções de uma aplicação.

A quantidade de Entradas Externas representa 30% do total de funções de uma aplicação.

A quantidade de Saídas Externas representa 28% do total de funções de uma aplicação.

A quantidade de Consultas Externas representa 14% do total de funções de uma aplicação.

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:

Se 13 ARQUIVOS LÓGICOS INTERNOS = 25% do TOTAL DE FUNÇÕES, então: TOTAL DE FUNÇÕES = 52

Se ARQUIVOS DE INTERFACE EXTERNA = 3% do TOTAL DE FUNÇÕES, então: ARQUIVOS DE INTERFACES EXTERNAS = 1,56 (arredonda-se para 2)

Se ENTRADAS EXTERNAS = 30% do TOTAL DE FUNÇÕES, então: ENTRADAS EXTERNAS = 15,6 (arredonda-se para 16)

Se SAÍDAS EXTERNAS = 28% do TOTAL DE FUNÇÕES, então: SAÍDAS EXTERNAS = 14,56 (arredonda-se para 15)

Se CONSULTAS EXTERNAS = 14% do TOTAL DE FUNÇÕES, então: CONSULTAS EXTERNAS = 7,28 (arredonda-se para 7)

A partir desses valores, pode-se calcular os Pontos de Função Não-Ajustados da aplicação.

TIPO DE FUNÇÃO

COMPLEXIDADE FUNCIONAL

TOTAL COMPLEX

TOTAL TIPO

FUNÇÃO ARQ.

LÓGICO 13 MÉDIA X 10= 130 130

ARQ. INTERFACE

2 MÉDIA X 7= 14 14

ENTRADA 16 MÉDIA X 4= 64 64 SAÍDA 15 MÉDIA X 5= 75 75

Page 43: Fpa man1

Análise de Pontos de Função 43

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:

Se 3 ARQUIVOS LÓGICOS INTERNOS = 25% do TOTAL DE FUNÇÕES, então: TOTAL DE FUNÇÕES = 12

Se ARQUIVOS DE INTERFACE EXTERNA = 3% do TOTAL DE FUNÇÕES, então: ARQUIVOS DE INTERFACES EXTERNAS = 0,36 (arredonda-se para 1)

Se ENTRADAS EXTERNAS = 30% do TOTAL DE FUNÇÕES, então: ENTRADAS EXTERNAS = 3,6 (arredonda-se para 4)

Se SAÍDAS EXTERNAS = 28% do TOTAL DE FUNÇÕES, então: SAÍDAS EXTERNAS = 14,56 (arredonda-se para 15)

Se SAÍDAS EXTERNAS = 28% do TOTAL DE FUNÇÕES, então: SAÍDAS EXTERNAS = 3,36 (arredonda-se para 3)

Se CONSULTAS EXTERNAS = 14% do TOTAL DE FUNÇÕES, então: CONSULTAS EXTERNAS = 1,68 (arredonda-se para 2)

A partir desses valores, pode-se calcular os Pontos de Função Não-Ajustados do Sistema de Reservas:

TIPO DE FUNÇÃO

COMPLEXIDADE FUNCIONAL

TOTAL COMPLEX

TOTAL TIPO

FUNÇÃO ARQ.

LÓGICO 3 MÉDIA X 10= 30 30

ARQ. INTERFACE

1 MÉDIA X 7= 7 7

ENTRADA 4 MÉDIA X 4= 16 16 SAÍDA 3 MÉDIA X 5= 15 15

CONSULTA 2 MÉDIA X 4= 8 8 *** TOTAL DE PONTOS DE FUNÇÃO NÃO-AJUSTADOS = 76

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.

Page 44: Fpa man1

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:

Nível de Produtividade da Equipe

Esforço de Desenvolvimento de Software

Custo de Software

Taxa de Produção de Software

Taxa de Manutenção de Software

Page 45: Fpa man1

Análise de Pontos de Função 45

A.1 PRODUTIVIDADE NO DESENVOLVIMENTO DE SOFTWARE A produtividade na construção de um software traduz a velocidade com que o software foi construído, isto é, quantas unidades de tamanho do software (Pontos de Função) foram construídas em uma unidade de tempo (horas, meses etc.) ou quantas unidades de tempo foram consumidas para produzir uma unidade de tamanho do software.

PRODUTIVIDADE = TEMPO / PONTOS POR FUNÇÃO

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: PRODUTIVIDADE = 900 h / 400 PF = 2,25 horas de trabalho / Ponto de Função Em outra ocasião, esse mesmo analista trabalhou 1800 horas para desenvolver outra aplicação cujo tamanho também era 400 PFs. Neste caso a sua produtividade foi: PRODUTIVIDADE = 1800 h / 400 PF = 4,50 horas de trabalho / Ponto de Função Por que a produtividade desse analista sofreu alteração tão significativa de o tamanho das duas aplicações era idêntico? Vários fatores podem influenciar a produtividade no desenvolvimento de software, por exemplo:

Linguagem de Codificação

Experiência da Equipe

Utilização de Ferramentas CASE

etc.

Segundo dados estatísticos, os seguintes níveis de produtividade por linguagem foram encontrados

Page 46: Fpa man1

Análise de Pontos de Função 46

PRODUTIVIDADE (HORAS / PONTO DE FUNÇÃO) • LINGUAGEM DE MÁQUINA • ASSEMBLER • MACRO ASSEMBLER • C • BASIC INTERPRETADO • FORTRAN II DE 26 A 30 HORAS • FORTRAN 66 ESFORÇO POR PONTO

DE FUNÇÃO • FORTRAN 77 • ALGOL 68 • ALGOL W • ANSI COBOL 74 • MUMPS • ANSI COBOL 85 • PASCAL • BASIC COMPILADO • PL/1 • ADA • PROLOG DE 13 A 25 HORAS • LISP ESFORÇO POR PONTO

DE FUNÇÃO • FORTH • ANSI BASIC • AI SHELL • SIMULAÇÃO • TABELA DE DECISÃO • APOIO À DECISÃO • ESTATÍSTICA • APL DE 6,5 A 12 HORAS • ORIENTADAS A OBJETO ESFORÇO POR PONTO

DE FUNÇÀO • OBJECTIVE C • C ++ • SMALLTALK • GERADOR DE PROGRAMAS DE 4,3 A 8,6 HORAS DE ESFORÇO POR PONTO

DE FUNÇÃO • LINC • IDEAL DE 2,6 A 4,3 HORAS DE • QUERY ESFORÇO POR PONTO

DE FUNÇÃO • SQL • PLANILHA ELETRÔNICA

FONTE: CAPERS JONES

Page 47: Fpa man1

Análise de Pontos de Função 47

A.2. ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE O esforço necessário para desenvolver um software pode ser definido como sendo a quantidade de horas de trabalho que serão necessárias para produzir um software. Para fazer esse cálculo, a seguinte fórmula pode ser utilizada:

ESFORÇO = PRODUTIVIDADE * TAMANHO DO SOFTWARE

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:

LINGUAGEM PRODUTIVIDADE

(Hh/PF) ESFORÇO

(Hh) ESFORÇO

(HM) COBOL 74 28 Hh/PF 1952 Hh 11,22 HM PL/1 18 Hh/PF 1255 Hh 7,21 HM LINC 3 Hh/PF 209 Hh 1,20 HM

Onde: Hh Homem-hora HM Homem-mês

A.3. CUSTO DE SOFTWARE

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:

Page 48: Fpa man1

Análise de Pontos de Função 48

CUSTO TOTAL =TAMANHO DO SISTEMA * CUSTO UNITÁRIO

O custo de um ponto de função varia de instalação para instalação em função de diversos fatores tais como: tecnologia utilizada, nível salarial da equipe, etc, podendo ser obtido através de dados históricos.

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:

Sistema Tamanho

(PF) Custo Total

($) Custo Unitário

($) Contabilidade 640 PF $26.000,00 $40,63 Controle de Estoque

1860 PF $94.000,00 $50,54

Controle de Vendas 830 PF $36.000,00 $43,37 Recursos Humanos 770 PF $56.000,00 $72,73 Totais 4.100 PF $212.000,00 Custo Unitário Médio:

$51,71

Desta forma, para se contratar o desenvolvimento de um sistema de 1200 PFs, o custo estimado será de $62.052,00.

A.4. TAXA DE PRODUÇÃO DE SOFTWARE A taxa de produção de software de uma instalação é a quantidade de pontos de função que o setor de desenvolvimento libera para o setor de produção em uma determinada unidade de tempo (normalmente é expressa em meses ou anos). Uma das utilizações desta medida é verificar se a taxa de retorno dos investimentos na área de informática está dentro do previsto.

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

Desta forma, a Taxa de Produção de Software do período foi: 2.060 PF/ano

A.5. TAXA DE MANUTENÇÃO DE SOFTWARE A taxa de manutenção de software de uma instalação é a quantidade de pontos de função de projetos de manutenção, realizados em um período de tempo para as diversas aplicações, comparado com o seu tamanho total. Normalmente, consideram-se períodos de meses ou anos para a avaliação desta taxa. Uma das utilizações desta medida é verificar a qualidade de um software.

EXEMPLO O quadro abaixo apresenta o volume de manutenção ocorrido durante um ano em uma determinada instalação:

Page 49: Fpa man1

Análise de Pontos de Função 49

Sistema Tamanho Projetos de Manutenção

no ano

Taxa Manutenção

Contabilidade 640 PF 76 PF 11,88% Controle de Estoque

1860 PF 180 PF 9,68%

Controle de Vendas

830 PF 57 PF 6,87%

Recursos Humanos

770 PF 65 PF 8,44%

Total: 4100 PF 378 Taxa Manutenção Média 9,22%