Gerência de Projetos de Informática

Estimativas e Medição em Projeto de Software
Métrica com Pontos de Função (PF)
Cláudio Roberto Martins
claudiomartins2000@gmail.com
1

Objetivos
• Apresentar os conceitos de Estimativas e Medição em Projeto de Software • Apresentar a técnica de Pontos de Função para estimativa de medição de projeto de software.

2

O problema
• Dado um projeto de desenvolvimento de software, estabelecer:
– Tamanho e perfil da equipe – Prazos – Custos

3

Conceitos Básicos
• Métrica
– Uma medida quantitativa do grau que um sistema, componente, ou processo possui um determinado atributo (IEEE Std 610.12-1990). – As métricas vão permitir que um processo ou um produto do ciclo de desenvolvimento de um sistema seja analisado da mesma forma que um objeto físico pode ser caracterizado através do seu tamanho, cor ou peso.

4

Métricas de Projeto
• Primeiro uso: nas estimativas • Após: monitoração e controle • Objetivo:
– minimizar (e prever) o prazo de desenvolvimento
– medir a qualidade do produto

5

Métricas de Projeto
• Cada projeto deve medir:
– Entradas (recursos, pessoal, ambiente), – Saídas (medida dos produtos intermediários durante o processo de Eng.Software), e – Resultados (indicam a efetividade dos produtos finais)

6

Tipos de Medidas
• Medidas diretas (Ex: comprimento do parafuso), e • Medidas indiretas (Ex: qualidade dos parafusos produzidos).

7

Medidas Em Relação ao Software...
• Diretas - linhas de código (LOC) produzidas, velocidade de execução, defeitos relatados. • Indiretas: funcionalidade, qualidade, complexidade, confiabilidade, manutenibilidade.

8

Métricas Orientadas a Tamanho

• Consideram o tamanho do software produzido. • Referem-se a todas as atividades da Engenharia (análise, projeto, codificação, teste).
– Ex: Linhas de código (LOC)

9

Linhas de código (LOC)
• Cada projeto pode obter as seguintes métricas a partir das linhas de código:
– Erros por KLOC (K = milhares) – Defeitos por KLOC – $ por LOC – Páginas de documentação por KLOC – Erros por pessoa/mês – LOC por pessoa/mês – $ por pagina de documentação
10

Exemplo de métricas orientadas a tamanho

Projeto

LOC

Esforço (mês)

$ (Mil)

Pág. Doc

Erros

Defeitos

Pessoas

Alfa Beta Gama

12.100 27.200 20.200

24 62 43

168 440 314

365 1.224 1.050

134 321 256

29 86 64

3 5 6

...

...

...

...

...

...

...

...
11

Linha de Código - Observações
• Não é muito utilizada como parâmetro de estimativa, pois requer um nível de detalhes difícil de alcançar:
– Padronização na forma de codificar – Manter apenas uma linguagem de programação – Não diferencia linhas de código geradas por ferramentas CASE daquelas criadas manualmente
12

Métricas Orientadas por Função
• Consiste em um método para medição de software do ponto de vista do usuário • Tem a funcionalidade como fator de normalização. • Dimensiona um software, quantificando a funcionalidade proporcionada ao usuário a partir do seu desenho (projeto) lógico e não dos detalhes de implementação. • A medida é PONTO por FUNÇÃO (FP – Function Point).
– Pontos de Função (FP) definem uma relação empírica baseada em medidas de contagem do domínio de aplicação do software (requisitos) e à avaliação da complexidade do software.

13

Objetivo da análise de PF
• A análise considera as várias formas com que os usuários interagem com o sistema, com os seguintes objetivos:
1. Fornecer medidas consistentes; 2. Medir funcionalidades que o usuário solicita ou recebe;

3. Independência da tecnologia;
4. Método simples.
14

O Processo de Contagem de PF
1
Determinar tipo de Contagem

2
Identificar escopo da contagem e fronteira da aplicação

3.1
Contar funções do tipo dados

5 (opcional)
Determinar valor do fator de ajuste

3.2
Contar funções do tipo transação

4
Totalizar PF não ajustados (3.1 + 3.2)

6
Calcular os PF ajustados (5 + 4)
15

Elementos da contagem de PF
Consultas Externas (CE)

Entradas Externas (EE)
Arquivos Lógicos Internos (ALI)

Saídas Externas (SE)

Arquivos de Interfaces Externas (AIE)

Fronteira da Aplicação
16

Tipo de Contagem
• São três:
– Contagem de um projeto de desenvolvimento (incluindo migração) – Contagem de um projeto de melhoria – Contagem de uma aplicação em produção (ou baseline)

17

Escopo da Contagem
• O escopo define se a contagem abrangerá um ou mais sistemas ou apenas parte de um sistema. • Por exemplo:
– Todas as funcionalidades disponíveis – Apenas as funcionalidades efetivamente utilizadas pelo usuário – Apenas algumas funcionalidades específicas (relatórios, transações cadastrais, etc.)
18

Fronteira da Aplicação
• É a interface conceitual que delimita o software que será medido e o mundo exterior (os atores de interface)
– Ator = pessoa ou sistema que interage com a aplicação, recebendo ou enviando dados

19

Algumas regras para identificar as fronteiras
• Deve ser feita com base no Ponto de Vista do Usuário (que ele pode entender e descrever) • Baseada na separação das funções relacionadas pelos processos do negócio, não considerando tecnologias (banco de dados, p. ex.) • Obter a documentação do sistema • Verificar como os grupos de dados são mantidos • Identificar as entidades (dados) e processos (casos de uso, por exemplo)
20

Funções do Tipo Dado
• Representam a funcionalidade oferecida ao usuário para cumprir requisitos de dados • Podem ser de dois tipos:
– Arquivo Lógico Interno (ALI) – Arquivo de Interface Externa (AIE)
• O nome “arquivo” refere-se a grupos de dados logicamente correlatos e não à sua implementação física
21

Arquivo Lógico Interno (ALI)
• Um grupo lógico de dados ou de informações de controle, identificável pelo usuário, mantido dentro da fronteira da aplicação que está sendo contada. • Armazena dados mantidos por um ou mais processos (transações) da aplicação em questão.
– Ex: tabelas de banco de dados atualizadas pela aplicação (não considerar chaves primárias do tipo identificador, como “id” ou “seqüência”).
22

Arquivo de Interface Externa (AIE)
• Um grupo lógico de dados ou informações de controle, identificável pelo usuário, mantido fora da fronteira da aplicação que está sendo contada. • Exemplos:
– tabelas de banco de dados lidas pela aplicação, mas mantidas por outra – Arquivos externos (gerados externamente) – Mensagens de dados (em um protocolo) gerados externamente
23

Atribuindo complexidade a um ALI/AIE • Identificar os TERs e TEDs
– TER – Tipo de elemento de registro
• Subgrupo de dados dentro de um ALI/AIE reconhecível pelo usuário

– TED – Tipo de elemento de dado
• Campo único, não repetitivo e reconhecível pelo usuário

24

Tabela de referência - Complexidade de ALI’s e AIE’s

25

Peso das Funções de Dados

26

Funções de transação
• Representam a funcionalidade oferecida ao usuário para processar dados da aplicação • Podem ser de três tipos:
– Entrada Externa (EE) – Saída Externa (SE) – Consulta Externa (CE)

27

Entrada Externa (EE)
• Cada transação de entrada é contada. • A transação deve atualizar uma base de dados com inclusão, alteração ou exclusão.
– Transação pode ser interpretada como uma rotina/processo que executa um conjunto de ações atômicas que produz um resultado visível e de valor ao usuário do sistema. – Pode ser mapeado em telas, formulários (em janelas), páginas, etc.
28

Saída Externa (SE)
o Relatórios, telas, mensagens de erros e qualquer processo que é visível externamente ao sistema (caso de uso). o Deve obrigatoriamente calcular ou criar dados derivados como detalhes de subtotais, arquivos intermediários internos ou alterar o resultado do comportamento do sistema.
29

Consulta Externa (CE)
o É uma funcionalidade de consulta simples, que através de uma solicitação do usuário (uma entrada on-line), resulta na geração de uma resposta imediata sob a forma de uma saída on-line. o Exemplo: consulta ao cadastro de clientes.

30

Atribuindo complexidade a uma Função de Transação
• Identificar os TARs e TEDs
– TAR – Tipos de arquivos referenciados
• Quantidade de ALI/ AIE mantidos (exceto CE) ou referenciados pela função de transação

– TED – Tipos de elementos de dados
• Campos reconhecíveis pelo usuário, que cruzam a fronteira da aplicação durante a função de transação

31

Tabela de referência - Complexidade de EE’s

Pontuação • Para cada Entrada Externa será atribuído um número de Pontos de Função, de acordo com a sua complexidade funcional relativa:
– BAIXA (SIMPLES COMPLEXIDADE): 3 (três) Pontos por Função; – MÉDIA COMPLEXIDADE: 4 (quatro) Pontos por Função; – ALTA (COMPLEXA): 6 (seis) Pontos por Função.

32

Complexidade de Saídas Externas
ITENS DE DADOS REFERENCIADOS (TED)
Nº DE ARQUIVOS REFERENCIADOS (TAR)

1A5
SIMPLES SIMPLES MÉDIA

6 A 19
SIMPLES MÉDIA COMPLEXA

20 OU MAIS
MÉDIA COMPLEXA COMPLEXA

Apenas 1

De 2 ou 3 4 ou mais

Pontuação • Para cada Saída Externa será atribuído um número de Pontos de Função, de acordo com a sua complexidade funcional relativa:
– SIMPLES: 4 (quatro) Pontos por Função; – MÉDIA: 5 (cinco) Pontos por Função; – COMPLEXA: 7 (sete) Pontos por Função.

33

Complexidade de Consultas Externas
ITENS DE DADOS REFERENCIADOS (TED)
Nº DE ARQUIVOS REFERENCIADOS (TAR)

1A5
SIMPLES SIMPLES MÉDIA

6 A 19
SIMPLES MÉDIA COMPLEXA

20 OU MAIS
MÉDIA COMPLEXA COMPLEXA

Apenas 1 De 2 a 3 4 ou mais

Pontuação • Para cada Consulta Externa será atribuído um número de Pontos por Função, de acordo com a sua complexidade funcional relativa:
– SIMPLES: 3 (três) Pontos por Função; – MÉDIA: 4 (quatro) Pontos por Função; – COMPLEXA: 6 (seis) Pontos por Função
34

Resumo dos pesos das Funções de Transação

35

Resumo do Cálculo dos PF não ajustados

Parametro de Medição EE – Entradas Externas SE – Saídas Externas CE – Consultas Externas

Fator de peso da Complexidade Contagem baixa media alta X X X X X 3 4 3 7 5 4 5 4 10 7 6 7 6 15 10 = = = = =

ALI – Arquivos Lógicos Internos AIE – Arquivos de interfaces ext.

Contagem total - Pontos por função (não ajustado)

36

Etapa 5: Determinar o Fator de Ajuste • Fator de Ajuste de Valor (VAF)
– 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
37

Fator de Ajuste
• O IFPUG (International Function Point Users Group), órgão responsável pela técnica, tornou o fator de ajuste opcional para adequar-se ao padrão ISO/IEC. • O objetivo do fator é ajustar os pontos de função não-ajustados em ± 35% de acordo com a influência de 14 características gerais. • No processo aqui apresentado, não será utilizado no cálculo final.
38

Cálculo do Fator de Ajuste
• Características não funcionais interferem na complexidade do produto. • Calcular o Fator de Ajuste:
– Avaliar o impacto de cada uma das quatorze características (próximo slide)
• atribuir a cada característica um peso de 0 a 5.

– Calcular o nível de influência:
• Somando-se os pesos de cada uma das características.

– Aplicar a fórmula de cálculo do fator de ajuste (variação de + − 35%).
39

Cálculo do Fator de Ajuste
Características Gerais:
1. Comunicação de Dados 2. Processamento de Dados Distribuído (Funções Distribuídas) 3. Desempenho 4. Configuração do equipamento 5. Volume de Transações 6. Entrada de Dados On-Line 7. Interface com o usuário 8. Atualização On-Line 9. Processamento Complexo 10.Reusabilidade 11.Facilidade de Implantação 12.Facilidade Operacional 13.Múltiplos Locais 14.Facilidade de mudanças

É atribuída uma nota de 0 à 5
a cada 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: 14 Nt(total) = Nt i=1
VAF = 0,65 + (0,01 X Nt(total)) (0,65 <= VAF <= 1,35)
40

Tamanho de produtos conhecidos*

Fonte: *Jones, Capers T., Estimating Software Costs, McGraw-Hill, 1998
41

Correspondência aproximada entre PF e linhas de código
LOC/FP
Produtividade
Linguagem
Access JSP JavaScript
Média Mediana Baixa Alta Média Cons

35 59 58

38 63

15 42

47 75

50

ASP
Java Visual Basic VBScript

69
62 47 36

62
63 42 34

32
53 16 27

127
77 158 50

80 50
42

Fonte: http://www.qsm.com/FPGearing.html

Fatores de McConnell
• Variação da produtividade em função da escala

PM – Pessoa Mês

43

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
44

Qual o valor / preço de um ponto de função (R$/PF)?
• O valor R$/PF irá variar de acordo com as funcionalidades do software, considerando:
– a produtividade e experiência da equipe nas tecnologias e padrões; – o grau de qualidade solicitado pelo cliente; – a complexidade do software, – a quantidade de entregáveis (artefatos, documentos, modelos, etc).
FONTE: http://www.fattocs.com.br/blog/index.php/2012/04/569?lang=pt

45

Qual o preço de um PF?
• Em resumo, tudo aquilo que afeta custo de forma significativa mas que não tem relação direta com o tamanho medido pela APF acaba sendo computado no preço do ponto de função.

46

Qual o preço de um PF em uma tecnologia específica?
• As tecnologias disponíveis para desenvolvimento de sistemas podem influenciar diretamente na produtividade (tanto positivamente quanto negativamente) • Assim, é bastante comum no mercado a diferenciação do valor do PF (R$/PF) de acordo com a plataforma tecnológica (mainframe, web, cliente-servidor, etc) e a linguagem de programação (Cobol, C, Java, .net, etc).

47

Licitações públicas com PF
• O Governo Federal aplica PF em contratos para desenvolvimento e manutenção de software (por recomendação do Tribunal de Contas da União).
– PF são usados como medição para o pagamento e verificação dos serviços.

• Na tabela http://www.fattocs.com.br/editais.asp, há exemplos de editais e valores.
– Pode-se observar que a variação dos números é muito significativa, com valores na faixa de R$100/PF a R$1.000/PF.
48

EXEMPLOS E ESTUDO DE CASO
49

Estudo de Caso: Sistema de Controle de Ponto
• O sistema tem por objetivo registrar a entrada e saída de funcionários de uma determinada empresa. • O exemplo serve para ilustrar a técnica de PF. Portanto, o sistema é uma simplificação de um sistema real. • A seguir, é apresentada uma pequena documentação necessária para compreensão do sistema e serve de base para o cálculo dos PF.
50

Descrição do Sistema
• No sistema de controle de pontos, um trabalhador registra suas entradas e saídas do ambiente do trabalho. • Caso o trabalhador esqueça o cartão de ponto, ele pode justificar tal ocorrência. • O trabalhador também pode acompanhar a sua freqüência, onde o sistema apresenta os totais de horas trabalhadas em um determinado período. • Cada trabalhador pode ter acesso apenas às suas informações. • Além disso, o gerente pode emitir um relatório com as informações de freqüência de todos os funcionários de seu departamento.
51

Visão do Sistema de Ponto

52

Casos de Uso
Registrar freqüência
Registrar justificativa Acompanhar freqüência Emitir relatório de freqüência Efetuar Logon

Permite ao trabalhador inserir, alterar, excluir as informações de entrada e saída em uma data.
O trabalhador insere uma justificativa em caso de alteração ou exclusão de horário. Exibe ao trabalhador o acompanhamento de seus registros de ponto em um período escolhido. Permite ao gerente acompanhar o registro de presença dos trabalhadores em um determinado período informado. Permite que o funcionário (trabalhador ou gerente) efetue a autenticação no sistema e, a partir deste ponto, escolher as opções disponíveis para acesso ao sistema dependendo do perfil do usuário.
53

Diagrama de Classes de Domínio

Observar que a classe Funcionário faz parte de outro sistema (Controle de Segurança) e a aplicação de controle de ponto apenas faz referência a ela.

54

Modelo de Banco de Dados (ER)

Observe que a classe Justificativa (do modelo de classes) foi mapeada para duas tabelas: JUSTIFICATIVA e LINHAS.
55

Transações (Campos e Arquivos Referenciados)
Transação (Tela/Rel) Campos
Logon
Registro de Ponto Consultar Freqüência Registrar (incluir) freqüência com Justificativa Excluir Apontamento Alterar Apontamento Acompanhar Freqüência
Matricula, Senha, Mensagens, Comando Indicador de entrada e saída, Mensagens, Comando Data do ponto, Horário de entrada, Hora de saída, Mensagens, Comando Indicador de entrada ou saída, Horário, Justificativa, Mensagens, Comando Mensagens, Comando Horário anterior, Horário novo, Justificativa, Mensagens, Comando Data inicial, Data final, Total de horas no período, nome do funcionário, data do ponto, horário do ponto, indicador de ent/saída, justificativa, Mensagens, Comando Data Inicial, Data final, Matricula, Nome, Total de horas, Quantidade de Justificativas, Total de horas geral, Mensagens, Comando

Arquivo (Tabela)
Funcionário Apontamento (Ponto) Apontamento Apontamento, Justificativa

Apontamento, Justificativa Apontamento, Justificativa Apontamento, Justificativa, Funcionário

Emitir Relatório de Freqüência

Apontamento, Justificativa, Funcionário 56

Contagem: Entradas Externas
Descrição da função
Registro de Ponto Registrar (incluir) freqüência com Justificativa Excluir Apontamento

TAR
1 2 2

TED
3 5 2

Compl ex.
S M S

PF
3 4 3

Alterar Apontamento
TOTAL (EE)

2

5

M

4
14
57

Contagem: Saídas Externas
Descrição da função TAR TED Compl ex. S PF

Logon

1

4

4

Acompanhar Frequencia

3

10

M

5

Emitir Relatório de Frequencia

3

9

M

5

TOTAL (SE)

14

58

Contagem: Consultas Externas

Descrição da função

TAR

TED

Complex

PF

Consultar Freqüência TOTAL (CE)

1

5

S

3 3

59

Contagem: Arquivos Lógicos Internos

Descrição da função

TER

TED

Complex.

PF

Apontamento

1

4

S

7

Justificativa

1

3

S

7

TOTAL (ALI)

14

60

Contagem: Arquivos de Interface Externa

Descrição da função

TER

TED

Complex

PF

Funcionário

1

4

S

5

TOTAL (AIE)

5

61

Contagem Final de PF (não ajustados)
Item
Entradas Externas Saídas Externas

PF Brutos
14 14

Consultas Externas
Arquivos Lógicos Internos Arquivos Lógicos Externos

3
14 5

Pontos Função (não-ajustados)

50
62

Exercício 1
• Utilizando a definição do sistema para o consultório odontológico (ver material anexo):
– Elabore a documentação dos requisitos/funcionalidades do sistema; – Calcule os pontos de função não ajustados do sistema; – Calcule os pontos de função considerando os fatores de ajuste: sistema on-line (na web), desenvolvido para alta disponibilidades, prevendo o reuso de componentes, com poucas transações e desempenho médio.
63

Exercício 2
• Considere a tela para uma aplicação de cadastro (ver figura no próximo slide) • Aplique a técnica de estimativa de pontos de função para calcular os PF não ajustados. • Para calcular os PF não ajustados você terá que modelar o banco de dados a partir da tela em questão. Considere um modelo de dados normalizado.
64

Formulário de Cadastro “Criar Conta email”

65

Exercício resolvido.
Contagem de Pontos de Função – Transações para incluir, alterar, excluir e consultar “Mercadorias em Estoque”.

66

Contagem de Pontos de Função

67

Exercício resolvido. Estimativas
• • • • • • Considere um projeto estimado em 100 PF Numa fase que corresponde a 20% do Projeto Numa equipe de 4 pessoas Considerando uma produtividade média de 20 horas/PF Considerando uma jornada de 6 horas diárias Considerando um valor de R$35,00 o valor de 1h de Trabalho

– Calcule os valores
• • • • Do tamanho em PF dos 20% do projeto Do Esforço total em horas Do Prazo em dias Do Custo em R$
68

Estimativas. Resolução
• • • • 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

69

Referências
• Paula Filho, Wilson de Pádua. Engenharia de Software Fundamentos, Métodos e Padrões. 2ª. edição. LTC, 2003. • Carlos Eduardo Vasquez, Guilherme Siqueira Simões, Renato Machado Albert. ANÁLISE DE PONTOS DE FUNÇÃO: medição, estimativas e gerenciamento de projetos de software. Érica, 2003.
– http://www.fattocs.com.br/citacao-livro-apf.asp
70

Sign up to vote on this title
UsefulNot useful