TAES3 Uma Introdução à Análise de Pontos de Função Lúcio André Mendonça dos Anjos...
-
Upload
diana-palha-barreiro -
Category
Documents
-
view
214 -
download
0
Transcript of TAES3 Uma Introdução à Análise de Pontos de Função Lúcio André Mendonça dos Anjos...
TAES3Uma Introdução à Análise de
Pontos de Função
Lúcio André Mendonça dos [email protected]
Recife, Dezembro de 2003
“Não se pode controlar aquilo que não se consegue medir”
Tom DeMarco¹
¹ Tom DeMarco, Controlling Software Projects, Yourdon Press, 1982.
Métricas e Medidas de Software
Métricas• Pelo negócio• Por Analogia• Bottom-up• Top-down• Julgamento de
Especialistas• Paramétricos
Medidas• Linhas de Código
• Pontos de Função
• Pontos de Caso de Uso
Análise de Pontos de Função Histórico
• Allan Albrecht da IBM, em uma conferência da Guide/Share (1979). • Metodologia formal e publicação no domínio público.
- IBM CIS & A Guideline 313, AD/M Productivity Measurement and Estimate Validation, November 1, 1984.
• Grupo Internacional de Usuários de Pontos de Função (1986)– Manual de Práticas de Contagem
IFPUG Function Point Counting Practices Manual, atualmente no Release 4.1, January 1999.
• Criação de um grupo de trabalho na ISO sobre Medidas Funcionais de Tamanho (1994)
• Padrão Internacional ISO/IEC 20926 (2002)
Contagem de linhas de código fonte – SLOC Análise de Pontos de Função – FPA (1979)
Pontos de Casos de Uso – UCP (1993)
Tempo1980 1990 2000
Certificação • CFPS – Certifield Function Point Specialist: é a certificação
conferida pelo International Function Point Users Group às pessoas aprovadas no exame de certificação
Objetivos
• Medir a Funcionalidade de Sistemas de acordo com a perspectiva do usuário
• Medir o desenvolvimento e a manutenção de software independentemente da tecnologia usada para implementação
• Comparar a produtividade entre ambientes de desenvolvimento (P=PF/Esforço)
• Melhorar as estimativas de projetos de desenvolvimento de softwares
• Criar uma unidade padrão de medida de software
Procedimento para ContagemDetermineUnadjusted
Function PointCount
Determine ValueAdjustment
Factor
DetermineType ofCount
IdentifyCounting
Scope andApplicationBoundary
Count DataFunctions
CountTransactional
FunctionsCalculate
Adjusted FunctionPoint Count
1. Determinar o tipo de contagem de ponto de função. 2. Identificar o escopo de contagem e a fronteira (limite) da aplicação. 3. Contar as funções de dados para determinar a contribuição delas
para a contagem de pontos de função não ajustada. 4. Contar as funções transacionais para determinar a contribuição delas
para a contagem de pontos de função não ajustada. 5. Determinar o fator de ajuste de valor. 6. Calcular a contagem de pontos de função ajustada.
Etapa 1: Determinar o Tipo de Contagem
Tipos de contagem de Pontos de Função: Projeto de Desenvolvimento (development project) Manutenção (enhancement project) Aplicação (application)
Estimated Count
Development Project as Project A
Final Count
Development Projectas Project A
Estimated Count
Enhancementsas Project B
Final Count
Enhancementsas Project B
Application Count
Complete d Projec t
Complete d Projec t
Initializes
Updates
(Voltar)
Margem de Erro
Tempo
Conhecimento do Sistema
Margem de Erro
Requisitos - Conceitual - Detalhado - Codificação - Testes - Implantação
(Voltar)
Etapa 2: Identificar o Escopo e a Fronteira
• Estabelecer o propósito da contagem
• Identificar o escopo da contagem
• Identificar a fronteira da aplicação
• Documentar os itens acima e assuntos relacionados
Human Resources
(Project being counted)
Currency
Fixed Assets
User 1
Propósito e Escopo da ContagemO propósito de uma contagem de pontos de função é prover uma resposta para um problema de negócio. • Determina o tipo de contagem de pontos de função e o escopo da contagem requerida para obter a resposta do problema de negócio sob investigação • Influencia o posicionamento da fronteira entre o software sob revisão e o software circunvizinho.
O escopo da contagem define a funcionalidade que será incluída em uma particular contagem de pontos de função.• Define um (sub) conjunto do software que está sendo medido• É determinado pelo propósito da execução da contagem de pontos de função • Identifica quais funções serão incluídas na contagem de pontos de função para prover respostas pertinentes ao propósito da contagem• Pode incluir mais de uma aplicação
Fronteira da Aplicação A fronteira da aplicação indica o limite entre o software que está sendo medido e o usuário. • Define o que é externo à aplicação • É a interface conceitual entre a aplicação ‘interna’ e o mundo ‘externo’ do usuário• Atua como uma ' membrana' pela qual dados processados por transações passam para dentro e para fora da aplicação • Envolve os dados lógicos mantidos pela aplicação •Assegura a identificação dos dados lógicos referenciados mas não mantidos dentro da aplicação• É dependente da visão de negócio externa do usuário da aplicação. É independente de considerações técnicas e/ou de implementação
Visão Geral da Aplicação
Sistema BSistema A
ILF EIF
EO
EI
EQ
EO
EIEQ
Fronteira da Aplicação
Fronteira da Aplicação
Etapa 3: Contagem das Funções de Dados
Passo Ação Como Fazer
1 Identificar os ILFs Aplicar as regras de identificação de ILFs
2 Identificar os EIFs Aplicar as regras de identificação de ELFs
3 Determinar a complexidade dos ILF e EIF e suas contribuições
Seguir os procedimentos para calcular a complexidade e a contribuição para contagem não ajustada de pontos de função
Funções de Dados• ILF (Internal Logical File)
– Entidade lógica e persistente – Mantém os dados que sofrem manutenção dentro da
Fronteira da Aplicação – Equivale à um Depósito de Dados em um DFD ou à uma
entidade em um MER.
• EIF (External Interface File)– Entidade lógica e persistente– Mantido dentro da fronteira de outra aplicação– Um EIF contado por uma aplicação deve ser um ILF em outra
aplicação.
Passo 1: Regras de Identificação de um ILF
Aplicamos a regra a cada um dos grupos de dados ou informação de controle encontrados na base para contagem.
O grupo de dados ou informação de controle é lógico ou identificável pelo usuário?
O grupo de dados é mantido por um processo elementar de dentro da fronteira da aplicação em contagem?
Passo 1: Regras de Identificação de um ILF
(Voltar)
Passo 2: Regras de Identificação de um EIF
Da mesma forma, aplicamos a regra a cada um dos grupos de dados ou informação de controle encontrados na base para contagem.(Voltar)
O grupo de dados ou a informação de controle é lógico ou identificável pelo usuário?
O grupo de dados não é mantido pela aplicação em contagem?
O grupo de dados é referenciado pela aplicação em contagem e é externo a ela?
O grupo de dados é mantido num ILF de outra aplicação?
Passo 3: Complexidade e Contribuição dos ILFs e EIFs
DET - Data Element Type é um campo único e não repetido reconhecível pelo usuário.
Regras aplicáveis na contagem de DETs:
Conte um DET para cada campo único e não repetido reconhecível pelo usuário, mantido ou recuperado do ILF ou EIF através da execução de um processo elementar.
Quando duas aplicações mantêm e/ou referenciam o mesmo ILF/EIF, mas cada qual mantém/referencia DETs separados, conte somente os DETs usados por cada aplicação para medir o ILF/EIF.
Conte um DET para cada pedaço de dados requerido pelo usuário para estabelecer uma relação com outro ILF ou EIF.
Passo 3: Complexidade e Contribuição dos ILFs e EIFs
RET - Record Element Type é um sub-grupo de dados reconhecível pelo usuário dentro de um ILF ou EIF. O sub-grupos podem ser Opcionais ou Obrigatórios.
Regras aplicáveis na contagem de RETs:
Conte um RET para cada sub-grupo Opcional ou Obrigatório do ILF ou EIF.
OU
Se não houver sub-grupos, conte o ILF ou EIF como um RET.
Passo 3: Complexidade e Contribuição dos ILFs e EIFs
Matriz de Complexidade: 1 a 19
DET20 a 50 DET
Mais de 50 DET
1 RET Baixa Baixa Média
2 a 5 RET Baixa Média Alta
Mais de 5 RET
Média Alta Alta
Passo 3: Complexidade e Contribuição dos ILFs e EIFsTabela de Conversão ILF :
Complexidade da Função Pontos de Função não Ajustados
Baixa 7
Média 10
Alta 15
Complexidade da Função Pontos de Função não Ajustados
Baixa 5
Média 7
Alta 10
Tabela de Conversão EIF :
Exemplo: Contagem de Funções de Dados não Ajustada
Etapa 4: Contagem das Funções de Transação
CountTransactiona l
FunctionTypes
Elementa ryIdentify
Processes1
Functions thatMaintain an ILF orAlter Behavior of
the System
Functions thatPresent
Information to theUser and
IdentifyPrimaryintent of
Elementa ryProcesses
andClassify
Per formcalculations,derive data ,
update an ILF,or alter system
behavior
Do notPer form
calculations,derive data ,
update an ILF,or alter system
behavior
ValidateAgainst
EICounting
rules3
DetermineEI
complexity4
DetermineEI
contribution5
ValidateAga inst
EOCounting
Rules3
ValidateAgainst
EQCounting
Rules3
DetermineEO
complexity4
DetermineEQ
complexity4
DetermineEO
contribution5
DetermineEQ
contribution5
2
Contagem da Funções de Transação
Passo Ação Como Fazer
1 Identificar os processos elementares Aplicar as regras de identificação de processos elementares
2 Identificar as pretensões básicas dos processos elementares, classificando-os como EI, EO ou EQ.
Aplicar as regras de identificação das pretensões básicas para os processos elementares identificados.
3 Validar a classificação Aplicar as regras específicas para cada tipo de função de transação (EI, EO ou EQ)
4 Determinar a complexidade (EI, EO ou EQ)
Seguir os procedimentos para calcular a complexidade das funções de transação
5 Determinar a contribuição (EI, EO ou EQ) Seguir os procedimentos para calcular a contribuição das funções de transação
Funções de Transação• EI (External Input)
– Processo lógico do negócio que mantém os dados em um ou mais arquivos lógicos internos
– Contada com base no número de campos de dados do usuário envolvidos e na soma dos ILF e EIF participantes do processo
• EO (External Output)– é um processo lógico do negócio que gera dados para um usuário ou
para outro aplicativo externo ao software– Exemplos típicos de saídas externas incluem relatórios de usuários,
disquetes ou fitas • EQ (External Query))
– O processamento lógico que não contém nenhuma fórmula matemática ou cálculo nem cria dados derivados; o comportamento do sistema não é alterado.
Passo 1: Regras de Identificação de um Processo Elementar
O processo é a menor unidade de atividade que é significativa para o usuário?
O processo é auto-suficiente e deixa o negócio da aplicação em um estado consistente?
Aplicamos as regras a cada um dos processos elementares.
(Voltar)
Passo 2: Identificar as Pretensões Básicas dos Processos Elementares
EI EO e EQ
Mantém um ILF ou altera o comportamento do sistema?
Apresenta informação ao usuário?
Aplicamos as regras a cada um dos processos elementares identificados.
Passo 3: Validar a Classificação
EI EO EQ
O dado ou informação de controle é proveniente do lado de fora da fronteira da aplicação?
A função envia dados ou informação de controle para fora da fronteira da aplicação?
Ao menos um ILF é mantido se o dado que entra na fronteira não é uma informação de controle que altera o comportamento do sistema?
Para o processo identificado, uma das três indagações deve ser atendida:· O processamento lógico é único, quando comparado a processamentos lógicos feitos para outras saídas externas ou consultas externas da aplicação?· O conjunto de elementos de dados identificado é diferente dos conjuntos identificados por outras saídas externas e consultas externas da aplicação?· Os ILFs e EIFs referenciados são diferentes dos arquivos referenciados por outras saídas externas e consultas externas da aplicação?
Para o processo identificado, uma das três indagações a seguir deve ser atendida:· O processamento lógico é único, quando comparado a processamentos lógicos feitos para outras entradas externas da aplicação?· O conjunto de elementos de dados identificado é diferente dos conjuntos identificados por outras entradas externas da aplicação?· Os ILFs e EIFs referenciados são diferentes dos arquivos referenciados por outras entradas externas da aplicação?
Para o processo elementar a ser contado como uma única saída externa, uma das seguintes indagações deve ser atendida:· O processamento lógico do processo elementar contém ao menos um fórmula matemática ou cálculo?· O processamento lógico do processo elementar cria dados derivados?· O processamento lógico do processo elementar mantém ao menos um ILF?· O processamento lógico do processo elementar altera o comportamento do sistema?
Para o processo elementar a ser contado como uma única consulta externa, todas as seguintes indagações devem ser atendidas:• O processamento lógico do processo elementar recupera dados ou informação de controle de um ILF ou EIF?· O processamento lógico do processo elementar não contém fórmula matemática ou cálculo?· O processamento lógico do processo elementar não cria dados derivados?· O processamento lógico do processo elementar não mantém um ILF?• O processamento lógico do processo elementar não altera o comportamento do sistema?
Passo 4: Determinar a Complexidade
FTR – File Type Referenced é:•Um ILF lido ou mantido por uma função de transação, ou•UM EIF lido por uma função de transação.
DET – Data Element Type é um campo único e não repetido reconhecível pelo usuário.
Regras para FTRs e DETsEI EO EQ
Conte um FTR para cada ILF mantido. Conte um FTR para cada ILF ou EIF lido durante o processamento de um processo elementar.
Conte um DET para cada campo único e não repetido reconhecível pelo usuário que entre ou saia da fronteira da aplicação e que seja requerido para completar a entrada externa.
Conte um FTR para cada ILF mantido durante o processamento de um processo elementar.
Não conte campos que sejam recuperados ou derivados pelo sistema e armazenados num ILF durante um processo elementar se o campo não cruzar a fronteira da aplicação.
Conte somente um FTR para cada ILF que seja mantido e lido durante o processo elementar.
Conte um DET para a capacidade de enviar uma mensagem de resposta do sistema para fora da fronteira da aplicação para indicar um erro que ocorreu durante o processamento, confirmar que aquele processo está completo ou verificar que aquele processo deveria continuar.
Conte um DET para a habilidade de especificar uma ação a ser tomada mesmo que haja múltiplos métodos para invocar o mesmo processo lógico.
· Se um DET entre e saia da fronteira, conte somente uma vez o processo elementar.· Conte um DET para cada campo único e não repetido reconhecível pelo usuário que entra na fronteira da aplicação e é requerido para especificar quando, o que e/ou como o dado é para ser recuperado ou gerado pelo processo elementar.· Conte um DET para cada campo único e não repetido reconhecível pelo usuário que sai da fronteira.· Não conte campos que recuperados ou derivados do sistema e armazenados num ILF durante o processo elementar se o campo não atravessou a fronteira da· aplicação.· Não conte literais como DET´s.· Não conte as variáveis de paginação ou sistemas
ComplexidadeMatriz de Complexidade para EI:
1 a 4 DETs
5 a 15 DETs Mais de 15 DETs
0 a 1 FTR Baixa Baixa Média
2 FTRs Baixa Média Alta
Mais de 2 FTRs
Média Alta Alta
1 a 5 DETs
6 a 19 DETs Mais de 19 DETs
0 a 1 FTR Baixa Baixa Média
2 a 3 FTRs Baixa Média Alta
Mais de 3 FTRs
Média Alta Alta
Matriz de Complexidade para EO e EQ:
Passo 5: Determinar a ContribuiçãoTabela de Conversão EI e EQ:
Complexidade da Função Pontos de Função não Ajustados
Baixa 3
Média 4
Alta 6
Complexidade da Função Pontos de Função não Ajustados
Baixa 4
Média 5
Alta 7
Tabela de Conversão EO:
Etapa 5: Fator de Ajuste
• Fator de Ajuste de Valor (FAV)– Passo final na contagem de pontos de função– Avalia restrições de negócio adicionais do software não
consideradas pelos cinco tipos de funções. – Todas as funções avaliadas na contagem de Pontos de
Função são funções do software– Baseado na influência de 14 Características Gerais do
Sistema
Etapa 5: Fator de Ajuste
Características Gerais:1. Comunicação de Dados2. Processamento de Dados Distribuído
(Funções Distribuídas)3. Performance4. Configuração do equipamento5. Volume de Transações6. Entrada de Dados On-Line7. Interface com o usuário8. Atualização On-Line9. Processamento Complexo10. Reusabilidade11. Facilidade de Implantação12. Facilidade Operacional13. Múltiplos Locais14. Facilidade de mudanças
É atribuída uma nota de 0 à 5 a cadas uma das Características Gerais do Sistema correspondendo ao seguinte critério: (nenhuma influência, influência incidental, moderada, média, significante, essencial)
Fator de Ajuste:
NI(total) = NI
VAF = 0,65 + ( 0,01 X NI) (0,65 <= Fa <= 1,35)
Etapa 6: Ajustar a Contagem
AFP = ADD * VAFonde: AFP é o valor inicial da contagem da
aplicação, ADD é a contagem não ajustada das
funções do projeto de desenvolvimento, VAF é o fator de ajuste da contagem
Exemplo• Calcule os pontos de função para um sistema que
faça um Cadastro de Clientes onde é possível tirar uma listagem por ordem alfabética e exportar o cadastro para outro sistema através de um arquivo texto.
Contagem: ILF = 01 (Arquivo de Clientes) EIF = 0 EI = 01 (Listagem por ordem alfabética) EO = 01 (Processo de inclusão) EQ = 01 (Arquivo Texto)
Exemplo• Todos os tipos de função podem ser considerados
de complexidade BAIXA nesse exemplo.
PFB = ILF x 7 + EIF x 5 + EI x 3 + EO x 4 + EQ x 3 = 1 x 7 + 0 x 5 + 1 x 3 + 1 x 4 + 1 x 3 = 17
• Contado-se os fatores de ajuste segundo os níveis de influência temos:
VAF = (45 * 0,01) + 0,65 = 1,1 (Fator de Ajuste)
APF = VAF x ADD = 1,1 x 17 = 18,7
Estimativas
O que fazer agora?
• Pouco frustrante para empresas recém-criadas• Comparar com projetos anteriores, planejar e
estimar melhor o novo desenvolvimento• Obtendo o número de Pontos de Função pode-se
estimar o esforço de projeto por fases de desenvolvimento
Estimativas Maracatu Software• Imaginemos um projeto no qual obtemos um total
de 100 PF• Numa fase que utilize 20% do Projeto• Numa equipe de 4 pessoas• Considerando uma produtividade média de 20hs/PF• Considerando uma jornada de 6 horas diárias• Considerando um valor de R$35,00 o valor de 1
Hora de Trabalho
Estimativas
• 20% de 100 PF = 20 PF• Esforço - 20hs/PF então: 20hs/PF x 20PF = 400h• Prazo - 400h/ (4 x 6) = 16,7 Dias• Custo - 400h x R$ 35,00 = R$ 14.000,00
Aplicações da Técnica FPA
Quanto tempo leva até a sua casa ?
Mesma pista, mesmo piloto, carros distintos ?
Mesma pista, mesmo carro, pilotos distintos ?
Qual a distância até a sua casa ?
Tamanho em PF
FerramentaFPA é independente
Capacidade da EquipeFPA fornece subsídio
Aplicações da Técnica FPA• Produtividade no desenvolvimento
– Horas por PF
• Esforço de desenvolvimento– Produtividade (H/PF) * Tamanho (PF)
• Custo de software– Tamanho (PF) * Custo (R$/PF)
• Taxa de produção de software– PF/Mês; PF/Ano
• Taxa de manutenção de software– PF manutenção / PF aplicativo
Influências
• Linguagem de Codificação• Tamanho do software• Experiência da equipe• Métodos estruturados• Ambiente de desenvolvimento (CASE)• Qualidade de expansão/manutenção• Reutilização de código• Métodos de remoção de erros• Organização da equipe
Vantagens
• Uma ferramenta para determinar o tamanho de um pacote de
aplicação comprado contando todas as funções incluídas no pacote.
• Uma ferramenta para ajudar para os usuários a determinar o benefício de um pacote de aplicação para a sua organização contando funções que especificamente atendam seus requisitos.
• Uma ferramenta para medir as unidades de um produto de software para apoiar a análise de qualidade e produtividade.
• Um veículo para calcular custos e recursos requeridos para desenvolvimento e manutenção de software.
• Um fator de normalização para comparação de softwares.
Limitações e Desvantagens• Para ter uma boa utilização é necessária uma base histórica• É necessário ter uma boa visão (profundidade do sistema
para poder estimar com menos insegurança)• Não é muito boa para medir esforço de manutenção
(Correção de problemas) • Utilização de pesos para definir a classificação das funções• Várias variações das métricas, é preciso saber qual a versão
da métrica, quando se vai medir tamanho do software
ComparaçõesCaracterísticas Linha de
CódigoSoftware Science
Cocomo
FeaturePoints
Putman Pontos por Função
1. Produção de resultados aceitáveis
sim sim sim sim sim sim
2. Avaliação por usuários sem conhec. da ling. programação
não não não não não sim
3. Significado para o Usuário final
não não não sim não sim
4. Utilizado em estimativas
sim não sim sim sim sim
5. Contabilização automática
sim sim sim sim sim sim
Análise de Pontos por Função para Aplicações Orientadas a Documentos - DOUGLAS JOSÉ PEIXOTO DE AZEVEDO
Empresa
• Unysis– Estimativa de Custo de Desenvolvimento– Acompanhamento do Esforço de Desenvolvimento– Acompanhamento do projeto Planejado x Realizado– Acompanhamento da Taxa de Produção do Software
Referências•International Function Point Users Grouphttp://www.ifpug.org/
•IFPUG -Function Point Counting Practices Manual
•BFPUG Brazilian Function Point Users Grouphttp://www.bfpug.com.br/
•Análise de Pontos por Função para Aplicações Orientadas a Documentos - DOUGLAS JOSÉ PEIXOTO DE AZEVEDO
•IT Measurement: Practical Advice from the Experts, IFPUG,Ed Yourdon – Com publicação de um trabalho do Márcio Silveira PUC-RJ
•Function Point Analisys, David Garmus, Addison-Wesley
Agradecimentos
Luciano Guedes, Unisys – RecifeIFPUG -Function Point Counting Practices Manual
Carlos Antônio Menezes de AlbuquerquePowerPoint – apresentação do semestre anterior
Profs. Alexandre, Augusto e HermanoOportunidade
Dúvidas?