Aula 22 - IC/UFF

Propaganda
Engenharia de Software II
Aula 22
http://www.ic.uff.br/~bianca/engsoft2/
Aula 22 - 07/07/2006
1
Ementa
•
•
•
•
Processos de desenvolvimento de software
Estratégias e técnicas de teste de software
Métricas para software
Gestão de projetos de software
–
–
–
–
–
–
–
Conceitos (Cap. 21)
Métricas (Cap. 22 – Seções 22.1 e 22.2)
Estimativas (Cap. 23 – Seções 23.1 a 23.7)
Cronogramação (Cap. 24)
Gestão de risco
Gestão de qualidade
Gestão de modificações
• Reengenharia e engenharia reversa
Aula 22 - 07/07/2006
2
Definição de um
Conjunto de Tarefas
• O modelo de processo escolhido é preenchido
por um conjunto de tarefas.
– Tarefas de trabalho de engenharia de software
– Marcos de referência
– Produtos de trabalho
• Para desenvolver um cronograma, o conjunto
de tarefas precisa ser distribuído pelo prazo do
projeto.
• Nenhum conjunto de tarefas é apropriado para
todos os tipos de projeto.
– O modelo de processo deve definir uma coleção de
conjuntos de tarefas.
Aula 22 - 07/07/2006
3
Definição de um
Conjunto de Tarefas
• Tipos de projeto de software:
– Desenvolvimento conceitual
• Exploram uma novo conceito de negócio ou tecnologia.
– Desenvolvimento de novas aplicações
• Iniciados a partir de um pedido específico do cliente.
– Aperfeiçoamento de aplicações
• Quando um software existente passa por modificações
significativas.
– Manutenção de aplicações
• Corrigem, adaptam ou ampliam um software existente.
– Reengenharia
• Reconstruir um sistema existente no seu todo ou em parte.
• Outros fatores influenciam o conjunto de tarefas:
– Tamanho, número de usuários, criticalidade, estabilidade dos
requisitos, maturidade da tecnologia, desempenho, etc.
Aula 22 - 07/07/2006
4
Exemplo de
Conjunto de Tarefas
• Tarefas macroscópicas para um projeto de
desenvolvimento conceitual:
– Determinação de escopo conceitual
• Determina o escopo global do projeto
– Planejamento conceitual preliminar
• Estabelece a capacidade de a organização assumir esse trabalho
de desenvolvimento.
– Avaliação do risco da tecnologia
• Avalia o risco associado à tecnologia a ser implementada.
– Prova de conceito
• Demonstra a viabilidade da nova tecnologia
– Implementação conceitual
• Implementa a representação conceitual de um modo que possa ser
revisado por um cliente e possa ser usado para marketing.
– Reação do cliente
• Realimentação sobre o novo conceito.
Aula 22 - 07/07/2006
5
Exemplo de
Refinamento de Tarefa
• Tarefa: Determinação de escopo conceitual.
– Identificar necessidades, benefícios e clientes em
potencial.
– Definir entrada/saída/controle para a aplicação.
– Definir o comportamento de cada função principal.
– Isolar os elementos da tecnologia a ser
implementados em software.
– Pesquisar a disponibilidade de software existente.
– Definir viabilidade técnica.
– Fazer estimativa rápida de tamanho.
– Criar uma Definição de Escopo.
Aula 22 - 07/07/2006
6
Definição de uma
Rede de Tarefas
• Tarefas e subtarefas têm
interdependências baseadas na sua
seqüência.
– Quando mais de uma pessoa faz parte do
projeto, tarefas devem ser executadas em
paralelo.
– As tarefas devem ser coordenadas para que
sejam completadas quando tarefas
posteriores precisarem do seu produto de
trabalho.
Aula 22 - 07/07/2006
7
Definição de uma
Rede de Tarefas
• Uma rede de tarefas é uma representação gráfica do
fluxo de tarefas de um projeto.
• A rede serve como uma precursora do cronograma.
Determinação
do escopo
conceitual
Planejamento
conceitual
Avaliação do
risco
tecnológico a
Avaliação do
risco
tecnológico b
Implementação
do conceito a
Prova do
conceito
Avaliação do
risco
tecnológico c
Aula 22 - 07/07/2006
Implementação
do conceito b
Implementação
do conceito c
Integração
a,b,c
Reação do
cliente
8
Cronogramação
• A cronogramação de um projeto de
software não difere muito da
cronogramação de qualquer esforço de
engenharia.
• Técnicas gerais de cronogramação podem
ser aplicadas.
– PERT = Program Evaluation and Review
Technique.
– CPM = Critical Path Method.
Aula 22 - 07/07/2006
9
Cronogramação
• Ambas as técnicas PERT e CPM
– São guiadas por:
• Estimativas de esforço
• Decomposição da função do produto
• Seleção de modelo de processo e conjunto de tarefas
adequado
• Decomposição de tarefas
– Fornecem métodos quantitativos para:
• Determinar o caminho crítico
– Cadeia de tarefas que determina a duração do projeto.
• Estabelecer estimativas de tempo mais prováveis para
tarefas individuais aplicando modelos estatísticos.
• Calcular limites de tempo que definem uma janela de tempo
para uma tarefa específica.
Aula 22 - 07/07/2006
10
Gráfico de Tempo
• Gráfico de Tempo = Gráfico de Gantt
– Permite a visualização da duração de tempo
das tarefas.
– Todas as tarefas são listadas na coluna mais
à esquerda
– Barras horizontais indicam a duração de cada
tarefa.
– Quando várias barras ocorrem ao mesmo
tempo, o paralelismo fica implícito.
– Os losangos indicam marcos de referência.
Aula 22 - 07/07/2006
11
Exemplo: Gráfico de Tempo
Aula 22 - 07/07/2006
12
Tabela de Projeto
• A maioria das ferramentas de
cronogramação de projetos produz
tabelas de projeto.
– Lista tabular de todas as tarefas, de suas
datas iniciais e finais, planejadas e reais,
além de outras informações.
• Usadas em conjunto com os gráficos de
tempo, as tabelas permitem ao gerente
acompanhar o progresso.
Aula 22 - 07/07/2006
13
Acompanhamento do
Cronograma
• O cronograma é um roteiro para o gerente de projeto de
software.
• O acompanhamento do projeto pode ser feito de
diversas maneiras:
– Conduzir reuniões periódicas sobre o estado do projeto.
• Cada membro da equipe relata o progresso e problemas.
– Avaliar os resultados de todas as revisões conduzidas.
– Determinar se os marcos de referência foram atingidos na data
prevista.
– Comparar a data de início real com a data de início prevista pra
cada tarefa.
– Reunir os profissionais para uma avaliação subjetiva do
progresso.
– Usando análise do valor agregadao, avaliar o progresso
quantitativamente.
Aula 22 - 07/07/2006
14
Acompanhamento do
Cronograma
• Quando ocorrem problemas, o gerente de projeto deve
exercer controle pra resolvê-los o mais cedo possível.
–
–
–
–
Diagnosticar o problema
Alocar recursos adicionais
Redistribuir o pessoal
Redefinir o cronograma
• Técnica de encaixotamento de tempo
– Uma “caixa” de tempo é colocada em volta de cada tarefa.
• Quando a tarefa passa do tempo máximo, o trabalho é interrompido
e a tarefa seguinte começa.
• O restante da tarefa fica para o próximo incremento
– Ao invés de ficar empacado, o projeto prossegue em direção à
data de entrega.
Aula 22 - 07/07/2006
15
Acompanhamento em
Projetos OO
• O paralelismo de tarefas no projeto OO,
torna o acompanhamento do projeto difícil.
• O gerente pode encontrar dificuldades em
definir marcos de referência significativos.
Aula 22 - 07/07/2006
16
Acompanhamento em
Projetos OO
• Os seguintes marcos principais são utilizados:
– Análise OO completada
•
•
•
•
•
Todas as classes e sua hierarquia foram definidas e revisadas.
Atributos e operações de classe foram definidos e revisados.
Relacionamento de classes foram estabelecidos e revisados.
Um modelo comportamento for criado e revisado.
Classes reusáveis foram anotadas.
– Projeto OO completado
•
•
•
•
•
•
O conjunto de subsistemas foi definido e revisado.
Classes foram alocadas a subsistemas e revisadas.
A alocação de tarefas foi estabelecida e revisada.
Responsabilidades e colaborações foram identificadas.
Classes de projeto foram criadas e revisadas.
O modelo de comunicação foi criado e revisado
Aula 22 - 07/07/2006
17
Acompanhamento em
Projetos OO
– Programação OO completada
• Cada nova classe foi implementada em código a partir do modelo
de projeto.
• Classes extraídas de uma biblioteca de reuso foram
implementadas.
• Protótipo ou incremento foi construído.
– Teste OO completado
• A correção e completude dos modelos de análise e projeto OO
foram revisadas.
• A rede de responsabilidade-colaboração de classes foi
desenvolvida e revisada.
• Casos de teste foram projetados e os teste intra-classe foram
conduzidos para cada classe.
• Casos de teste foram projetados, o teste de integração foi
completado e as classes estão integradas.
• Testes de sistema foram completados.
Aula 22 - 07/07/2006
18
Análise do Valor Agregado
• É uma técnica quantitativa para avaliar o
progresso do projeto.
• Fornece uma escala comum de valor para
cada tarefa, independentemente do tipo
de trabalho que está sendo realizado.
– Avalia a porcentagem de execução do
projeto.
Aula 22 - 07/07/2006
19
Análise do Valor Agregado
1.
O custo orçado do trabalho cronogramado (BCWS) é
determinado para tarefa.
BCWSi é o esforço planejado para a tarefa i em pessoa-mês.
BCWS é a soma dos valores BCWSi de todas as tarefas que
deveriam ter sido completadas até um dado momento.
2.
Os valores BCWSi são somados para derivar o
orçamento na conclusão do projeto (BAC).
BAC = Σ (BCWSi) para todas as tarefas i.
3.
O valor do custo orçado do trabalho realizado (BCWP)
é calculado.
Soma dos valores BCWS de todas as tarefas de trabalho que
foram efetivamente completadas.
Aula 22 - 07/07/2006
20
Análise do Valor Agregado
• Índice de desempenho do cronograma
– SPI = BCWP/BCWS
– SPI próximo de 1,0 indica execução eficiente
do cronograma do projeto.
• Variância do cronograma
– SV = BCWP - BCWS
• Porcentagem programada para conclusão
= BCWS/BAC
• Porcentagem completada = BCWP/BAC
Aula 22 - 07/07/2006
21
Análise do Valor Agregado
• Custo real do trabalho realizado (ACWP)
– Soma do esforço realmente despendido nas tarefas
que foram completadas.
– Diferente de BCWP que é o esforço orçado.
• Índice de desempenho do custo
– CPI = BCWP/ACWP
– CPI próximo de 1,0 indica que o projeto está dentro
do orçamento definido.
• Variância do custo
– CV = BCWP - ACWP.
– Indicação absoluta das economias ou dos excessos
de custo em um estágio específico do projeto.
Aula 22 - 07/07/2006
22
Download