1 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Engenharia de Software
Gerência de Projetos de Software
Conceitos Básicos
-2 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Tópicos
• Projeto e Gerência de Projetos
• Planejamento de Projeto • Atividades do Planejamento • Escopo e Viabilidade • Medidas e Métricas • Estimativas • Exercício • Leitura Recomendada 3 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Projeto e Gerência de Projetos
• Projeto: é um empreendimento temporário com o objetivo de criar um produto ou serviço único (PMBOK
GUIDE)
• Gerência de Projetos de Software: trata das atividades voltadas para assegurar que o software seja entregue no prazo previsto, com custo dentro do que foi estimado e de acordo com os requisitos do cliente
4 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Exemplos de Projetos
• Desenvolvimento de um novo produto/serviço
• Desenvolvimento de um novo modelo de veículo
• Construção de um prédio
• Uma campanha para um cargo político
• Desenvolvimento ou aquisição de um sistema
• Uma edição de um jornal ou revista
5 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Pessoal? Estimativa de custos?
Cronograma do projeto?
Monitoração do projeto? Outros recursos?
Comunicação com o cliente? Avaliação de riscos?
Qualidade do produto?
Medidas?
Conceitos da Gerência de Projetos
6 2010 Prof. Marco Fagundes - fagundes@cesupa.br
• Prazo de entrega fora da realidade • Mudanças nos requisitos do cliente • Estimativa de esforço equivocada • Riscos previstos e/ou não previstos • Dificuldades técnicas
• Comunicação equivocada entre o pessoal do projeto • Falhas na gerência do projeto
7 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Sucesso de um projeto
• Projeto foi realizado contemplando:
–O tempo estimado
–O custo previsto
–Um bom nível de aceitação do cliente
–O projeto e cliente pode ser utilizado como referência
–Atendimento de forma controladas às mudanças de escopo
–As regras, políticas, procedimentos da organização, sem causar distúrbios
–Aspectos culturais
8 2010 Prof. Marco Fagundes - fagundes@cesupa.br
• A gerência de projetos começa com um conjunto de atividades chamadas de Planjamento do Projeto
• O objetivo é fornecer uma estrutura que permita ao gerente fazer estimativas razoáveis de recursos, custos e cronogramas
Planejamento do Projeto
9 2010 Prof. Marco Fagundes - fagundes@cesupa.br
1. Estabelecer o escopo do projeto 2. Determinar a viabilidade 3. Analisar riscos
4. Definir recursos necesssários 5. Estimar custo e esforço
6. Desenvolver um cronograma de projeto
Atividade do Planejamento do
Projeto
10 2010 Prof. Marco Fagundes - fagundes@cesupa.br
• O escopo do software as funções e características a serem entregues aos usuários finais.
• O escopo é definido de duas formas:
–Descrição narrativa
–Um conjunto de casos de uso desenvolvido pelos usuários finais
• Viabilidade
–Pode-se construir o software para satisfazer o escopo?
–O projeto é possível? (do ponto de vista técnico, financeiro, de prazo, de tempo e de recursos)
Escopo e Viabilidade do Software
11 2010 Prof. Marco Fagundes - fagundes@cesupa.br
• O software a ser desenvolvido deve atender aos requisitos de uma administradora de cartões de crédito. O software deve permitir que os clientes consultem suas faturas (B2C), via web, e se for o caso proceder com o pagamento, o qual somente deve ser efetuado se o cliente tiver conta em um banco credenciado. Todo esse processo de pagamento deve ocorrer on-line (B2B) e os aspectos de segurança devem ser enfatizados, haja vista o ataque constante de hackersem sistemas web. O software deve permitir que gerentes de banco de dados controlem a
integridade dos dados através de backups personalizados e replicação de base de dados.
Exemplo de Escopo
12 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Engenharia de Software
-13 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Por que medir o software?
• Para indicar a qualidade do produto
• Para avaliar a produtividade
• Para avaliar os benefícios derivados de novos métodos e ferramentas de software
• Para formar uma linha base para estimativas
• Para justificar as solicitações de novas ferramentas ou treinamentos
Se não medirmos, não saberemos se estamos melhorando ou não
14 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Normalização orientada ao tamanho — abordagem de linha de código
Normalização para Métricas do
Produto
• Dados normalizados são usados para avaliar o processo e o produto (mas nunca pessoas)
Normalização orientada à função — abordagem pontos por função
15 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Métricas Orientadas ao Tamanho
• Medidas diretas do software• Usa a abordagem linha de código(LOC)
• Medidas LOC são dependentes da LP
• Penalizam programas bem projetados, porém mais curtos
• LOC(Line of Code) por pessoas-mês (LOC/PM)
• $ / LOC
• $ / páginas de documentação
• Esforço: Quantidade de recursos humanos por unidade de tempo, é dado em PM (pessoas-mês)
16 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Métricas Orientadas à Função
• Medidas indiretas do software
• Concentra-se na “funcionalidade” ou “utilidade” do software
• Independe da linguagem de programação
• Não “penaliza” implementações com menos LOC
17 2010 Prof. Marco Fagundes - fagundes@cesupa.br
1. Analise o domínio da aplicação e faça uma contagem 2. Pese os valores da contagem atribuindo um nível complexidade 3. Avalie a influencia de fatores que afetam a aplicação
4. Calculando os pontos do função (FP)
Estabeleça uma contagem para entradas do domínio e interfaces do sistema
Atribua um nível de complexidade ou peso para cada valor da contagem
Grade de importância de fatores externos F, tal como reuso, concorrência...
Grau de Influência: GI = F i
Multiplicador de Complexidade: MC = (0.65 + 0.01 * GI) Pontos por Função = CT * MC
onde:
Computando Pontos por Funções
Contagem Total: CT = (contagem * peso)
18 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Nº de entradas do usuário Nº de saídas do usuário Nº de consultas do usuário Nº de arquivos Nº de interface externas Parâmetro de medida 3 4 3 7 5 Contagem
Fator de Ponderação (Peso) Simples Médio Complexo
4 5 4 10 7 6 7 6 15 10 ? ? ? ? ? = = = = = Contagem total (CT) ? * CT * MC Fi (i = 1 a 14) Computando FPs [Passos de 2 a 4] Grau de Influência(GI) ? ? Pontos por Função(FPs)
(contagem * peso) * * * *
Multiplicador de Complexidade(MC) (0,65 + 0,01 * GI) ? 4. Calculando FPs 4. Calculando FPs 2. Pesando a Contagem 3. Calculando GI 1. Contagem
19 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Computando FPs [Analisando o Domínio]
•Número de Entradas: Contagem de cada entrada do usuário que proporciona diferentes dados orientados à aplicação
•Número de Saídas: Contagem de cada saída que fornece informações ao usuário, tais como, relatórios, telas, mensagem de erro
•Número de Consultas: Uma consulta é uma entrada interativa que produz alguma resposta imediata do software
20 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Computando FPs [Analisando o Domínio]
•Número de Arquivos: Contagem de cada arquivo lógico, isto é, um grupo lógico de dados que pode ser parte de uma grande banco de dados ou um arquivo
independente
•Número de Interfaces Externas: Contagem de todas as interfaces que são utilizadas para transmitir informações a outros sistemas
21 2010 Prof. Marco Fagundes - fagundes@cesupa.br
• Os fatores abaixo são colocados em uma escala com valores:
1. Backup e restauração 2. Comunicação de dados 3. Processamento distribuído 4. Desempenho crítico 5. Uso intensivo 6. Entrada de dados on-line 7. Múltiplas telas 1. Backup e restauração 2. Comunicação de dados 3. Processamento distribuído 4. Desempenho crítico 5. Uso intensivo 6. Entrada de dados on-line 7. Múltiplas telas 8. Atualização on-line 9. Complexidade de I/O 10. Processamento complexo 11. Reusabilidade de código 12. Conversão e instalação 13. Portabilidade entre instalações 14. Manutenibilidade e Usabilidade 8. Atualização on-line 9. Complexidade de I/O 10. Processamento complexo 11. Reusabilidade de código 12. Conversão e instalação 13. Portabilidade entre instalações 14. Manutenibilidade e Usabilidade
Computando FPs [Grau de Influência]
•0(sem importância) •1(Incidental) •2(Moderado) •3(Médio) •4(Significativo) •5(Essencial) 22 2010 Prof. Marco Fagundes - fagundes@cesupa.br
1. Backup e restauração = 4 2. Comunicação de dados = 2 3. Processamento distribuído = 0 4. Desempenho crítico = 4 5. Uso intensivo = 3 6. Entrada de dados on-line = 4 7. Múltiplas telas = 5 1. Backup e restauração = 4 2. Comunicação de dados = 2 3. Processamento distribuído = 0 4. Desempenho crítico = 4 5. Uso intensivo = 3
6. Entrada de dados on-line = 4
7. Múltiplas telas = 5
8. Atualização on- line = 3 9. Complexidade de I/O = 5 10. Processamento complexo = 5 11. Reusabilidade de código = 4 12. Conversão e instalação = 3 13. Portabilidade entre instalações = 5 14. Manutenibilidade e Usabilidade = 5 8. Atualização on- line = 3
9. Complexidade de I/O = 5
10. Processamento complexo = 5
11. Reusabilidade de código = 4
12. Conversão e instalação = 3
13. Portabilidade entre instalações = 5
14. Manutenibilidade e Usabilidade = 5 Exemplo - Computando FPs Nº de entradas do usuário Nº de saídas do usuário Nº de consultas do usuário Nº de arquivos Parâmetro de medida 20 3 4 3 7 12 16 4 Contagem Fator de Ponderação Simples Médio Complexo
4 5 4 10 6 7 6 15 = = = = * * * * Nº de interface externas 2 * 5 7 10 = 23 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Nº de entradas do usuário Nº de saídas do usuário Nº de consultas do usuário Nº de arquivos Nº de interface externas Parâmetro de medida 20 3 4 3 7 5 12 16 4 2 Contagem Fator de Ponderação Simples Médio Complexo
4 5 4 10 7 6 7 6 15 10 60 48 48 28 10 = = = = = Contagem total (CT) 194
Exemplo - Computando FPs [Calculando FPs] * * * * * (contagem * peso) Fi (i = 1 a 14) Grau de Influência(GI) 52 CT * MC 227 Pontos por Função(FPs)
Multiplicador de Complexidade(MC) (0,65 + 0,01 * GI) 1,17
24 2010 Prof. Marco Fagundes - fagundes@cesupa.br
• Para cada FP tem-se:
–Linguagem C ++ -> 66 LoC
–Linguagem Java -> 63 LoC
–Linguagem Pascal -> 90 LoC
–Linguagem Visual Basic -> 32 LoC
Conversão entre Métricas LOC e FP
Por exemplo: Um projeto com 220 FP -> 13860 LoC (considerando a linguagem Java)
25 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Engenharia de Software
Estimativas
-26 2010 Prof. Marco Fagundes - fagundes@cesupa.br
• COCOMO I (Constructive Cost Model)
–Modelo 1 – COCOMO Básico
–Modelo 2 – COCOMO Intermediário
–Modelo 3 – COCOMO Avançado
Modelo de Estimativa
• Classes de Projeto no Modelo
–Modo Orgânico
–Modo Semidestacado
–Modo Embutido
27 2010 Prof. Marco Fagundes - fagundes@cesupa.br
• COCOMO Básico
Classes de Projeto no Modelo
COCOMO
Fonte: Livro Engenharia de Software – Roger Pressman Por exemplo: Um projeto com 14KLoC = 14.000 LoC E = 3,0 (14)1,12 D = 2,5 (57,65) 0,35 E = 57, 65PM D = 10 Meses N = E / D N = 57,65 / 10 N = 6 Pessoas 28 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Distribuição do Tempo e Esforço
Fonte: Processo Unificado da Rational
29 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Distribuição do Tempo e Esforço
• Gráfico de Gannt – para umprojeto de 10 meses
Jan/2010 Fev/2010 Mai/2010 Out/2010
Concepção Elaboração Construção Elaboração Nov/2010 30 2010 Prof. Marco Fagundes - fagundes@cesupa.br
Exercícios e Leitura
• Capítulo 3, 4 e 5 (pag. 107 a 114 - Escopo) do Livro de Engenharia de Software 5 ed. - Roger Pressman
• Capítulo 1 do Guia PMBoK