Você está na página 1de 28

Estimativas baseada em casos

de uso
Estimativas de Software
◼ O problema de se estimar um projeto de software
envolve a previsão de quatro variáveis:
◼ tamanho,
◼ esforço,
◼ prazos e
◼ qualidade.
◼ Esforço
◼ obtido por meio do cálculo do tamanho;
◼ Prazo e o custo
◼ obtidos a partir do esforço;
◼ Qualidade
◼ obtida por meio de um conjunto de fatores que vai muito
além do tamanho, do esforço e dos prazos e custos.
2
Estimativas de Tamanho

◼ As medidas de tamanho de software surgiram


com o objetivo de estimar esforço
(número de pessoas/hora) e o prazo associado
ao desenvolvimento de sistemas.
◼ Linhas de Código (LOC – Lines of Code)
◼ Análise de Pontos de Função (APF)
◼ Mark II (ou MK II)
◼ Feature Points
◼ Use Case Points (UCP)

3
Pontos por Caso de Uso
◼ Proposto em 1993 por Gustav Karner;
◼ Baseou-se na Análise por Pontos de Função
(APF);
◼ Trata de estimar o tamanho de um sistema
de acordo com:
◼ o modo como os usuários o utilizarão;
◼ a complexidade de ações requerida por cada tipo
de usuário;
◼ uma análise em alto nível dos passos necessários
para a realização de cada tarefa;

4
Pontos por Caso de Uso
◼ O Método de Use Case Points foi criado para
que seja possível estimar o tamanho de um
sistema já na fase de levantamento de Casos
de Uso;
◼ Ele utiliza-se dos próprios documentos
gerados nesta fase de análise como subsídio
para o cálculo dimensional;

5
Pontos por Caso de Uso
◼ A principal dificuldade em realizar uma estimativa no
inicio do processo de desenvolvimento é a não
estabilidade dos requisitos e a ausência de
informações sobre os mesmos.
◼ Mesmo com a utilização de uma técnica
desenvolvida com este propósito, que é o caso da
UCP, a atividade de realizar estimativas continua
muito dependente da experiência das pessoas
envolvidas, e do conhecimento armazenado pela
empresa sobre a realização de estimativas.

6
Pontos por Caso de Uso
◼ Passo 1: Cálculo do UAW (Unadjusted Actor
Weight) – Peso dos atores sem ajuste

Tipo de Ator Peso Descrição


Ator Simples 1 Outro sistema acessado através de uma
API de programação
Ator Médio 2 Outro sistema acessado interagindo através
da rede
Ator Complexo 3 Um usuário interagindo através de uma
interface gráfica

7
Pontos por Caso de Uso
◼ Exemplo:

Tipo de Ator Peso Nº de atores Resultado


Ator Simples 1 0 0
Ator Médio 2 0 0
Ator Complexo 3 4 12
Total UAW 12

8
Valores já calculados: UAW = 12
Pontos por Caso de Uso
◼ Passo 2: Cálculo do UUCW (Unadjusted Use Case
Weight) – Peso dos cados de uso sem ajuste
◼ Para fins de cálculo, dividimos os casos de uso em três
níveis de complexidade:
• Simples (peso 5): Tem até 3 transações, incluindo os passos
alternativos, OU envolve uma interface com usuário
simplificada e utilizar apenas uma entidade em um banco de
dados;
• Médio (peso 10): Tem de 4 a 7 transações, incluindo os
passos alternativos, OU envolve uma interface mais trabalhada
e utiliza-se de duas ou mais entidades de banco de dados;
• Complexo (peso 15): Tem acima de 7 transações, incluindo
os passos alternativos, OU envolver 3 ou mais entidades em
um banco de dados e contiver uma interface mais complexa;

9
Pontos por Caso de Uso
◼ No caso do exemplo:

Tipo Peso Nº de Casos de Uso Resultado


Simples 5 7 35
Médio 10 13 130
Complexo 15 3 45
Total UUCW 210

10
Valores já calculados: UAW = 12, UUCW = 210
Pontos por Caso de Uso
◼ Passo 3: Cálculo do UUCP (Unadjusted Use
Case Points)
UUCP = UAW + UUCW

◼ No caso do exemplo:
UUCP = 12 + 210 = 222

11
Valores já calculados: UAW = 12, UUCW = 210, UUCP = 222
Pontos por Caso de Uso
◼ Calculando fatores de ajuste:
◼ O método de ajuste é bastante similar ao adotado
pela Análise por 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;

12
Pontos por Caso de Uso
◼ Passo 4: Cálculo Fator Requisito Peso

do Tfactor T1 Sistema distribuído 2


T2 Tempo de resposta 2
◼ Para cada requisito
T3 Eficiência 1
listado na tabela,
deve ser atribuído T4 Processamento complexo 1
um valor que T5 Código reusável 1
determina a T6 Facilidade de instalação 0.5
influência do T7 Facilidade de uso 0.5
requisito no T8 Portabilidade 2
sistema, variando T9 Facilidade de mudança 1
entre 0 e 5; T10 Concorrência 1
T11 Recursos de segurança 1
T12 Acessível por terceiros 1
T13 Requer treinamento especial 113
Pontos por Caso de Uso
◼ Obtido pelo somatório do produto peso x influência
Fator Requisito Peso Influência Resultado

T1 Sistema distribuído 2 1 2
T2 Tempo de resposta 2 3 6
T3 Eficiência 1 3 3
T4 Processamento complexo 1 3 3
T5 Código reusável 1 0 0
T6 Facilidade de instalação 0.5 0 0
T7 Facilidade de uso 0.5 5 2.5
T8 Portabilidade 2 0 0
T9 Facilidade de mudança 1 3 3
T10 Concorrência 1 0 0
T11 Recursos de segurança 1 0 0
T12 Acessível por terceiros 1 0 0
T13 Requer treinamento especial 1 0 0
14
Tfactor 19,5
Pontos por Caso de Uso
◼ Passo 5: Cálculo do TCF (Technical
Complexity Factor)
TCF = 0.6 + (0.01  Tfactor)

◼ No caso do exemplo:
TCF = 0.6 + (0.01  19.5) = 0.795

15
Valores já calculados: UUCP = 222, Tfactor = 19.5, TCF = 0.795
Pontos por Caso de Uso
◼ Passo 6: Cálculo Fator Descrição Peso
Familiaridade com RUP ou
do Efactor E1
outro processo formal
1.5

◼ Para cada requisito Experiência com a aplicação


E2 0.5
listado na tabela, em desenvolvimento
deve ser atribuído Experiência em Orientação a
E3 1
um valor que Objetos
determina a E4
Presença de analista
0.5
influência do experiente
requisito no E5 Motivação 1
sistema, variando E6 Requisitos estáveis 2
entre 0 e 5; Desenvolvedores em meio-
E7 -1
expediente
Linguagem de programação
E8 -1
difícil
16
Pontos por Caso de Uso
◼ No caso do exemplo:
Fator Descrição Peso Influência Resultado
Familiaridade com RUP ou outro
E1 1.5 5 7.5
processo formal
Experiência com a aplicação em
E2 0.5 0 0
desenvolvimento
E3 Experiência em Orientação a Objetos 1 5 5
E4 Presença de analista experiente 0.5 5 2.5
E5 Motivação 1 5 5
E6 Requisitos estáveis 2 3 6
E7 Desenvolvedores em meio-expediente -1 0 0
E8 Linguagem de programação difícil -1 0 0
Efactor 26

17
Valores já calculados: UUCP = 222, TCF = 0.795, Efactor = 26
Pontos por Caso de Uso
◼ Passo 7: Cálculo do ECF (Environmental
Complexity Factor)
ECF = 1.4 + (-0.03  Efactor)

◼ No caso do exemplo:
ECF = 1.4 + (-0.03  26) = 0.62

18
Valores já calculados: UUCP = 222, TCF = 0.795, Efactor = 26, ECF = 0.62
Influência nos fatores
◼ Determinar que um fator tem nível de
influência alta (atribuir a ele o valor 5),
significa que este fator está presente no
projeto como um todo e influencia seu
desenvolvimento.
◼ Por outro lado, a atribuição de um valor de
influência zero (nenhuma influência) a um
fator, indica que o mesmo não está presente
no processo de desenvolvimento.

19
Pontos por Caso de Uso
◼ Passo 8: Cálculo dos UCP (Use Case Points)
UCP = UUCP  TCF  ECF

◼No caso do exemplo:


ECF = 222  0.795  0.62 = 109.42 ou 109
Use Case Points

20
Valores já calculados: UUCP = 222, TCF = 0.795, ECF = 0.62
Pontos por Caso de Uso
◼ Passo 9: Cálculo do tempo de trabalho estimado
◼ A Produtividade corresponde ao número de horas para cada
ponto de UCP para determinar assim, o esforço necessário
em horas/homem para a realização da tarefa.
◼ Experiências práticas no uso desta técnica demonstram uma
variação entre 15 e 36 horas por ponto.
◼ Para simplificar, utilizaremos a média de 20 horas por Ponto
de Casos de Uso

◼ No caso do exemplo:
Tempo estimado = 109 * 20 = 2180 horas de trabalho

21
Valores já calculados: UCP = 109
Estimativa de Custo de
Desenvolvimento

◼ O custo da hora-desenvolvimento varia de


acordo com a especialização do profissional
que irá realizar a tarefa.
◼ Por exemplo:
◼ Analistas de Desenvolvimento, este valor se situa
entre 80 e 100 reais por hora.
◼ Para programadores, entre 30 e 60 reais a hora.
◼ Na média, para horas de desenvolvimento de
cada caso de uso, pode-se considerar R$ 50,00

22
Estimativa do Custo de
Desenvolvimento.
◼ É obtida a partir da multiplicação do número
de casos de uso estimados, pelo valor médio
da hora de desenvolvimento.
◼ Exemplo: para um sistema de 300 horas,
teríamos:
300 * 50,00 = 15.000,00
◼ Assim neste caso teríamos um custo de
desenvolvimento de R$ 15.000,00 (quinze
mil reais)

23
Estimativa do Custo de
Desenvolviemtno
◼ Para cada empresa que desenvolve software,
estes valores devem ser ajustados em
função do que realmente ocorreu nos
projetos já terminados e entregues ao
usuário.
◼ Com o tempo, pode-se chegar a estimativas
da proporcionalidade do envolvimento de
programadores e analistas no projeto,
fazendo-se cálculos mais realistas.

24
Estimativa de Custo do Projeto
◼ Devem ser somados todos os custos
envolvidos, desde o início do projeto até o
seu final:
◼ Custo de treinamento
◼ Custo de hw
◼ Custo do sw de apoio (licenças de BD, Ferramenta
CASE, etc.)
◼ Custo do desenvolvimento
◼ Outros

25
Exercício

◼ Faça a estimativa de PCU para o sistema abaixo:


Qtd.
Ator Peso Atores
Simples 1

Médio 2

Complexo 3

Qtd. Casos
Caso de Uso Peso de Uso
Simples 5
Médio 10
Complexo 15

26
Fatores Técnicos

Fator Descrição Peso Atribuído


T1 Sistema distribuído 2
T2 Objetivos de performance 1
T3 Eficiênca on-line 1
T4 Complexidade de processamento 1
T5 Código reusável em outras aplicações 1
T6 Facilidade de instalação 0,5
T7 Facilidade de uso 0,5
T8 Portabilidade 2
T9 Facilidade de alterações (changeability) 1
T10 Concorrência 1
T11 Segurança 1
T12 Acesso direto a terceiros 1
Necessidade de facilidades especiais de
T13 treinamento para usuários 1

TCF = 0.6 + (0.01  Tfactor)


27
Fatores Ambientais

Fator Descrição Peso Atribuído

F1 Familiaridade da equipe com RUP 1,5

F2 Experiência da equipe 0,5

F3 Experiência da equipe em OO 1

F4 Capacidade dos analistas da equipe 0,5

F5 Motivação 1

F6 Estabilidade dos requisitos 2

F7 Estagiários ou funcionários em tempo parcial -1

F8 Domínio da tecnologia e configuração do ambiente -1,5

ECF = 1.4 -0.03  Efactor)


28

Você também pode gostar