Post on 21-Jun-2015
Estimativa de Software Baseada em Ponto de Caso de Uso
• Fabio Pinheiro Abreu
– Bacharel em Ciência da Computação
– Mestre em Informática Aplicada
– Certificado PMP
– Implementador Oficial MPS.BR
– Consultor em Gestão e Processos
– Professor na Área de Gestão de Projetos
– Conselheiro de 2006 a 2009 e Diretor em 2010 do PMI-CE
– Mais de 10 anos de experiência na área de TI tendo trabalhado no BANCO DO NORDESTE, UNISYS BRASIL, INSTITUTO ATLÂNTICO gerenciando projetos e portfólios para clientes como CPQD, EPSON, FORD/TROLLER, DÍGITRO, PADTEC, TOLEDO e TRIBUNAL DE JUSTICA DO CEARÁ
Apresentação
Agenda
1 - Motivação
2 - Tipos de Estimativas
3 - Ponto de Caso de Uso
4 - Quem utiliza
5 – Ponderação de Atores
6 – Ponderação de Casos de Uso
7 – Contagem de Transações
8 – Pontos de Casos de Uso Não-Ajustados
9 – Ponderação de Fatores Técnicos
10 – Ponderação de Fatores Ambientais
11 – Estimativa de Tamanho
12 – Estimativa de Esforço
• Estimativas são um dos grandes desafios para contratantes e fornecedores de serviços de desenvolvimento de software pois afetam a análise de viabilidade, elaboração de propostas, o planejamento e acompanhamento dos projetos;
Motivação
• Estimativa de Tamanho
– Grandeza física medida através dos requisitos, análise & projeto ou código do software com base nas suas funções e complexidade do problema
• Estimativa de Esforço
– Trabalho necessário para desenvolvimento do projeto obtido a partir da estimativa de tamanho
• Estimativa de Prazo
– Tempo necessário para desenvolvimento do projeto obtido a partir da estimativa de esforço e quantidade de recursos envolvidos no projeto
Tipos de Estimativas
• Técnica de estimativa de tamanho de projeto de software orientado a objetos
• Explora o modelo e a descrição dos casos de uso
• Depende de uma padronização dos casos de uso pois a contagem se baseia em transações identificadas nos fluxos de eventos
• É uma técnica simples e aplicável desde o início do processo de desenvolvimento de software
Ponto de Caso de Uso
• Banco do Nordeste do Brasil – BNB;
• Instituto Atlântico
• Centro de Gestão e Desenvolvimento Tecnológico – CGDT
• E-NOVAR Soluções Tecnológicas
Quem utiliza
Complexidade Descrição Fator
Simples Aplicação com API definidas 1
Intermediário Aplicação com interface baseada em protocolo ou interação de usuário baseado em linhas de comando
2
Complexo Interação de usuário através de interface gráfica
3
∑ UAW (Unadjusted Actor Weight) = ∑ Fator dos Atores
Ponderação de Atores
Complexidade Descrição Fator
Simples Até 3 transações incluindo fluxos alternativos
5
Intermediário De 4 a 7 transações incluindo fluxos alternativos
10
Complexo De 8 a 11 transações incluindo fluxos alternativos
15
N-Complexo Acima de 11 transações Fx
∑ UUCW (Unadjusted Use Case Weight) = ∑ Fator dos UCs
Fx = 15*(transações/11) + Fator(resto da divisão de transações/11)
Ponderação de Casos de Uso
• O que é uma transação?
– “É um conjunto de atividades atômicas, as quais são executadas completamente ou não”;
– “É um evento que ocorre entre o ator e o sistema”;
– “São passos dos fluxos de eventos de casos de uso, que deve ser executado por completo, ou a realização de algum processamento complexo”;
Contagem de Transações
• O que contar?
– passos que contenham campos de entrada possuindo valores passíveis de escolha originados de leitura de dados (listas de opções, combos e grids);
– passos que apresentem retorno de consultas com filtros preenchidos por buscas em bancos de dados;
Contagem de Transações
• O que contar?
– passos que proporcionem validações complexas de negócio;
– passos que contenham uma geração de relatório são considerados como uma transação, e cada filtro originado da leitura de dados das consultas será considerado uma outra transação;
Contagem de Transações
• O que contar?
– passos que apresentem funcionalidades de consultas auxiliares como casos de uso a parte (pop-up);
Contagem de Transações
• O que contar?
– passos onde existirem validações simples de campo de entrada de dados são considerados como uma única transação se a quantidade de validações for menor ou igual a 10. Se a quantidade de validações for maior que 10, conta-se uma transação a cada grupo de 5 validações;
Contagem de Transações
• O que NÃO contar?
– passos que descrevam o início e o fim do caso de uso, por exemplo, “O caso de uso se inicia...” ou “o caso de uso se encerra...” ;
– passos que detalhem a interação entre o sistema e o ator, por exemplo, “O usuário pressiona confirmar” ou “o sistema solicita ao usuário informar a
operação (incluir, alterar, excluir)”;
Contagem de Transações
• O que NÃO contar?
– passos que solicitem escolhas com valores fixos (sem leitura de dados);
– passos que façam leituras auxiliares de dados que já tenham sido realizadas em outros fluxos do mesmo caso de uso;
– fluxos alternativos que contenham
mensagens de erro.
Contagem de Transações
UUCP = ∑UAW + ∑UUCW
UUCP: Unadjusted Use Case Points
UAW: Unadjusted Actor Weight
UUCW: Unadjusted Use Case Weight
Pontos de Casos de Uso Não-Ajustados
Descrição Peso Fator
T1 – Sistemas Distribuídos 2 X1
T2 – Tempo de Resposta / Desempenho 1 X2
T3 – Eficiência Online 1 X3
T4 – Processamento Interno Complexo 1 X4
T5 – Código reutilizável 1 X5
T6 – Facilidade de Instalação 0,5 X6
T7 – Usabilidade 0,5 X7
T8 – Portabilidade 2 X8
T9 – Facilidade de Manutenção 1 X9
T10 – Acessos simultâneos 1 X10
T11 – Aspectos Especiais de Segurança 1 X11
T12 – Acesso Direto para Terceiros 1 X12
T13 – Facilidades Especiais de Treinamento 1 X13
Ponderação de Fatores Técnicos
TCF = 0,6 + (0,01 * ∑ Peso*Fator Ti)
TCF: Technical Complexity Factor
Peso: Ponderação de cada T no modelo de estimativas
Fator: Valor de 0 a 5 atribuído para cada T, onde: 0 – Não, 1 – Pouco, 2 – Razoável, 3 – Médio, 4 – Muito e 5 - Elevado
Ponderação de Fatores Técnicos
Descrição Peso Fator
E1 – Familiaridade com o Processo de Desenvolvimento 1,5 X1
E2 – Experiência na Aplicação 0,5 X2
E3 – Experiência em Orientação a Objetos 1 X3
E4 – Experiência do Líder do Projeto 0,5 X4
E5 – Motivação 1 X5
E6 – Estabilidade dos Requisitos 2 X6
E7 – Membros da Equipe com Dedicação Parcial -1 X7
E8 – Dificuldade da Linguagem de Programação -1 X8
Ponderação de Fatores Ambientais
EF = 1,4 + (-0,03 * ∑ Peso*Fator Ei)
EF: Enterprise Factor
Peso: Ponderação de cada E no modelo de estimativas
Fator: Valor de 0 a 5 atribuído para cada E, onde: 0 – Não, 1 – Pouco, 2 – Razoável, 3 – Médio, 4 – Muito e 5 - Elevado
Ponderação de Fatores Ambientais
UCP = UUCP*TCF*EF
UCP: Use Case Points
UUCP: Unadjusted Use Case Points
TCF: Technical Complexity Factor
EF: Enterprise Factor
Estimativa de Tamanho
Esforço = UCP*Produtividade*Gestão*Risco
UCP: Use Case Points
Produtividade: Horas necessárias para produzir 1 UCP
Gestão: Fator de gestão do processo de desenvolvimento
Risco: Fator de risco do projeto
Estimativa de Esforço
• Pontos de Casos de Uso Técnicos (TUCP): Uma Extensão da UCP – Tatiana Cavalcanti Monteiro;
• Estimating Object-Oriented Software Projects With Use Cases – Kirsten Ribu;
• Metrics for Objectory – Gustav Karner;
Referências