22
Estimativa de Esforço Walter de Abreu Cybis Outubro, 2003 Laboratório de Utilizabilidade da Informática Departamento de Informática e Estatística Universidade Federal de Santa Catarina

Estimativa de Esforço

Embed Size (px)

Citation preview

Page 1: Estimativa de Esforço

Estimativa de EsforçoEstimativa de Esforço

Walter de Abreu Cybis

Outubro, 2003

Laboratório de Utilizabilidade da InformáticaDepartamento de Informática e EstatísticaUniversidade Federal de Santa Catarina

Page 2: Estimativa de Esforço

Estimativa de EsforçoEstimativa de Esforço

Realizar estimativas sobre Hardware, Software, Pessoal e Tempo com base....

Visão do Software na consideração de Métricas e Medidas

Históricas

no emprego de Métodos e Modelos de Estimativas

Page 3: Estimativa de Esforço

Estimativa de EsforçoEstimativa de Esforço

Visão do Software Declaração de Objetivo e metas Modelo de Casos de uso/Cenários

principais Especificação Funcional : Principais

Funções Especificação Não Funcional: Desempenho

e qualidade Ambiente: condições e restrições

Page 4: Estimativa de Esforço

Estimativa de EsforçoEstimativa de Esforço

Informações e medidas Históricas Ajudam a reduzir o risco das

estimativas.

ATRIBUTOS DOS DADOS HISTÓRICOS devem ser razoavelmente precisos devem ser coletados para o maior

número de projetos possíveis as medidas devem ser interpretadas da

mesma maneira durante todo o projeto as aplicações devem ser similares a do

trabalho que se quer estudar

Page 5: Estimativa de Esforço

Tipos de Métricas/ÍndicesTipos de Métricas/Índices

Métricas de Produtividade do Processo Orientadas ao Tamanho do Software

LOC – Lines of code Orientadas às Funções/Características do Software

PF – Ponto por Função

Métricas de Qualidade do Produto Final Acerto, Integridade, Manutenibilidade,

Usabilidade, etc

Métricas Técnicas do Software Modularidade, Complexidade, etc...

Page 6: Estimativa de Esforço

Tipos de Métricas/ÍndicesTipos de Métricas/Índices

Alguns índices associados Esforço :

– KLOC/pessoa*mês– PF/pessoa*mês

Custo : – R$/KLOC ; – R$/PF

Acerto :– erros encontrados/KLOC

....

Page 7: Estimativa de Esforço

Métricas Orientadas ao Tamanho do SoftwareMétricas Orientadas ao Tamanho do Software

Linhas de Código (LOC)

Problemas: diferenças entre linguagens de

programação

Vantagens métrica objetiva fácil de medir

Page 8: Estimativa de Esforço

Métricas Orientadas a Funções/Características do SoftwareMétricas Orientadas a Funções/Características do Software

Pontos por Função

Vantagensindepende do ambiente de programação

ProblemasAbstrata e Subjetiva - difícil de ser

medida a posteriori

Page 9: Estimativa de Esforço

Estimativa de EsforçoEstimativa de Esforço

Métodos de Estimativa Contagem de Pontos por Função (Function Point)

5 Funções Principais– Entradas Externas– Saídas Externas – Consultas Externas– Arquivos Internos– Arquivos Externos

Que são pontuadas conforme – nível de complexidade – fatores de ponderação

Page 10: Estimativa de Esforço

Pontos por FunçãoPontos por Função Entradas Externas

(External Input – EI) Processo elementar no qual os dados atravessam os limites do sistema de fora para dentro. Estes dados podem vir de uma tela de entrada ou de uma outra aplicação para atualizar um ou mais arquivos internos. 

DET (Data Element Type) é um único e não repetido campo de dado, reconhecível pelo usuário.

FTR (Files Types Referenced) : arquivos atualizados ou referenciados

Nível de ComplexidadeNível de Complexidade

Page 11: Estimativa de Esforço

Pontos por FunçãoPontos por Função Saídas Externas

(External Output - EO) Processo elementar no qual dados derivados atravessam os limites do sistema de dentro para fora Os dados criam relatórios ou arquivos de saída que são enviados para outras aplicações.

DET : Se um mesmo DET é usado tanto na saída como na entrad, ele é contado apenas uma vêz.

FTR: Se um mesmo FTR é usado tanto na saída como na entrada, ele é contado apenas uma vêz.

Nível de ComplexidadeNível de Complexidade

Page 12: Estimativa de Esforço

Pontos por FunçãoPontos por Função

Consulta Externa (External Inquiry -EQ)

Processo elementar no qual componentes tanto de entrada como de saída resultam na recuperação de dados de um ou mais arquivo interno. A entrada não atualiza qualquer arquivo interno e a saída não contém dado derivado.

Nível de ComplexidadeNível de Complexidade

Page 13: Estimativa de Esforço

Pontos por FunçãoPontos por Função Arquivos Internos

(Internal Logical Files -ILF) Grupo de dados lógicamente relacionados que reside internamente aos limites do sistema e que é mantido por entradas externas. Um ILF é comuments referenciado como FTR.

RET (Record Element Type ) é um sub grupo de elementos de dados dentro de um arquivo interno ou externo

DET (Data Element Type) é um único e não repetido campo de dado, reconhecível pelo usuário.

Nível de ComplexidadeNível de Complexidade

Page 14: Estimativa de Esforço

Pontos por FunçãoPontos por Função

Arquivos Externos (External Logical Files -ELF)

Grupo de dados lógicamente relacionados que reside externamente aos limites do sistema e que é mantido por outras aplicações. Um ELF é comuments referenciado como FTR.

Nível de ComplexidadeNível de Complexidade

Page 15: Estimativa de Esforço

Pontos por FunçãoPontos por Função

Valores para PonderaçãoTransações

Arquivos

Page 16: Estimativa de Esforço

Pontos por FunçãoPontos por Função

Tabela para contabilização de pontos

Page 17: Estimativa de Esforço

Pontos por FunçãoPontos por Função

Fator de Ajuste de Complexidade (Fai) definido a partir de 14 questões sobre

desempenho, processamento distribuído, interatividade, manutenibilidade, ...

Cálculo de Pontos por Função FP = contagem total * (0,65+0,01 Fai)

Page 18: Estimativa de Esforço

Métodos de estimativa baseados em linhas de códigoMétodos de estimativa baseados em linhas de código

Modelo COCOMO (COnstrutive COst MOdel) Esforço (pessoa*mês)

– E = a*(KLOC)*exp(b) Tempo de Desenvolvimento (meses)

– T = c*E*exp(d) Tabela de Coeficientes (função de tipo de

projeto)

Projeto a b c d Simples 2,4 1,05 2,5 0,38 Intermediário 3,0 1,12 2,5 0,35 Complexo 3,6 1,20 2,5 0,32

Page 19: Estimativa de Esforço

Métodos de estimativa baseados em linhas de códigoMétodos de estimativa baseados em linhas de código Modelo PUTNAM (Modelo de estimativa baseada

em múltiplas variáveis) K = L3/ Ck3T4

K: esforço de desenvolvimento (pessoas*ano) L: linhas de código Ck : constante do estado da tecnologia

– 2000 para um ambiente pobre (sem métodos ou documentação)

– 8000 para um ambiente bom– 11000 para um ambiente excelente (ferramentas

case) T: tempo de desenvolvimento em anos

Page 20: Estimativa de Esforço

Encontro entre Métricas Orientadas ao Tamanho e a FunçõesEncontro entre Métricas Orientadas ao Tamanho e a Funções

Linguagem de Programação LOC/PFAssembly 300COBOL 100FORTRAN 100PASCAL 90ADA 70L.O.O. 30

Page 21: Estimativa de Esforço

Resumo sobre Estimativas de EsforçoResumo sobre Estimativas de Esforço Estimativas EXIGEM

Experiência Acesso à boas informações históricas Coragem

RISCO INERENTE medido pelo grau de incerteza nas estimativas

quantitativas fatores que aumentam o risco: complexidade,

tamanho do projeto e grau de estruturação pode ser reduzido

medidas do software de projetos passadosinformações históricas

Page 22: Estimativa de Esforço

Resumo sobre Estimativas de EsforçoResumo sobre Estimativas de Esforço

Nunca serão exatas. São afetadas por variáveis humanas, técnicas, ambientais e políticas

Para se ter estimativas com graus aceitáveis de risco, existem um conjunto de opções:

retardar as estimativas do projeto usar técnicas de decomposição (dividir o problema

complexo em pequenos problemas) desenvolver modelos empíricos adquirir ferramentas de estimativa