Vous êtes sur la page 1sur 57

Anlise de Pontos por Funo

Autor: Altair L. Ribeiro


Membro da IFPUG e BFPUG e-mail: altair_ribeiro@yahoo.com.br

Agenda
             Introduo Histrico Viso Geral Processo de Contagem Determinao do Tipo de Contagem Fronteiras da Aplicao Tipos de Funo Determinao de Pontos de Funo Brutos Determinao do Fator de Ajuste Determinao dos Pontos de Funo Ajustados Programa de Mtricas Indicadores Bibliografia

No se consegue controlar o que no se consegue medir


Tom DeMarco

Introduo
Analogia Construo Elaborar Planejamento Por que os projetos atrasam ?
Cincia Nova Falhas no gerenciamento de projetos Utilizam-se poucas tcnicas Desenvolvimento de sistemas ainda uma arte Os analistas de sistemas so sempre otimistas Prazos so definidos politicamente etc.

Unidades de Medida para Sistemas ?

PF - Ponto por Funo

Histrico
    Contagem de Linhas de Cdigo Fonte (SLOC) Halstead (operandos e operadores) Anlise de Pontos por Funo Outras Tcnicas ....

IFPUG criado em 1986 Verso 3.0 em 1990 (Releases 3.1, 3.2, 3.3 e 3.4) Verso 4.0 e 1994 Verso 4.1 em 1999 Objetivo: uma verso por ano

rgos
Chapter
 BFPUG (Brazilian Function Point Users Group- www.bfpug.com.br)  CASMA (Chicago Area Software Metrics Association)  SASMA (South African Software)

Affiliate I
 JFPUG (Japan Function Point Users Group)

Affiliate II
 DANMET (Denmark Function Point Users Group)  DASMA (Deutschsprachige Anwendergruppe fur Software Metrik and Aufwandschatzung)  UKSMA - UK (UK Software Metrics Association)

Viso Geral
       Independncia de tecnologia; unidade de medida padro para software; tcnica de estimativa de software; ser simples; se consistente e intercambivel; ser compreensvel por no-tcnicos; utilizvel desde o incio do sistema.

Benefcios
 Uma tcnica que permite dimensionar o tamanho de um software a ser adquirido pela instituio;  uma tcnica para estimativas de custo e recursos para o desenvolvimento e manuteno de softwares;  uma unidade de medida para comparao;  implantao de um programa de mtricas;  maior controle de qualidade;  ferramenta de auxlio gerencial.

Processo de Contagem
 Determinao do Tipo de Contagem
  

Desenvolvimento Manuteno Aplicao

 Fronteiras da Aplicao  Funes do Tipo Dados


 

ALI (Arquivo Lgico Interno) AIE (Arquivo de Interface Externa) EE (Entrada Externa) SE (Sada Externa) CE (Consulta Externa)

 Funes do Tipo Transao


  

Determinao dos Pontos de Funo Brutos


Simples Mdia Complexa

Determinao do Fator de Ajuste


Comunicao de Dados Funes Distribudas Performance Configurao do equipamento Volume de Transaes Entrada de dados On-Line Interface com o usurio

Atualizao On-Line Processamento Complexo Reusabilidade Facilidade de Implantao Facilidade Operacional Mltiplos Locais Facilidade de Mudanas (flexibilidade)

Clculo dos Pontos de Funo Ajustados

Resumo
Identificar ALIs, AIEs, EEs, SEs e CEs Classificar quanto complexidade: Simples, Mdia ou Complexa Clculo de PFBruto Determinao do FA (Fator de Ajuste) atravs do NI (Nveis de Influncia) Clculo de PFAjustado

Determinao do Tipo de Contagem


 Desenvolvimento (Estimativa)
    

O objetivo no a preciso Modelo Lgico Ante-Projeto Abstrao Outras tcnicas de estimativa, baseado em pontos de funo

Manuteno Incluso Alterao Excluso

Aplicao Chamado pontos de funo instalados atualizado aps manuteno

Fronteiras da Aplicao
 Determinar a fronteira da aplicao  Objetivos
  

manter escopo sob controle identificao e propriedade do dado identificao e propriedade da funo Viso do Usurio Funes de Negcio Em manuteno, idntico ao escopo inicial

 Regras
  

Tipos de Funo
 Dados: funcionalidade provida ao usurio atravs de dados internos ou externos aplicao.
 

ALI (Arquivo Lgico Interno) AIE (Arquivo de Interface Externa)

Obs.: Arquivo grupo de dados logicamente relacionados

ALI (Arquivo Lgico Interno) Grupo lgico de dados relacionados ou informao de controle identificado pelo usurio e mantido dentro da fronteira da aplicao. A inteno primria de um ALI manter os dados que sofrem manuteno atravs de um ou mais processos elementares da aplicao que est sendo contada. Um ALI equivale um Depsito de Dados em um DFD ou uma entidade em um MER.

AIE (Arquivo de Interface Externa) Grupo lgico de dados relacionados ou informao de controle referenciado pela aplicao, mas mantido dentro da fronteira de outra aplicao. A inteno primria de um AIE manter dados referenciados atravs de um ou mais processos elementares da aplicao que est sendo contada. Isso significa que um AIE contado por uma aplicao deve ser um ALI em outra aplicao.

Para ALIs e AIEs existem dois tipos de regras


 

Regras de Identificao Regras de Complexidade e Contribuio

Regras de Identificao de ALI O grupo de dados ou informao de controle lgico e identificvel pelo usurio. O grupo de dados mantido atravs de um processo elementar dentro da fronteira da aplicao que est sendo contada. Regras de Identificao de AIE O grupo de dados ou informao de controle lgico e identificvel pelo usurio. O grupo de dados referenciado por, e externamente para, a aplicao que est sendo contada. O grupo de dados no manutenido pela aplicao que est sendo contada. O grupo de dados manutenido em um ALI de outra aplicao.

Regras e Definies de Complexidade e Contribuio As regras e definies de complexidade e contribuio so determinadas pela quantidade de DER (Dado Elementar Referenciado) e RLR (Registro Lgico Referenciado). DER - Um Dado Elementar Referenciado um campo nico norepetido e reconhecido pelo usurio. Regras para DER
Contar um DER para cada campo nico no-repetido e reconhecido pelo usurio mantido em ou recuperado do ALI ou AIE atravs da execuo de um processo elementar. Quando duas aplicaes mantm e/ou referencia o mesmo ALI/AIE, mas cada um mantm/referencia DERs separados, conte somente um DER sendo usado por cada aplicao para dimensionar o ALI/AIE. Conte um DER para cada parte de dados requerida pelo usurio para estabelecer um relacionamento com outro ALI ou AIE.

Definio de RLR (Registro Lgico Referenciado) Um RLR um subgrupo de dados reconhecido pelo usurio, dentro de um ALI ou AIE. Existem dois tipos de subgrupos: Opcional: o usurio tem a opo de usar um ou nenhum dos subgrupos durante um processo elementar. Mandatrio: o usurio deve entrar pelo menos com um. Regras para RLR
Contar um RLR para cada subgrupo opcional ou mandatrio do ALI ou AIE. Se no existir subgrupos, conte o ALI ou AIE como um RLR.

Exemplo de ALI Exemplo de AIE

Transacional: funcionalidade provida ao usurio para o processamento de dados por uma aplicao. EE (Entrada Externa) SE (Sada Externa) CE ( Consulta Externa)

EE (Entrada Externa) Uma Entrada Externa um processo elementar que processa dados ou informao de controle que venha de fora da fronteira da aplicao. A inteno primria de uma EE manter um ou mais ALIs e/ou alterar o comportamento do sistema.

Regras de Identificao de EE O dado ou informao de controle recebido de fora da fronteira da aplicao. Pelo menos um ALI mantido se o dado que estiver entrando a fronteira no for informao de controle que altera o comportamento do sistema. Para o processo identificado, uma das trs condies a seguir deve ser aplicada:
O processamento lgico nico do processamento lgico executado por outra entrada externa na aplicao. O grupo de elemento de dados diferente de grupos identificados por outra entrada externa na aplicao. Os ALIs e AIEs referenciados so diferentes de outros arquivos externos referenciados pelas entradas externas na aplicao.

Regras e Definies de Complexidade e Contribuio para Entrada Externa As regras e definies de complexidade e contribuio so determinadas pela quantidade de DER (Dado Elementar Referenciado) e ALR (Arquivo Lgico Referenciado). Regras para ALR - EE
Contar um ALR para cada ALI mantido. Contar um ALR para cada ALI ou AIE durante o processamento da Entrada Externa. Contar somente um ALR para cada ALI que seja lido e mantido.

Regras DER - EE
Contar um DER para cada campo no-repetido e reconhecido pelo usurio que entra ou sai da fronteira da aplicao e requerido para completar a entrada externa. No contar campos que so recuperados ou derivados pelo sistema e armazenados em um ALI durante o processo elementar se o campo no cruza a fronteira da aplicao. Contar um DER para a capacidade de enviar para fora da fronteira uma mensagem do sistema para indicar a ocorrncia de erro durante o processamento, confirmando que esse processamento foi completo ou verificando que esse processamento dever continuar. Contar um DER para a capacidade de especificar uma ao que ter quantidade igual se so mltiplos mtodos invocando o mesmo processo lgico.

SE (Sada Externa) Uma Sada Externa um processo elementar que envia dados ou informao de controle para fora da fronteira da aplicao. A inteno primria de um SE apresentar informaes ao usurio atravs de processamento lgico , alm da recuperao de dados e informao de controle. O processamento lgico deve conter pelo menos uma frmula matemtica ou clculo, ou criar dados derivados. Uma SE tambm pode manter um ou ALIs e/ou alterar o comportamento de um ou mais ALIs e/ou alterar o comportamento do sistema.

Regras de Identificao de SE A funo envia dados ou informao de controle para fora da fronteira da aplicao. Para o processo identificado, uma das trs condies a seguir deve ser aplicada:
O processamento lgico nico do processamento lgico executado por outra entrada externa na aplicao. O grupo de elemento de dados diferente de grupos identificados por outra entrada externa na aplicao. Os ALIs e AIEs referenciados so diferentes de outros arquivos externos referenciados pelas entradas externas na aplicao.

O processamento lgico do processo elementar contm pelo menos uma frmula matemtica ou clculo. O processamento lgico do processo elementar mantm pelo menos um ALI. O processamento lgico elementar altera o comportamento do sistema

Regras e Definies de Complexidade e Contribuio para Sada Externa As regras e definies de complexidade e contribuio so determinadas pela quantidade de DER (Dado Elementar Referenciado) e ALR (Arquivo Lgico Referenciado). Regras para ALR - SE
Contar um ALR para cada ALI ou AIE lido durante o processamento do processo elementar. Contar um ALR para cada ALI mantido durante o processamento do processo elementar. Contar somente um ALR para cada ALI lido e mantido durante o processamento do processo elementar.

Regras DER - SE
Contar um DER para cada campo no-repetido e reconhecido pelo usurio que entra a fronteira da aplicao e requerido para especificar quando, qual e/ou como o dado ser recuperado ou gerado pelo processo elementar. Contar um DER para cada campo no-repetido e reconhecido pelo usurio que sai a fronteira da aplicao. Se um DER entrar e sair da fronteira, conte somente uma vez para o processo elementar. Contar um DER para a capacidade de enviar para fora da fronteira uma mensagem do sistema para indicar a ocorrncia de erro durante o processamento, confirmando que esse processamento foi completo ou verificando que esse processamento dever continuar. Contar um DER para a capacidade de especificar uma ao que ter quantidade igual se so mltiplos mtodos invocando o mesmo processo lgico. No contar campos que so recuperados ou derivados pelo sistema e so armazenados em um ALI durante o processamento do processo elementar se o campo no cruza a fronteira da aplicao. No contar literais como DERs. No contar variveis de pgina ou timbres gerados pelo sistema.

CE (Consulta Externa) Uma Consulta Externa um processo elementar que envia dados ou informao de controle para fora da fronteira da aplicao. A inteno primria de uma CE apresentar informaes ao usurio atravs da recuperao de dados e informao de controle de um ALI ou AIE. O processamento lgico no contm nenhuma frmula matemtica ou clculo, ou cria dados derivados, o comportamento do sistema no alterado.

Regras de Identificao de CE
A funo envia dados ou informao de controle para fora da fronteira da aplicao. Para o processo identificado, uma das trs condies a seguir deve ser aplicada: O processamento lgico nico do processamento lgico executado por outra entrada externa na aplicao. O grupo de elemento de dados diferente de grupos identificados por outra entrada externa na aplicao. Os ALIs e AIEs referenciados so diferentes de outros arquivos externos referenciados pelas entradas externas na aplicao. O processamento lgico do processo elementar recupera dados ou informao de controle de um ALI ou AIE. O processamento lgico do processo elementar no contm uma frmula matemtica ou clculo. O processamento lgico elementar no cria dados derivados. O processamento lgico do processo elementar no mantm um ALI. O processamento lgico do processo no altera o comportamento do sistema.

Regras e Definies de Complexidade e Contribuio para Consulta Externa As regras e definies de complexidade e contribuio so determinadas pela quantidade de DER (Dado Elementar Referenciado) e ALR (Arquivo Lgico Referenciado). Regras para ALR - CE
Contar um ALR para cada ALI ou AIE lido durante o processamento do processo elementar.

Regras DER - CE
Contar um DER para cada campo no-repetido e reconhecido pelo usurio que entra a fronteira da aplicao e requerido para especificar quando, qual e/ou como o dado ser recuperado ou gerado pelo processo elementar. Contar um DER para cada campo no-repetido e reconhecido pelo usurio que sai a fronteira da aplicao. Se um DER entrar e sair da fronteira, conte somente uma vez para o processo elementar. Contar um DER para a capacidade de enviar para fora da fronteira uma mensagem do sistema para indicar a ocorrncia de erro durante o processamento, confirmando que esse processamento foi completo ou verificando que esse processamento dever continuar. Contar um DER para a capacidade de especificar uma ao que ter quantidade igual se so mltiplos mtodos invocando o mesmo processo lgico. No contar campos que so recuperados ou derivados pelo sistema e so armazenados em um ALI durante o processamento do processo elementar se o campo no cruza a fronteira da aplicao. No contar literais como DERs. No contar variveis de pgina ou timbres gerados pelo sistema.

Diagrama de Funes e Fronteira da Aplicao

Entrada Externa Sada Externa

Aplicativo

Arquivos de Interface Externa Entrada Externa

Arquivo Lgico Interno

Consulta Externa

Sada Externa Outros Aplicativos

Consulta Externa

Determinao de Pontos de Funo Brutos


Tipo de Complexidade Funo Funcional ALIs 4 0 0 4 0 0 4 2 1 4 2 0 5 0 0 Complexidad Total do e Total Tipo de Funo Simples X 7 = 28 0 Mdia X 10 = Co,mplexa X 15 = 0 28 Simples X 5 = X7= Mdia Co,mplexa X 10 = Simples X 3 = Mdia X4= Co,mplexa X 6 = Simples X 4 = Mdia X5= Co,mplexa X 7 = Simples X 3 = Mdia X4= Co,mplexa X 6 = 20 0 0 20 EEs 12 8 6 26 SEs 16 10 0 26 CEs 15 0 0 15 Total de Pontos de Funo Brutos = 115

AIEs

Determinao do Fator de Ajuste


O FA (Fator de Ajuste) baseado em 14 caractersticas gerais de sistema que determina a funcionalidade geral da aplicao que est sendo contada. O nvel (grau) de influncia varia em uma escala de 0 a 5.
0 - Nenhuma influncia 1 - Influncia mnima 2 - Influncia moderada 3 - Influncia mdia 4 - Influncia significante 5 - Influncia forte

Variao de 35 %

Caractersticas Gerais de Sistema


1. Comunicao de Dados 2. Processamento de Dados Distribudo (Funes Distribudas) 3. Performance 4. Configurao do equipamento 5. Volume de Transaes 6. Entrada de Dados On-Line 7. Interface com o usurio 8. Atualizao On-Line 9. Processamento Complexo 10. Reusabilidade 11. Facilidade de Implantao 12. Facilidade Operacional 13. Mltiplos Locais 14. Facilidade de mudanas.

Procedimento  Classificar os quatorze itens de acordo o nvel de influncia.  Aplicar a frmula




FA = (NI * 0,01) + 0,65

 Variao de 0,65 at 1,35

Determinao dos Pontos de Funo Ajustados  Para desenvolvimento


 

PFD = (PFB + PFC) * FA Onde:


PFD - Ponto de Funo de Desenvolvimento PFC - Ponto de Funo de Converso FA - Fator de Ajuste

Para manuteno PFM = [(INC + ALT + PFC) * FAD] + (EXC * FAA) Onde:
PFM - Pontosde funo do projeto de manuteno INC - Ponto de funo brutos que foram includos na aplicao pelo projeto de manuteno. ALT - Ponto de funo que foram alterados na aplicao pelo projeto de manuteno. PFC - Ponto de funo que foram adicionados pelo processo de converso. FAD - Fator de ajuste da aplicao depois do projeto de manuteno. EXC - Ponto de funo brutos que foram excludos da aplicao pelo projeto de manuteno. FAA - Fator de ajuste da aplicao antes do projeto de manuteno.

Para clculo de uma aplicao

PFA = [(PFB + INC + ALTD) - (ALTA + EXC)] * FAD Onde:


PFA - Ponto de Funo Ajustados da aplicao PFB - Ponto de Funo Bruto da Aplicao antes do projeto de manuteno INC - Pontos de funo brutos que foram adicionados pelo projeto de manuteno. ALTD - Pontos de funo brutos correspondentes s funes que sofreram alterao durante o projeto de manuteno. Este nmero reflete as funes depois da manuteno. ALTA - So os Pontos de funo brutos correspondentes s funes que sofreram alterao durante o projeto de manuteno. Esse nmero reflete as funes antes da manuteno. EXC - Pontos de funo brutos correspondentes s funes que foram excludas da aplicao pelo projeto de manuteno. FAD - Fator de ajuste da aplicao verificado depois do projeto de manuteno.

Exemplo de ALI  O usurio quer entrar, consultar e imprimir informaes sobre trabalhos.  A informao que deve ser mantida em conjunto inclui:
    

Cdigo do trabalho Nome do trabalho Valor do trabalho Nmero da linha da descrio do trabalho Linha de descrio do trabalho

 A linha de descrio do trabalho ser um conjunto de 80 caracteres por linha

Diagrama de Entidade e Relacionamento


O MER a seguir mostra duas entidades que resultaram da normalizao dos dados. As entidades so Trabalho e Descrio do Trabalho .

Trabalho

Descrio do Trabalho

Atributos das Tabelas  Trabalho inclui:


  

Cdigo do trabalho Nome do trabalho Valor do trabalho Cdigo do trabalho Nmero da linha da descrio do trabalho Linha de descrio do trabalho

 Descrio de Trabalho inclui:


  

Identificao de ALIs
A anlise de grupo trabalho mostrado na tabela a seguir:  O grupo de dados ou informao de controle lgico e identificvel pelo usurio.  No. Trabalho deve incluir a entidade ou tabela Descrio do Trabalho para representar a requisio do usurio para acrescentar informao do trabalho.

 O grupo de dados mantido atravs de um processo elementar dentro da fronteira da aplicao que est sendo contada.  Sim. O processo elementar mantm trabalho, no qual o usurio inclui em conjunto nas entidades ou tabelas trabalho e descrio do trabalho. Baseado na anlise, Trabalho sozinho sem a Descrio do Trabalho no um ALI.

Identificao de ALIs
Agora, determinar se Descrio do Trabalho um ALI. O grupo de dados ou informao de controle lgico e identificvel pelo usurio. No. Descrio do Trabalho deve incluir a entidade ou tabela Trabalho para representar a requisio do usurio para acrescentar descrio do trabalho. O grupo de dados mantido atravs de um processo elementar dentro da fronteira da aplicao que est sendo contada. Sim. O processo elementar mantm trabalho, no qual o usurio inclui em conjunto nas entidades ou tabelas trabalho e descrio do trabalho. Baseado na anlise, Descrio do Trabalho sozinho sem Trabalho no um ALI. Pela viso do usurio, Trabalho e Descrio do Trabalho so utilizados em conjunto para acrescentar Informao do Trabalho para a aplicao de RH. Ns devemos combinar as entidades ou tabelas Trabalho e Descrio do Trabalho porque elas devem ser mantidas juntas. Existe um grupo lgico de dados pela viso do usurio. Esse grupo Informao do Trabalho que formado pelos dados de Trabalho e Descrio do Trabalho.1

Exemplo de AIE
O usurio do Sistema de Folha de Pagamento quer utilizar as informaes de funcionrios contidas no sistema de Recursos Humanos.

Sistema de Recursos Humanos ALI Funcionrios

Sistema de Folha de Pagamento

Gerenciando Mudanas nos Requisitos

Aplicativo Entregue Requisitos Projeto Funcional Projeto Detalhado

100 PFs

120 PFs

130 PFs

135 PFs

Exemplos de Aplicaes

Aplicao 1. Produtos de Software Ferramenta CASE IEF (Texas) Compilador Visual Basic (Microsoft) SGBD IMS (IBM) Gerenciador de TP CICS (IBM) Word 7.0 (Microsoft) Excel 6.0 (Microsoft) MS Project (Microsoft)

PF 20.000 3.000 3.500 2.000 2.500 2.500 3.000

Aplicao 2. Sist. Comerciais Diversos Imposto de Renda Pessoal Contabilidade Geral Processamento de Pedidos Recursos Humanos Suporte a Vendas Preparao de Oramento

PF 2.000 1.500 1.250 1.200 975 750

Regio Impossvel
Evitando a Regio Impossvel

Custo do Esforo

Regio Impossvel (75% de Td)

Td
Tempo de Desenvolvimento

To

Observaes: 1) Td o tempo timo de desenvolvimento. 2) To o tempo que acarreta o menor custo. 3) To = 2 Td. 4) impossvel terminar em menos que 0,75 * Td.

Os 7 Pecados Capitais

Falta de Comunicao (com o seu pessoal) Confiana Cega (no parceiro) Cinismo e Desconfiana (com o parceiro) O Contrato a Bblia (falta de flexibilidade) Ir Dormir Aborrecido (fazer bola de neve) M Prtica de Mtricas (ambas as partes devem
entender os critrios)

Cobia e Oportunidade (explorar falhas do contrato)

Dekkers, C., Management of Outsourcing: How to Avoid Common Mistakes, Software Management Conference, San Jose, February 2000

O Oitavo Pecado

Comprar os seus sapatos com base no tamanho mdio do p do brasileiro

Aguiar, M., Contratando o Desenvolvimento com Base em Mtricas, Developers Magazine, setembro de 2000.

Obtenha Suas Prprias Medidas atravs de um Programa de Mtricas

Obrigado
Altair L. Ribeiro
altair_ribeiro@yahoo.com.br alribeiro@sao.politec.com.br planetapf@yahoo.com.br (em construo) planetfpa@yahoo.com.br (em construo)

www.bfpug.com.br www.ifpug.org www.geocities.com/altair_ribeiro/ (em reforma)

Agradecimentos
Maurcio Aguiar - Presidente da BFPUG e Diretor da IFPUG