Top Banner
1 Análise de Pontos de Função Por Denize Terra Pimenta [email protected]
45
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: APFTexto

1

Análise de Pontos de Função

Por Denize Terra [email protected]

Page 2: APFTexto

2

“Não se consegue controlar o que não se consegue medir.”

Page 3: APFTexto

3

Bibliografia"Function Point Analysis: Measurement Practices for Successful Software Projects", de David Garmus e David Herron "Análise de Pontos de Função: Medição,Estimativas e Gerenciamento de Projetos de Software", de Carlos Vazquez, Gulherme Simões eRenato Albert

Page 4: APFTexto

4

Referências On Linehttp://www.ifpug.orghttp://www.bfpug.com.brhttp://www.isbsg.org.au

Page 5: APFTexto

5

ConteúdoO que é APF ?Objetivos da TécnicaComo se Calcula – Processo de ContagemDefiniçõesTipo de ContagemFunções de DadosFunções de TransaçãoCálculo dos Pontos não AjustadosFator de AjusteCálculo dos Pontos AjustadosDúvidas e DicasPrática – Exemplo e exercícios

Page 6: APFTexto

6

O que é APF ?“É uma medida de dimensionamento de software através da funcionalidade implementada em um sistema, sob o ponto de vista do usuário.”

Page 7: APFTexto

7

Objetivos da TécnicaMedir o que foi requisitado e recebido pelo usuário (visão do usuário);Medir independentemente da tecnologia utilizada para implementação (linguagem, método, plataforma);Prover uma métrica de medição para apoiar a análise de produtividade e qualidade;Prover uma forma de estimar o tamanho do software; eProver um fator de normalização para comparação de software.

Page 8: APFTexto

8

Benefícios da TécnicaDeterminar o tamanho de um produto adquirido através da contagem de todas as funções incluídas –é saber o que se está comprando.Auxilia a análise do tipo make or buyAuxilia a análise de produtividade e qualidadeApoia o gerenciamento de escopo de projetos (aumento ou diminuição do escopo).Complementa o gerenciamento dos requisitos (solidez e completeza).

Page 9: APFTexto

9

Benefícios da TécnicaEstimar custo e recursos para o desenvol-vimento e manutenção de software.Meio para fundamentar a negociação de contratos.Comparativo de softwares ou produtividade.

Page 10: APFTexto

10

DefiniçõesEscopo da contagem – define quais funcionalidades (de uma ou mais aplicações) serão incluídas em uma determinada contagem.Fronteira da aplicação – é a interface conceitual que delimita o software que será medido e o mundo exterior.

Page 11: APFTexto

11

DefiniçõesProcesso elementar – menor unidade de atividades significativa para o usuário. Deve ser completo em si mesmo, independente, e deixar o negócio da aplicação em estado consistente.Arquivo Lógico Interno (ALI) – são os dados ou informações mantidas pela aplicação a ser contada.Arquivo de Interface Externa (AIE) – são os dados lidos de outra aplicação.

Page 12: APFTexto

12

DefiniçõesEntrada Externa (EE) – É a função que faz a manutenção dos dados da aplicação.Saída Externa (SE) – É a função que tem processamento da informação a ser exibida.Consulta Externa (CE) – É uma consulta simples da informação armazenada na aplicação.

Page 13: APFTexto

13

Como se Calcula:1. A definição do propósito da contagem deve ser feita

definindo-se o tipo de contagem e identificando-se o escopo da contagem e a fronteira da aplicação.

2. O cálculo dos pontos não ajustados é feito em seguida, identificando-se e classificando as Funções de Dados e de Transação.

3. Deve ser determinado e calculado o fator de ajuste.4. Finalmente calcula-se o valor dos pontos por função

ajustados aplicando-se a fórmula adequada.

Page 14: APFTexto

14

Como se Calcula – Processo de Contagem

1

2

Determinar o Tipo deContagem

Definir a Fronteirada Aplicação eo Escopo daContagem

Contar Funções do Tipo

Dados

Contar Funções do Tipo

Transação

CalcularContagem de

Pontos de Função nãoAjustados

Determinar/CalcularValor do

Fator de Ajuste

CalcularNúmero dePontos deFunção

Ajustados

3

4

Page 15: APFTexto

15

1- Definir Propósito da ContagemPara esta definição devemos:

Identificar o tipo de contagem;Definir a fronteira da aplicação;Definir o escopo da contagem.

Page 16: APFTexto

16

1.1- Identificar o Tipo de Contagem

Projeto de Desenvolvimento – para a primeira instalação do software, conta também se houver atividade de conversão de dados (do sistema antigo para o novo – que está sendo contado).Projeto de Melhoria – é a contagem para manutenção de um sistema, exclusão, alteração ou inclusão de funcionalidades.Aplicação – também chamado de baseline é a contagem real de um software ou parte dele.

Page 17: APFTexto

17

1.2- Definir a Fronteira AplicaçãoPara determinação da fronteira:

Deve ter base no ponto de vista do usuário. O foco deve estar no que ele pode entender e descrever;A fronteira entre aplicações deve ser baseada na separação das funções conforme estabelecido pelo negócio e não em considerações tecnológicas;

Page 18: APFTexto

18

1.2- Definir a Fronteira AplicaçãoPara determinação da fronteira (cont.):

Em projetos de melhoria, a fronteira estabelecida no início do projeto deve estar de acordo com a fronteira estabelecida para a aplicação.

Page 19: APFTexto

19

1.3- Definir o Escopo ContagemO escopo da contagem pode abranger:

Todas as funcionalidades disponíveis;Funcionalidades efetivamente utilizadas pelo usuário;Algumas funcionalidades específicas (relatórios, módulos, etc)

Page 20: APFTexto

20

2- Cálculo dos pontos não ajustadosPara o cálculo dos pontos não ajustados devemos:

Identificar as funções de dados e de transação da aplicação;Identificar a complexidade de cada um;Atribuir o valor dos pontos (contribuição);Somar o total dos pontos encontrados.

Page 21: APFTexto

21

2.1- Contar Funções de DadosArquivo Lógico Interno (ALI) – um grupo de dados ou informações de controle; identificável pelo usuário; logicamente relacionados; mantido dentro da fronteira da aplicação.A principal intenção de um ALI é armazenar dados mantidos por meio de um ou mais processos elementares da aplicação.

Page 22: APFTexto

22

2.1- Contar Funções de DadosExemplos de ALI:

Tabelas que armazenam dados mantidos pela aplicação;Arquivos de configuração mantidos pela aplicação;Arquivos de segurança de acesso à aplicação (senhas), mantidos por ela;Arquivos de help, desde que mantidos pela aplicação;Arquivos de mensagens de erro, desde que mantidos pela aplicação;Arquivos mantidos não só pela aplicação, mas também por outra aplicação.

Page 23: APFTexto

23

2.1- Contar Funções de DadosNão-Exemplos de ALI:

Arquivos temporários, de trabalho ou de classificaçãoArquivos gerados para processamento em outra aplicação.Arquivos de backup;Arquivos introduzidos exclusivamente em função da tecnologia utilizada;Arquivos de índices;Operações de junção e projeção, visões (views).

Page 24: APFTexto

24

2.1- Contar Funções de DadosArquivo de Interface Externa (AIE) – é um grupo de dados ou informações de controle; identificável pelo usuário; logicamente relacionados; referenciado (lido) pela aplicação.A principal intenção de um AIE é armazenar dados referenciados por meio de um ou mais processos elementares dentro da fronteira da aplicação. Um AIE deve ser um ALI de outra aplicação.

Page 25: APFTexto

25

2.1- Contar Funções de DadosExemplos de AIE:

Dados de referência externos utilizados pela aplicação;Arquivos de help, desde que mantidos por outra aplicação;Arquivos de mensagens de erro, desde que mantidos por outra aplicação.

Page 26: APFTexto

26

2.1- Contar Funções de DadosNão-Exemplos de AIE:

Arquivos de movimento recebidos de outra aplicação para manter um ALI;Dados mantidos pela aplicação e utilizados por outra aplicação;Dados formatados e processados para uso de outras aplicações.

Page 27: APFTexto

27

Tabela de Complexidade ALI e AIE

1 a 19 itens de dados

referenciados

20 a 50 itens de dados

referenciados

51 ou mais itens de dados referenciados

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

Page 28: APFTexto

28

2.2- Funções de Transação (EE)Entrada Externa - É um processo elementar, que processa dados ou informações de controle recebidos de fora da fronteira da aplicação, cuja principal intenção é manter um ou mais ALIs e/ou modificar o comportamento do sistema.

Page 29: APFTexto

29

2.2- Funções de Transação (EE)Exemplos de EE:

Telas de inclusão, exclusão ou de alteraçãoEntradas batch que mantém um ALIImportar dados de outras aplicações

Page 30: APFTexto

30

2.2- Funções de Transação (EE)

1 a 4 itens de dados

referenciados

5 a 15 itens de dados

referenciados

16 ou mais itens de dados referenciados

1 arquivo referênciado

SIMPLES SIMPLES MÉDIA

2 arquivos referênciados SIMPLES MÉDIA COMPLEXA

3 ou mais arquivos

referênciados

MÉDIA COMPLEXA COMPLEXA

Tabela de Complexidade (EE)

Page 31: APFTexto

31

2.2- Funções de Transação (SE)Saída Externa - É um processo elementar, que envia dados ou informações de controle para fora da fronteira da aplicação, cuja principal intenção é apresentar informação ao usuário por meio de lógica de processamento (fórmula, cálculo criar dados derivados) que não seja apenas a recuperação de dados ou informações de controle. Pode manter um ou mais ALIs e/ou alterar o comportamento do sistema.

Page 32: APFTexto

32

2.2- Funções de Transação (CE)Consulta Externa - É um processo elementar, que envia dados ou informações de controle para fora da fronteira da aplicação, cuja principal intenção é apresentar informação ao usuário por meio de uma simples recuperação de dados ou informações de controle de um ALI ou AIE. Não contém fórmulas ou cálculos, não mantêm ALIs nem altera o comportamento do sistema.

Page 33: APFTexto

33

2.2- Funções de Transação (CE)

1 a 5 itens de dados

referenciados

6 a 19 itens de dados

referenciados

20 ou mais itens de dados referenciados

1 arquivo referênciado

SIMPLES SIMPLES MÉDIA

2 ou 3 arquivos referênciados SIMPLES MÉDIA COMPLEXA

4 ou mais arquivos

referênciados

MÉDIA COMPLEXA COMPLEXA

Tabela de Complexidade (SE ou CE)

Page 34: APFTexto

34

Tabela de ContribuiçãoFunções de Dados e de Transações

Nível de Complexidade

Tipo de Função SIMPLES MÉDIO COMPLEXO

Arquivo Lógico Interno (ALI)(Internal Logical Files - ILF)

7 10 15

Arquivo de Interface Externa (AIE)(External Interface Files - EIF)

5 7 10

Entrada Externa (EE)(External Inputs - EI)

3 4 6

Saída Externa (SE)(External Outputs - EO)

4 5 7

Consulta Externa (CE)(External Inquiries - EQ)

3 4 6

Page 35: APFTexto

35

Sumário da Lógica de Processamento Usadas por Funções de Transação

nãoDeve*Deve*Alteração do comportamento do sistema

devedevepodePreparação e apresentação de informação para fora da fronteira

podepodedeveCapacidade de aceitar dados ou informação de controle que entra pela fronteira

podepodepodeMudança da ordenação ou organização de um conjunto de dados (não suficiente para garantir unicidade do PE)

nãoDeve*podeCálculos e fórmulas matemáticas

podepodepodeConversão em valores equivalentes

podepodepodeFiltros e seleção de dados com base em critérios específicos na comparação de vários conjuntos dados

podepodepodeAnálise de condições para que se determine quais se aplicam

nãoDeve*Deve*Atualização de pelo menos um ALI

devepodepodeReferencia pelo menos um ALI ou AIE

devepodepodeRecuperação de dados ou informações de controle

nãoDeve*podeCriação de dados derivados

podepodepodeValidações

CESEEETipo de Lógica de Processamento

Deve – a transação deve obrigatoriamente executar este tipo de lógica de processamento

Deve* - a transação deve executar pelo menos uma das lógicas de processamento

Pode – a transação pode executar este tipo de lógica de processamento, mas não é obrigatório

Não – atransação não pode executar este tipo de lógica de processamento

Page 36: APFTexto

36

5- Cálculo dos Pontos não Ajustados

Page 37: APFTexto

37

Fator de AjusteO valor do FATOR DE AJUSTE é calculado a partir de 14 características gerais dos sistemas, que permitem uma avaliação geral da funcionalidade da aplicação. Estas características são:1. Comunicação de Dados2. Processamento Distribuído3. Performance4. Utilização do Equipamento5. Volume de Transações6. Eficiência do Usuário Final7. Entrada de dados “on-line”

Page 38: APFTexto

38

Fator de Ajuste8. Atualização “on-line”9. Processamento Complexo10. Reutilização de Código11. Facilidade de Implantação12. Facilidade Operacional13. Mútiplos Locais14. Facilidade de Mudanças

Page 39: APFTexto

39

Fator de AjusteFórmula:Fator de Ajuste = ( NI * 0,01 ) + 0,65

Nível de Influência (NI)0 - Nenhuma influência1 - Influência mínima2 - Influência moderada3 - Influência média4 - Influência significativa5 - Grande influência

Para cada um dos 14 índices deve ser analisado o NI, somado

e então aplicado à fórmula.

Page 40: APFTexto

40

Cálculo dos Pontos Ajustados

Page 41: APFTexto

41

Dúvidas e DicasTenho várias consultas na tabela de clientes, uma consulta detalhada retornando quase todos os itens de dados da tabela e em outra tela tenho uma lista de clientes mostrando apenas CPF e Nome – Como contar ?

Neste caso serão contadas duas Consultas ExternasEm uma funcionalidade de alteração altero um campo mas consulto outros n itens. Quantos itens de dados tenho, um ou n+1 ?

Os itens de dados devem ser somados (n+1)Como pontuar a manutenção de um sistema que só terá seu padrão visual alterado ?

Neste caso a contagem de ponto de função não será útil.

Page 42: APFTexto

42

Dúvidas e DicasComo classificar um arquivo texto que é importado pelo sistema ?

A importação é uma Entrada Externa pois alimentam ALIs.

Mesmo se a aplicação atualizar a data da importação no arquivo texto ?

Não pode ser contado como ALI pois os itens de dados são contados dentro das tabelas do banco; não pode ser AIE pois têm manutenção nos dados, portanto deve ser contado como EE e para esta função contar também a data como item de dados.

Page 43: APFTexto

43

Dúvidas e DicasUma gravação em disquete com dados da base, é uma CE ou SE ?

Se a extração tiver processamento (cálculo de registros) é SE se for cópia da base é CE.

Tenho um relatório que é somente extração da base, mas sendo que se ultrapassar o limite de 100 linhas o relatório sai em arquivo. Como pontuar ?

Neste caso devemos contar como SE, pois há o cálculo das linhas e é de conhecimento do usuário que o relatório ultrapassar o limite (há contagem de linhas) o relatório será gravado em disco, senão será impresso.

Page 44: APFTexto

44

Dúvidas e DicasO meu sistema tem uma tela para atualizar o endereço do trabalhador e irá utilizar um método e uma tabela de outro sistema para atualizar os registros, como deve ser contado isso ?

De acordo com a descrição acima, o sistema a ser contado tem um processo elementar (atualizar trabalhador) que deverá ser contado como uma EE e esta terá um arquivo referenciado (o ALI trabalhador).

Se A Contagem Foi De Desenvolvimento Não Se Esqueça De Contar A Migração Dos Dados.

Page 45: APFTexto

45

Prática – Exemplo e exercícios