Engenheiro de Software
Estimativa de Esforço
Estimativas de Software
Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Subjetividade da Estimativa
É difícil fazer uma estimativa precisa de esforço de desenvolvimento
Os requisitos podem ser de alto nível, incompletos ou imprecisos
Não se conhece bem o ambiente no qual o software irá operar (hardware, usuários, etc.)
Apesar das dificuldades, as empresas precisam estimar esforço e custos
Incerteza de Estimativa
Por usar dados subjetivos, a estimativa pode variar bastante
Tipicamente, se a estimativa inicial é
X, ela pode variar de 0,25 X à 4 X
A medida que o projeto avança, os valores estimados se tornam mais precisos Técnicas de Estimativas
Técnicas baseadas em experiências
Usam conhecimento adquirido em projetos anteriores de um mesmo domínio
Modelagem algorítmica de custos
É feito um modelo matemático
O esforço é calculado com base em estimativas de atributos do software, tamanho, processo, etc.
Técnicas baseadas em Experiência
Estas técnicas incluem o julgamento de especialistas e estimativas por analogia
Especialistas (normalmente vários)
Documentam os itens que precisam ser entregues Estimam cada item baseado por comparação com outros projetos
Uma dificuldade é quando não existirem projetos anteriores semelhantes
Modelagem Algorítmica de Custos
Define uma fórmula matemática para prever os custos do projeto
É baseada em estimativas históricas
Considera diversos fatores
Tamanho e tipo do projeto
Tamanho da equipe do projeto
Características do processo e produto
Dificuldades com a Fórmula
É difícil estimar o tamanho
Estimar pontos de função é mais fácil que estimar LOC, mas ambas são imprecisas
Os fatores B e M são subjetivos
Estes fatores variam de acordo com a formação e experiência da pessoa
Fórmula Geral
Esforço = A * TamanhoB * M
Dado que
A é uma constante que depende de práticas organizacionais Tamanho pode ser uma