26
Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

Embed Size (px)

Citation preview

Page 1: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

Plano de Projeto de Software

Competência: Analisar e Desenvolver o Plano de Projeto

(Estimativas)

Page 2: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

Agenda

• Introdução.

• Técnicas de Decomposição.

• Estimativas de Linhas de Código (LOC).

• Estimativas por Pontos-por-Função (FP).

• Estimativa do Esforço.

• Modelos Empíricos.

Page 3: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

Plano de Projeto - Revisão

I. Introdução;II. Estimativas de Projeto;III. Riscos do Projeto;IV. Cronograma;V. Recursos do Projeto;VI. Organização do Pessoal;VII. Mecanismos de Tracking

(rastreamento) e controle.

Page 4: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. EstimativaPrimórdios

Page 5: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. EstimativaAtualmente

Page 6: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

• As estimativas de custo e de esforço de software jamais serão uma ciência exata !!!

Page 7: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

Opções para conseguirmos estimativas de custo e de esforço:

1. Atraso das estimativas até um ponto tardio do desenvolvimento.

2. Técnicas de Decomposição.3. Modelos Empíricos.4. Aquisição de ferramentas de estimativa

automatizadas.

Page 8: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

1. Atraso das estimativas até um ponto tardio do desenvolvimento.

Ainda que atraente, não é prático !!Estimativas devem ser oferecidas no

início do projeto !!!

Page 9: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

2. Técnicas de Decomposição

Abordagem: “Dividir para Conquistar”.

Ao decompor um projeto em funções importantes e em tarefas de engenharia de software, as estimativas de custo e esforço podem ser realizadas em etapas.

Page 10: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

2. Técnicas de Decomposição

2.1 Estimativas de Linhas de Código (LOC).2.2 Estimativas por Pontos-por-Função.2.3 Estimativa do Esforço.

Page 11: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

2.1 Estimativas de Linhas de Código (LOC).

Estima-se a quantidade de código que serão produzidas:

Funcionalidades KLOC R$ Pessoas

Func. a 12.1 168 3

Func. b 27.2 440 5

Total 39.3

KLOC = mil linhas.

Page 12: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

Para computar os LOCs:

Produtividade = KLOC/pessoa mêsQualidade = defeitos/KLOC

Custo = $/KLOCDocumentação = páginas de documentação/KLOC

KLOC = mil linhas.

Page 13: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

2.1 Estimativas de Linhas de Código (LOC).

Problemas:• Depende da linguagem utilizada;• Requer um nível de detalhes que pode

ser difícil de mensurar, principalmente porque devem ser produzidas muito antes que a análise do projeto tenham sido concluídos.

Page 14: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

2.2 Estimativas por Pontos-por-Função (FP).

Concentra-se na funcionalidade ou utilidade do programa, características:

• Número de Entradas: cada entrada do usuário que proporcione dados distintos.

• Número de Saídas: cada saída do usuário que proporcione informações orientadas à aplicação. (Relatórios, telas, mensagens de erro, etc).

Page 15: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa• Número de Consultas: uma consulta é

definida como uma entrada on-line que resulte na geração de alguma resposta.

• Número de arquivos: cada arquivo-mestre lógico, isto é, um agrupamento lógico de dados, que pode ser uma parte de um grande banco de dados ou um arquivo convencional, é contado.

• Número de interfaces externas: todas as interfaces legíveis por máquina (arquivos de dados) que sejam usadas para transmitir informações a outro sistema são contadas.

Page 16: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

2.2 Estimativas por Pontos-por-Função (FP).

  Fator de Ponderação

 Parâmetro de Medida Contagem Simple

s MédioComplex

o

Número de Entradas   x 3 4 6 =  

Número de Saídas   x 4 5 7 =  

Número de Consultas   x 3 4 6 =  

Número de Arquivos   x 7 10 15 =  Número de Interfaces Externas   x 5 7 10 =  

Contagem Total    

Pontos por Função (Contagem Total):

Page 17: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

  1) O sistema requer backup e recuperação confiáveis?  2) São exigidas comunicações de dados?  3) Há funções de processamento distribuídas?  4) O desempenho é crítico?

  5) O sistema funcionará num ambiente operacional existente, intensiamento utilizado?  6) O sistema requer entrada de dados on-line?

 7) A entrada de dados on-line exige que a transação de entrada seja elaborada em múltiplas telas ou operações?

  8) Os arquivos-mestres são atualizados on-line?  9) A entrada, saída, arquivos ou consultas são complexos?  10) O processo interno é complexo?  11) O código foi projetado de forma a ser reusável?  12) A conversão e a instalação estão incluídos no projeto?

  13) O sistema é projetado para múltiplas instalações em diferentes organizações?

  14) A aplicação é projetada de forma a facilitar mudanças e o uso pelo usuário?  <-- Total

0 - Sem influência1 - Incidental2 - Moderado3 - Médio

4 – Significativo5 - EssencialValores de Ajustes (Soma (Fi)):

Page 18: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

Para computar os pontos-por-função:

FP = Contagem Total x (0,65 + 0,01 x Soma (Fi))

Produtividade = FP/pessoa mêsQualidade = defeitos/FP

Custo = $/FPDocumentação = páginas de documentação/FP

Page 19: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

Estimativas de LOC e FP:

• O valor esperado para LOC ou FP deve ser calculado.

• O valor esperado para a variável de Estimativa (E) pode ser computado como uma média ponderada das estimativas:(a) otimistas,(m) mais provável e,(p) pessimista.

Page 20: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

Estimativas de LOC e FP:

• E = a + 4m + b --------------

6

Page 21: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

2.3 Estimativas do Esforço.

Técnica mais comum. • Um número de pessoas-dia, mês ou ano é

aplicado à solução de cada tarefa do projeto.

• Inicia-se com um delineamento das funções de software obtida a partir do escopo do projeto.

Page 22: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

2.3 Estimativas do Esforço.

  Tarefas Análise dos Requisitos Projeto Código Teste TotalFunções            f 1 1 3 0,5 9 1 14,5f 2 2 2 3 10 1 18f 3 2,5 1 1 2 1 7,5f 4 2 2 3 5 1 13f 5 1 4 2 6 1 14f 6 3 5 2 7 1 18f 7 2 2 2 2 1 9f 8 5 1 2 1 1 10Total * 18,5 20 15,5 42 8 104Taxa (R$) valor/dia 559 1020 300 490 600 Custo (R$) 10341,5 20400 4650 20580 4800 60771,5

Page 23: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

3. Modelo Empírico

Pode ser usado para complementar as técnicas de decomposição e para oferecer uma abordagem de estimativas potencialmente valiosa.

Page 24: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

3. Modelo Empírico

Um modelo baseia-se na experiência (dados históricos) e assume a forma:

d = f(vi)

d – série de valores estimados (custo, esforço, etc).

Vi – parâmetros independentes selecionados (LOC, FP, etc).

Page 25: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

3. Modelos Empíricos:

3.1 COCOMO (material anexo),3.2 PUTNAM (material anexo).

• Ambos se baseiam em estimativas do número de linhas de código (LOC).

Page 26: Plano de Projeto de Software Competência: Analisar e Desenvolver o Plano de Projeto (Estimativas)

II. Estimativa

4. Ferramentas de Estimativa

Implementam uma ou mais técnicas de decomposição ou modelos empíricos.

Exemplo: ABYL, SLIM, ESTIMACS, SPQR, entre outros.