Administrao de Projetos Estimativas Engenharia de Software Ins

  • Slides: 45
Download presentation
Administração de Projetos: Estimativas Engenharia de Software Inês G. Boaventura 1 o Semestre/2001 1

Administração de Projetos: Estimativas Engenharia de Software Inês G. Boaventura 1 o Semestre/2001 1

Planejamento - Objetivos É um conjunto de atividades associadas ao processo de administração de

Planejamento - Objetivos É um conjunto de atividades associadas ao processo de administração de projetos Ü Permitir um entendimento do trabalho a ser feito Ü Estimar os recursos necessários Ü Estimar a duração cronológica do projeto Ü Estimar esforço e custo a ser despendido 2

Planejamento - Tarefas Envolve a realização de: Ü medidas Ü pesquisa Ü estimativa Ü

Planejamento - Tarefas Envolve a realização de: Ü medidas Ü pesquisa Ü estimativa Ü análise dos riscos Ü determinação de prazos 3

Planejamento - atividades associadas 1. Determinação do Escopo do Software ² Objetivos do Projeto

Planejamento - atividades associadas 1. Determinação do Escopo do Software ² Objetivos do Projeto ² Funções principais ² Características de desempenho, confiabilidade ² Cenário de Desenvolvimento 4

Planejamento - Atividades Associadas 2. Estimativa de recursos ² Recursos humanos t. Projeto pequeno:

Planejamento - Atividades Associadas 2. Estimativa de recursos ² Recursos humanos t. Projeto pequeno: uma única pessoa t Projetos grandes: participação varia através do cilco de vida. ² Recursos de hardware t Sistemas para o desenvolvimento t Máquina alvo t Elementos de hardware do novo sistema 5

Planejamento - Atividades Associadas 2. Estimativa de recursos ² Recursos de Software t Ferramentas

Planejamento - Atividades Associadas 2. Estimativa de recursos ² Recursos de Software t Ferramentas de software: 6

Planejamento - Atividades Associadas Pessoas Ferramentas de Hardware e Software Especificar: . Habilidades exigidas.

Planejamento - Atividades Associadas Pessoas Ferramentas de Hardware e Software Especificar: . Habilidades exigidas. Diponibilidade. Duração das tarefas. Datas de início Espefificar: . Descrição. Disponibilidade. Duração do uso. Data de entrega 7

Planejamento - Atividades Associadas 3. Estimativa de custos 4. Cronogramas 8

Planejamento - Atividades Associadas 3. Estimativa de custos 4. Cronogramas 8

Planejamento O que ? Quanto tempo? 9

Planejamento O que ? Quanto tempo? 9

Estimativas de Projetos de Software - observações Estimativas de recursos, custos e programação de

Estimativas de Projetos de Software - observações Estimativas de recursos, custos e programação de atividades exigem: n n n Experiência. Acesso a boas informações históricas. Coragem para se comprometer com as medidas quantitativas. 10

Estimativas de Projetos de Software - observações Estimativas => carregam riscos inerentes Fatores que

Estimativas de Projetos de Software - observações Estimativas => carregam riscos inerentes Fatores que aumentam os riscos: Desestruturação do projeto Domínio de baixo risco Complexidade baseada nos esforços passados Tamanho do projeto 11

Estimativas de Projetos de Software 1. Técnicas de Decomposição: n n n Assumem a

Estimativas de Projetos de Software 1. Técnicas de Decomposição: n n n Assumem a abordagem de “Divisao e Conquista O problema de estimar o custo e esforço necessário para um projeto é dividido em problemas menores e mais administráveis. Baseiam-se em um delineamento das principais funções do software 12

Estimativas (cont. ) (a) Estimativas de Linhas de Código (LOC) e Pontos por Função

Estimativas (cont. ) (a) Estimativas de Linhas de Código (LOC) e Pontos por Função (PF) n n LOC e PF são usadas de duas maneiras durante a estimativa de projetos de software: Como variáveis de estimativa - usadas para “classificar por tamanho” cada elemento do software. Como métricas de linha básica - coletadas a partir de dados históricos e usadas em conjunto com variáveis de estimativa para que se desenvolva projeções de custo e de esforço 13

Estimativas Aplicação de técnicas LOC e PF a um pacote CAD Declaração do Escopo

Estimativas Aplicação de técnicas LOC e PF a um pacote CAD Declaração do Escopo do Software: 14

Estimativas Aplicação de técnicas LOC e PF a um pacote CAD (cont. ) Principais

Estimativas Aplicação de técnicas LOC e PF a um pacote CAD (cont. ) Principais funções identificadas: n Facilidade de controle de interfaces com o usuário (IHM) n Análise geométrica bidimencional (AGB) n Análise geométrica tridimencional (AGT) n Gerenciamento de banco de dados (GBD) n Facilidades de display gráfico (FDG) n Controle de periféricos (CP) n Análise de projetos (AP) 15

Tabela de Estimativas E = (O + 4 M + P)/6 16

Tabela de Estimativas E = (O + 4 M + P)/6 16

Estimativas Depois de LOC (ou FP) estimado: n Aplica-se as métricas de produtividade (dados

Estimativas Depois de LOC (ou FP) estimado: n Aplica-se as métricas de produtividade (dados históricos) para cada função. n Estima-se o custo Custo = LOC-Esperado * $/LOC n Estima-se o esforço (pessoa-mês) Esforço = LOC-Esperado/(LOC/pessoa-mês) 17

Tabela de estimativas concluída 18

Tabela de estimativas concluída 18

Estimativas (b) Estimativa do Esforço Passos: n Delineamento das funções do software n Listagem

Estimativas (b) Estimativa do Esforço Passos: n Delineamento das funções do software n Listagem das tarefas a serem executadas para cada função (análise, projeto, codificação e testes) n Esforço estimado para cada tarefa em cada função (pessoa-mês) n Taxas de mão de obra aplicadas em cada uma das tarefas n Cálculo de custo e o esforço de cada função e tarefa 19 de engenharia de software

Estimativas Tabela de estimativa do esforço 20

Estimativas Tabela de estimativa do esforço 20

Estimativas de Projeto de Software 2. Modelos Empíricos de Estimativa São fórmulas derivadas empiricamente

Estimativas de Projeto de Software 2. Modelos Empíricos de Estimativa São fórmulas derivadas empiricamente para fornecer informações de planejamento de projeto. n n n Dados Empíricos - resultam de uma amostra limitada de projetos. Modelos de estimativas de software - não são apropriados para todas as classes de software Devem ser usados criteriosamente 21

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos são formados por uma

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos são formados por uma ou mais equações empíricas que fornecem informações sobre: n Esforço (pessoa-mês) n Duração do projeto (meses cronológicos), etc 22

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Existem quatro classes de

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Existem quatro classes de modelos de recursos (Basili) n Modelos estáticos de variáveis simples. n Modelos estáticos de múltiplas variáveis n Modelos dinâmicos de múltiplas variáveis n Modelos teóricos 23

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Modelos Estáticos de Variáveis

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Modelos Estáticos de Variáveis simples C 2 Recurso = C 1 X (características Estimadas) Recurso: – – esforço duração do projeto tamanho da equipe páginas (linhas) de documentação 24

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Modelos Estáticos de Variáveis

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Modelos Estáticos de Variáveis simples C 2 Recurso = C 1 X (características Estimadas) Características Estimadas – linhas de código fonte (LOC) – esforço (se estimado) C 1 e C 2 - constantes derivadas de dados compilados de projetos passados. Exemplo: COCOMO (Constructive Cost Model) 25

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Modelos Estáticos de Múltiplas

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Modelos Estáticos de Múltiplas Variáveis Recurso = C 11 e 1 + C 21 e 2 +. . . Onde e 1, e 2, e 3. . . São características do software 26

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Modelos Dinâmicos de Múltiplas

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Modelos Dinâmicos de Múltiplas Variáveis n projetam os requisitos de recursos como uma função do tempo n recursos são definidos atribuindo-se uma porcentagem de esforço a cada passo de engenharia de software 27

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Modelos Teóricos n abordam

Estimativas de Projeto de Software: Modelos Empíricos Modelos de Recursos Modelos Teóricos n abordam teoricamente modelos dinâmicos de múltiplas variáveis n Examina o software de forma minuciosa (ex. Números de operandos e operadores modelo de estimativa de Putnam) 28

Estimativas de Projeto de Software: Modelos Empíricos (a) Cocomo (Engenharia Econômica de Software -

Estimativas de Projeto de Software: Modelos Empíricos (a) Cocomo (Engenharia Econômica de Software - Barry Boehm) n Cocomo Básico n Cocomo Intermediário n Cocomo Avançado 29

Estimativas de Projeto de Software: Modelos Empíricos (a) Cocomo (Engenharia Econômica de Software -

Estimativas de Projeto de Software: Modelos Empíricos (a) Cocomo (Engenharia Econômica de Software - Barry Boehm) n Cocomo Básico Computa: esforço e custo em função do tamanho de programas expresso em linhas de código estimadas. 30

Estimativas de Projeto de Software: Modelos Empíricos (a) Cocomo (Engenharia Econômica de Software -

Estimativas de Projeto de Software: Modelos Empíricos (a) Cocomo (Engenharia Econômica de Software - Barry Boehm) n Cocomo Intermediário Computa: esforço como função do tamanho do programa e de um conjunto de “direcionadores de custo” que incluem avaliações subjetivas do produto, do hardware, do pessoal e dos atributos do projeto. 31

Estimativas de Projeto de Software: Modelos Empíricos (a) Cocomo (Engenharia Econômica de Software -

Estimativas de Projeto de Software: Modelos Empíricos (a) Cocomo (Engenharia Econômica de Software - Barry Boehm) n Cocomo Avançado Computa: esforço como função do tamanho do programa e de um conjunto de “direcionadores de custo” que incluem avaliações subjetivas do produto, do hardware, do pessoal e dos atributos do projeto. Incorpora: Avaliação do impacto dos direcionadores de custo sobre cada passo de 32 E. S. (análise, projeto, etc)

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Aplicação n n n Projetos Orgânicos

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Aplicação n n n Projetos Orgânicos (projetos simples) Semidestacado (projetos intermediários tamanho e complexidade Embutido (projetos desenvolvidos dentro de um conjunto rígido de restrições operacionais, hardware e software) 33

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Básico Equações COCOMO Básicas E =

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Básico Equações COCOMO Básicas E = Ab(KLOC)exp(Bb) - esforço aplicado pessoamês D = Cb(E. exp(Db)) - tempo de desenvolvimento (meses cronológicos) 34

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Básico Constantes Cocomo básico 35

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Básico Constantes Cocomo básico 35

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Intermediário Modelo básico é ampliado para

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Intermediário Modelo básico é ampliado para levar em consideração os atributos direcionadores de custo: – Atributos do produto {confiabilidade, tamanho BD, complexidade} – Atributos do hardware {restrições de desempenho, memória, etc} – Atributos de pessoal {experiência} – Atributos de projeto {uso de Case, metodologias, cronograma de atividades, etc} Total = 15 atributos (pontua-se em uma escala de 6 pontos onde 0 - muito baixo e 6 - extrem. Elev) n 36

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Intermediário Baseado na classificação: n Determina-se

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Intermediário Baseado na classificação: n Determina-se um multiplicador de esforços (a partir de tabelas publicadas por Boehm) n Calcula-se o fator de ajuste de esforço (FAE) (produto de todos os multiplicadores de esforços) - valores variam de 0. 9 a 1. 4 37

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Intermediário Equação cocomo intermediário: E =

Estimativas de Projeto de Software: Modelos Empíricos Cocomo Intermediário Equação cocomo intermediário: E = Ai(LOC). Exp(bi) X FAE (pessoa-mês) 38

Estimativas de Projeto de Software: Modelos Empíricos Aplicação cocomo básico Ex: Software CAD Usando-se

Estimativas de Projeto de Software: Modelos Empíricos Aplicação cocomo básico Ex: Software CAD Usando-se o modelo semidestacado 39

Estimativas de Projeto de Software: Modelos Empíricos (2) Modelo de Estimativa de Putnam n

Estimativas de Projeto de Software: Modelos Empíricos (2) Modelo de Estimativa de Putnam n n n Modelo dinâmico de múltiplas variáveis Pressupõe uma distribuição de esforço específica ao longo do projeto Modelo construído à partir de distribuição de mão de obra em grandes projetos 40

Estimativas de Projeto de Software: Modelos Empíricos Modelo de Putnam Equação de Software 41

Estimativas de Projeto de Software: Modelos Empíricos Modelo de Putnam Equação de Software 41

Conclusões n O planejador deve estimar três coisas antes do início do projeto: –

Conclusões n O planejador deve estimar três coisas antes do início do projeto: – Quanto tempo durará – Quanto esforço será exigido – Quantas pessoas estarão envolvidas n E também: – Recursos de hardware e recursos de software necessários 42

Conclusões n Técnicas para desenvolver estimativas envolvem: – decomposição – modelagem empírica – ferramentas

Conclusões n Técnicas para desenvolver estimativas envolvem: – decomposição – modelagem empírica – ferramentas automatizadas 43

Conclusões n n n Técnicas empíricas usam expressões derivadas de dados históricos, para o

Conclusões n n n Técnicas empíricas usam expressões derivadas de dados históricos, para o esforço e o tempo, com o objetivo de prognosticar essas quantidades para o projeto. Ferramentas automatizadas implementam um modelo empírico específico. Estimativas de projeto precisas geralmente fazem uso de pelo menos duas técnicas diferentes de estimativas vistas. 44

45

45