Anda di halaman 1dari 64

Mini-curso

Fundamentos de Estimativas de
Software

1/ 40
Logística

• Duração Prevista
– 18h30 às 22h30
• Intervalos
– Coffee break: 20h30 às 20h45
• Recomendações
– Manter celulares em modo silencioso. Caso seja necessário, atendê-lo
fora da sala;
– Perguntas preferencialmente ao final de cada assunto.

2/ 40
Agenda

• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização

3/ 40
Objetivos

• Apresentar técnicas de estimativa para


projetos de software utilizados no mercado
atualmente, fornecendo informações
importantes para que empresas de
desenvolvimento de sistemas e produtos
possam escolher, e caso necessário, adaptar o
método de forma adequada.

4/ 40
Agenda

• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização

5/ 40
Apresentação

Quem somos?

6/ 40
Renata Marins de Sá Frank

• + de 10 anos de experiência profissional em Engenharia de


Software (análise, desenvolvimento e testes de sistemas),
Gerência de Projetos e Engenharia de Processo de Software
(definição e institucionalização de processos).
• Analista de Sistemas graduada pela UNIANDRADE, também
cursou Bacharelado em Ciência da Computação na UFSC.
• Consultora Sênior do CITS para melhoria de processo e
qualidade de software atuando em empresas que buscam
maturidade níveis G, F e C (MPS.BR) e 2 e 3 (CMMi) .
• Implementadora MPS.BR Certificada pela SOFTEX.

7/ 40
Agenda

• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização

8/ 40
Conceitos

• Tamanho:
– O tamanho do projeto é definido por sua capacidade de
produção durante um período de trabalho considerado
normal.
– O tamanho é a dimensão das funcionalidades sob o ponto
de vista do usuário.
– complexidade do software ou projeto em alguma unidade
abstrata.

9/ 40
Conceitos

• “Estimativa de tamanho de software é um processo


pelo qual uma pessoa ou um grupo de pessoas
estima o tamanho de um produto de software”
(McPHEE, 1999).

10/ 40
Conceitos

• Unidades comuns:
– Linhas de código (KLOC).
– Pontos de caso de uso.
– Pontos de função.
• Saber o tamanho de um projeto é um dos
primeiros passos do processo de estimativa de
esforço, prazo e custo.

11/ 40
Conceitos

• Esforço
– Chamado de empenho ou trabalho, é a quantidade de
unidades de mão-de-obra necessária para concluir uma
atividade.
• Exemplo:
– Tamanho = 1000 unidades de tamanho
– Produtividade usada de 8 horas por unidade de tamanho
– Esforço = 8000 horas.

12/ 40
Conceitos

• Prazo
– O tempo esperado para uma atividade ser
concluída dado o esforço e recursos disponíveis.

13/ 40
Reflexão sobre
Tamanho
Esforço
Prazo

14/ 40
Conceitos

• Razões para medir


– Prover subsídio para determinar esforço,
recursos, duração e custo do desenvolvimento;
– Gerenciar contratos de software;
– Indicar a qualidade do produto;
– Formar uma baseline para estimativas;
– Avaliar a produtividade do processo.

15/ 40
Conceitos

• “Estimativas produzem estimativas e não


certezas absolutas”, Steve McConnel.
• “Não se pode controlar o que não se pode
medir” Tom de Marco.

16/ 40
Agenda

• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização

17/ 40
Técnicas de Estimativas

• APF (Análise de Ponto por Função)


– Criada em 1979 por Allan Albrecht (IBM)
– IFPUG (InternationalFunctionPointsUserGroup): entidade
criada em 1986 que regulamenta a técnica.
– É uma técnica para a medição de projetos de
desenvolvimento de software, visando estabelecer uma
medida de tamanho, em Pontos de Função (PF),
considerando a funcionalidade implementada, sob o
ponto de vista do usuário. A medida é independente da
linguagem de programação ou da tecnologia que será
usada para implementação.

18/ 40
Técnicas de Estimativas

• APF (Análise de Ponto por Função)


– Uma medida FUNCIONAL do tamanho do
software.

m2 PF
Mede tamanho de Mede tamanho de
objetos. software

19/ 40
Técnicas de Estimativas

• APF (Análise de Ponto por Função)


Objetivos:
– medir a funcionalidade solicitada pelo usuário, antes do
projeto de software, de forma a estimar seu tamanho e
seu custo;
– medir projetos de desenvolvimento e manutenção de
software, independentemente da tecnologia utilizada na
implementação, de forma a acompanhar sua evolução;

20/ 40
Técnicas de Estimativas

• APF (Análise de Ponto por Função)


Objetivos:
– medir a funcionalidade recebida pelo usuário, após o
projeto de software, de forma a verificar seu tamanho e
custo, comparando-os com o que foi originalmente
estimado;

21/ 40
Técnicas de Estimativas

• Aplicação
– uma ferramenta para determinar o tamanho de pacotes
de software adquiridos, através da contagem de todos os
Pontos por Função incluídos no pacote;
– uma ferramenta para apoiar a análise da qualidade e da
produtividade;
– um mecanismo para estimar custos e recursos envolvidos
em projetos de desenvolvimento e manutenção de
software;
– um fator de normalização para comparação de software.

22/ 40
APF

• Como usar
– Determinar o Tipo de Contagem: Existem três tipos de
contagem de pontos de função. A diferença no
procedimento adotado entre esses tipos de contagem está
nas fórmulas aplicadas no passo final da contagem.
• projeto de desenvolvimento: mede todas as funções que o projeto
entregará e eventuais funções de conversão de dados.
• projeto de melhoria: mede as funções alteradas, incluídas e
excluídas pelo projeto e eventuais funções de conversão de dados.
• aplicação: mede as funções de um software instalado.

23/ 40
APF

• Como usar
– Identificação do Escopo e Fronteira da aplicação:
• A fronteira da aplicação é a interface conceitual entre o software e
o usuário. Ela delimita o software e o mundo externo. É um
elemento essencial para a correta identificação das funções do
tipo dado e transação nos passos seguintes. O escopo da
contagem define o que fará parte da contagem de pontos de
função.

24/ 40
APF

• Como usar
– Relacionar as funcionalidades:
– DADOS
• ALI Tabelas internas do sistema (aquelas que mantém dados)
• AIE Tabelas de outros sistemas e que consultamos informações
– TRANSAÇÕES
• EE Telas de Inclusão, Alteração e Exclusão de Registros nas
tabelas
• CE Telas de Consultas simples e Relatórios de listagens
• SE Telas de Consultas complexas e Relatórios com cálculos

25/ 40
APF

• Como usar
– Pontuar as funcionalidades:
• Se a contagem for detalhada: a partir das tabelas de pontuação
definidas no CPM 4.2.1
• Se a contagem for estimada:
– Cada ALI com 7 PF
– Cada AIE com 5 PF
– Cada EE e CE com 4 PF
– Cada SE com 5 PF
• Se a contagem for indicativa:
– Cada ALI com 35 PF
– Cada AIE com 15 PF

26/ 40
APF

• Como usar
– Calcular o fator de ajuste: O fator de ajuste representa a
influência de requisitos técnicos e de qualidade no
tamanho do software. É calculado com base nas 14
Características Gerais do Sistema (CGS) listadas a seguir:
• Comunicação de Dados , Processamento Distribuído,
Performance, Configuração Altamente Utilizada, Volume de
Transações, Entrada de Dados On-Line, Eficiência do Usuário Final,
Atualização On-Line, Complexidade de Processamento,
Reutilização, Facilidade de Instalação, Facilidade de Operação,
Múltiplos Locais, Facilidade de Mudanças.

27/ 40
APF

• Como usar
– Cada uma dessas características deve ser analisada com relação ao
seu nível de influência sobre o sistema e pontuada de 0 (nenhuma
influência) a 5 (grande influência). Então soma-se todas essas
pontuações para obter o nível total de influência (TDI). Daí basta
aplicar a seguinte fórmula para obter o fator de ajuste:
– VAF = (TDI x 0,01) + 0,65.

28/ 40
APF

• Como usar
– Calcular os pontos de função ajustados: consiste
basicamente em multiplicar o fator de ajuste pelos pontos
de função não ajustados. Porém existem fórmulas
específicas para cada tipo de contagem:
• projeto de desenvolvimento  DFP = (UFP + CFP) x VAF, onde:
UFP - pontos de função da aplicação a ser instalada
CFP - pontos de função das funcionalidades de conversão de dados
VAF - valor do fator de ajuste

29/ 40
APF

• Como usar
• projeto de melhoria  EFP = [(ADD + CHGA + CFP) x VAFA] + (DEL
x VAFB), onde:
ADD - pontos de função das funcionalidades adicionadas
CHGA - pontos de função das funcionalidades alteradas
CFP - pontos de função das funcionalidades de conversão de dados
VAFA - valor do fator de ajuste do software após o projeto de
melhoria
DEL - pontos de função das funcionalidades excluídas
VAFB - valor do fator de ajuste do software antes do projeto de
melhoria

30/ 40
APF

• Como usar
• Aplicação  AFP = ADD x VAF

31/ 40
APF

• Fator de Produtividade
– A melhor forma de obter indicadores de produtividade
que realmente sejam úteis nas estimativas com pontos de
função é apurar esse indicador através dos projetos
desenvolvidos pela organização. Mas como fazer isto?
– O primeiro passo é recuperar dos projetos passados as
duas grandezas que compõe o indicador de produtividade:
o tamanho (em pontos de função) e o esforço (horas).
Com estes dois dados tem-se de forma direta a
produtividade daquele projeto.

32/ 40
APF

• Mais detalhes
– Manual de Práticas de Contagem do IFPUG
• Exemplos de Planilhas
– Demonstração de exemplos de planilhas de
cálculo.
• Dica:
– Elabore sua planilha, adquirindo maturidade
sobre o método.

33/ 40
Agenda

• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização

34/ 40
Técnicas de Estimativa

• UCP – Pontos por Caso de Uso


– Esta técnica permite fazer estimativas no início do projeto
com base no modelo de casos de uso, e baseia-se na
definição da Análise de Pontos por Função, na qual a
funcionalidade vista pelo usuário é a base para a
estimativa do tamanho do software.
– Uma vez que os casos de uso principais do sistema sejam
identificados, é possível estimar-se o tamanho do software
como um todo através de um conjunto simples de
métricas.

35/ 40
UCP

• Técnica
– Listar os Casos de Uso a serem desenvolvidos
– Listar todos os atores que interagem com os Casos de Uso a serem
desenvolvidos
– Calcular o UUCP (pontos de caso de uso não ajustados)
– Definir o fator técnico de ajuste – TCF utilizando como referência 13
temas que influenciam na complexidade técnica para
desenvolvimento do sistema
– Definir o fator ambiental de ajuste - EF baseado no grau de
importância de oito temas que definem o grau de eficiência do
projeto;
– Calcular o UCP (ajustados).

36/ 40
UCP

• Técnica
– Calculo do Peso dos atores (UAW - Unadjusted Actor
Weight)

37/ 40
UCP

• Técnica
– Unadjusted Use Case Weight – UUCW
• Por número de transações

38/ 40
UCP

• Técnica
– Unadjusted Use Case Weight – UUCW
• Por número de entidades

39/ 40
UCP

• Técnica
– Peso Total não ajustado UUCP

UUCP = UAW + UUCW

40/ 40
UCP

• Técnica
– Fatores de Ajuste
Bastante similar ao adotado pela técnica de Pontos de
Função, e é constituído de duas partes:
• Cálculo de fatores técnicos, cobrindo uma série de requisitos
funcionais do sistema;
• Cálculo de fatores de ambiente, requisitos não-funcionais
associados ao processo de desenvolvimento, tais como,
experiência da equipe, motivação e estabilidade do projeto.

41/ 40
UCP

• Técnica
– Fatores Técnicos de
Complexidade (TCF)
• Atribuir um valor que determina
a influência do requisito no
sistema, variando entre 0 e 5 -
sendo que o valor 0 indica
nenhuma influência, 3 indica
influência moderada e 5 indica
forte influência.
TCF = 0.6 + (0.01 x TFactor)

42/ 40
UCP

• Técnica
– Fatores Ambientais (EF)
• Atribuir um valor que determina a influência da disponibilidade de
recursos para o projeto, variando entre 0 e 5 - sendo que o valor 0 indica
nenhuma influência, 3 indica influência moderada e 5 indica forte
influência.

EF = 1.4 + (-0.03 x
EFactor)

43/ 40
UCP

• Técnica
– Pontos de Casos de Uso Ajustados (UCP)

UCP = UUCP x TCF x EF

44/ 40
UCP

• Fator de Produtividade
– Alguns autores sugerem à utilização de 20 pessoas-hora por unidade
de pontos por caso de uso, outros sugerem o seguinte refinamento :
• X = total de itens de E1 a E6 com pontuação abaixo de 3
• Y = total de itens de E7 a E8 com pontuação acima de 3
• Se X + Y <= 2, usar 20 como unidade de homens/hora
• Se 3<=X + Y <= 4, usar 28 como unidade de homens/hora
• Se X + Y >= 5, deve-se tentar modificar o projeto de forma a baixar o
número, pois o risco de insucesso é relativamente alto.
– A estimativa de horas é calculada de acordo com a seguinte fórmula:
UCP* pessoas/hora por unidade de pontos por caso de uso.

45/ 40
UCP

• Exemplos de Planilhas
– Demonstração de exemplos de planilhas de
cálculo.
• Dica:
– Elabore sua planilha, adquirindo maturidade
sobre o método.

46/ 40
Agenda

• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização

47/ 40
Técnicas de Estimativa

• Planning Poker
– É um método eficiente que estima o tamanho dos
requisitos em times que adotam métodos ágeis.
– O método foi primeiramente descrito por James Grenning
em 2002 e, mais tarde popularizado por Mike Cohn no
livro Agile Estimating and Planning.

48/ 40
Técnicas de Estimativa

• Planning Poker
– As estimativas acontecem em reuniões que duram
geralmente 4 ou 8 horas.
– Participantes:
• Todos os membros do time do Scrum;
• O PO somente esclarece os requisitos e não estima junto a equipe;
• O Scrum Master registra os resultados, não interferindo nas
estimativas do time;
• A equipe não deve ser superior a dez pessoas.

49/ 40
Planning Poker

• Técnica
– Cada participante recebe um conjunto de cartas nos
valores: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100, ? e “pausa”.

50/ 40
Planning Poker

• Técnica
– Os requisitos a serem estimados são lidos pelo Product
Owner ou pelo Scrum Master;
– A equipe decide qual o menor item de backlog disponível.;
– Após a estimativa inicial, esse item é marcado como “2”
pontos, definindo uma referência de tamanho e
complexidade para ser usada nas demais estimativas.

51/ 40
Planning Poker

• Técnica
– Cada requisito é lido e sua descrição e os critérios da
aceitação da mesma são entendidos.
– São respondidos questionamentos a respeito da
estória/requisito;
– Deve-se manter a discussão em alto nível, não entrando
em detalhes técnicos de implementação.
– Esta discussão deve ocorrer em um tempo
predeterminado (timebox);

52/ 40
Planning Poker

• Técnica
– Cada desenvolvedor escolhe em silêncio a carta que
representa sua estimativa.
– O moderador pede para todos mostrarem as cartas.
– Se todas as estimativas convergirem, a estimativa está
feita e o processo volta ao início, para um novo item.
– Se houver uma grande variação na estimativa, aqueles que
apresentaram o(s) maior(es) e o(s) menor(es) valor(es) se
justificam e o processo se repete até todas as estimativas
convergirem.

53/ 40
Planning Poker

• Técnica
– Reflexão sobre a técnica: Quando aplicar?

54/ 40
Agenda

• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização

55/ 40
Técnicas de Estimativa

• PERT - Program Evaluation and Review


Technique
– A técnica denominada PERT foi desenvolvida para o
Planejamento e Controle de Projetos em torno de 1950.
– É o cálculo a partir da média ponderada de 3 durações
possíveis de uma atividade (otimista, mais provável e
pessimista)
• Pessimista (tp) te = to + 4tm + tp
• Mais provável (tm) 6
• Otimista (to)
» Por ser uma média ponderada, considera o risco da estimativa original.

56/ 40
Técnicas de Estimativa

• 3 pontos
– É o cálculo a partir da média simples de 3 durações
possíveis de uma atividade (otimista, mais provável e
pessimista)
• Pessimista (tp)
• Mais provável (tm)
• Otimista (to)

te = to + tm + tp
3

57/ 40
Agenda

• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização

58/ 40
Técnicas de Estimativa

• Customização de estimativa
– Pontos importantes
• Ter critérios de classificação da complexidade dos
requisitos, de forma que seja possível aplicar o método
de estimativa independente de quem assume o papel
responsável;
• Documentar a técnica;
• Levar em consideração, de forma objetiva, a
característica da equipe, ambiente e projeto;
• Não permitir a subjetividade na estimativa.

59/ 40
Técnicas de Estimativa

• Customização de estimativa
– Exercício
• Estabeleça critérios de classificação dos requisitos e
elabore um método de estimativa de tamanho de
projeto.

60/ 40
Técnicas de Estimativa

• Customização de estimativa
– Reflexão
• Tamanho de projeto
• Tamanho de produto
• Obrigatoriedade de uso de técnicas de estimativas em
implementações modelos de melhoria de processo de
software (CMMi / MPS.BR).

61/ 40
Agenda

• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização

62/ 40
• Dúvidas?

63/ 40
OBRIGADA PELA SUA ATENÇÃO!

Renata Frank
consultoria@renatafrank.com.br
(41) 8856-3734

64/ 40