Planejamento/Gerenciamento
Alexandre Mota
([email protected])
Tempo de Desenvolvimento

A partir da rede de atividades


Determinar o caminho crítico



Grafo interligando tarefas com tempo
O caminho que leva mais tempo para
concluir
Gerente deve dar especial atenção às
tarefas contidas no caminho crítico
É crucial ter folgas no caminho crítico
Identificação de Riscos
Risco
Probabilidade
Efeitos
Pessoal doente
Moderada
Sério
Tamanho do
software
desconhecido
...
Alta
Tolerável
Pessoal qualificado
não disponível
Alta
…
…
Catastrófico
Estratégias de Gerenciamento
Risco
Estratégia
Pessoal doente Reorganizar equipe para ter
sobreposição de pessoas/trabalho
Recrutamento Alertar cliente sobre possível
atraso
…
…
Mudança nos
requisitos
Analisar rastreamento entre
requisitos para determinar impacto
Sumário de Gerenciamento

Manter informação sempre atualizada




Principalmente tempo e riscos
Colocar pessoas ociosas para revisar
trabalho de pessoas ativas (extreme
programming) – Qualidade
Avaliar trabalho futuro HOJE
Estar sempre com o plano em mãos
Por que Mensurar?





Indicar a qualidade do produto
Avaliar produtividade
Formar base para estimativas
Determinar benefícios derivados de
novos métodos e ferramentas da ES
Justificar aquisição de ferramentas e
treinamento
Utilização de Métricas
Projeto
Esforço
$
KLOC
projA-01
24
168
12.1
projB-04
62
440
projC-03
43
314
Págs.docum.
Erros
Pessoas
365
29
3
27.2
1224
86
5
20.2
1050
64
6
PRODUTIVIDADE = KLOC / Pessoas-mês
MÉTRICAS
DERIVADAS
QUALIDADE = Erros / KLOC
CUSTO = $ / LOC
DOCUMENTAÇÃO = Págs.docum. / KLOC
Métricas de Software

Método de Wideband-Delphi

Método de Lógica-Fuzzy

Pontos por Função

COCOMO
Wideband-Delphi




Originado pela Rand Corporation e
refinado por Boehm
Consiste em obter consenso a partir de
estimativas individuais
As estimativas são geradas após
reuniões entre os desenvolvedores
O consenso se dá através de discussões
em grupo sobre as estimativas
individuais (anônimas)
Wideband-Delphi
O procedimento é:

1.
2.
3.
4.
5.
Grupo de especialistas recebe especificações e
formulário de estimativa
Há uma reunião para discutir objetivos,
limitações e características do projeto
Daí, anonimamente, cada um lista as tarefas e
suas estimativas
Estimativas são agrupadas por um moderador e
apresentadas ao grupo
Só a estimativa do especialista é marcada no
formulário. As outras ficam iguais.
Wideband-Delphi

O procedimento é:
6.
7.
Há outra reunião para discutir resultados.
Cada especialista revê sua lista de tarefas
mas não as estimativas
Este processo volta ao passo 3 Até que
as estimativas estejam próximas o
suficiente
Wideband-Delphi
Projeto: Extensão do Rose
Estimador: Alexandre
Data: 01/03/2003
Aqui está o limite das estimativas da 1a rodada
X
0
20
X*
X!
40
X – estimativas
X* - sua estimativa
X! – estimativa mediana
60
X
X
80
100
Método de Lógica-Fuzzy




Estimativa é baseada em dados
históricos
Sistemas são divididos em categorias de
tamanhos
A escala de tamanhos é dada por
logaritmos e ajustadas
Divisão vai até ponto onde sistema
atual pode ser encaixado em alguma
categoria
Exemplo de Lógica-Fuzzy




Suponha que seu menor programa
tenha 173 LOC e o maior 10341
E deseja-se dividir essa região em 5
categorias
Calculam-se, log 173=2.238 e
log 10341=4.014
E dividem-se (4014 – 2238) por 4 para
obter o incremento (0.444)
Exemplo de Lógica-Fuzzy
Categoria
LOC
Muito pequeno
173
Pequeno
481
Médio
1338
Grande
3719
Muito grande
10341
Método de Lógica-Fuzzy

Considerações Importantes:



Ter dados históricos sobre um grande
número de projetos para ter como
comparar com as várias categorias
Deve-se atualizar as categorias tão logo
haja dados suficientes
As categorias também devem ser ajustadas
de acordo com os projetos futuros
esperados
Modelos de ciclo de vida


Construa e Conserte (Code-and-Fix,
Build-and-Fix)
Cascata (“Waterfall”)





Cascata Modificado
Prototipação
Espiral
Formal
Baseado em reuso
Construa e Conserte

Desvantagens




Vantagens



Sem especificação
Sem projeto
Não gerencia riscos
Baixa sobrecarga de
desenvolvimento
Não precisa de
especialização
Para sistemas muito
pequenos
Construa
Versão 1
Modifique até
cliente estar
satisfeito
Fase de
manutenção
Modelo Cascata
Definição de
Requisitos
Projeto do
Sistema
Implementação
E testes
Integração e
Testes
Operação e
manutenção
Características do Modelo
Cascata

Desvantagens




Partição inflexível do projeto em estágios
distintos
Dificuldade para lidar com as mudanças
nos requisitos do sistema
Não gerencia riscos
Vantagens


Orientado a documentação
Manutenção é mais simples
Características do Modelo
Cascata*

Desvantagens



Milestones podem tornar-se ambíguos
Atividades em paralelo podem levar a
problema de comunicação, suposições
errôneas e ineficiência
Vantagens



Atividades podem ser sobrepostas
Mais fácil de lidar com mudanças nos
requisitos
Capacidade para gerenciar riscos
Processo Evolucionário

Desenvolvimento exploratório (Protótipo
evolucionário)

Construa, avalie e evolua para produto


Trabalhar com os clientes até se obter o
produto final a partir de uma especificação
bem-definida e completa do sistema.
Protótipo descartável

Construa, use e descarte

Obter requisitos do cliente. Inicia-se com uma
especificação incompleta e simples do sistema
Processo Evolucionário
Atividades
concorrentes
Descrição
superficial
Especificação
Versão
inicial
Desenvolvimento
Versões
intermediárias
Validação
Versão
final
Perspectivas

Desvantagens




Falta de visibilidade do processo
Sistemas são geralmente mal estruturados
Conhecimentos específicos (ling. de prot. rápida)
podem ser necessários
Aplicações



Sistemas interativos de pequeno e médio porte
Partes de sistemas grandes (interface com
usuário)
Sistemas com vida útil curta
Processo Formal


Transformação de uma especificação
formal em um programa executável
Pode ser empregado de duas formas:

Através de um cálculo de refinamentos


Implementação é derivada por construção,
garantindo corretude
Através de passos de refinamento

Versão mais concreta do sistema é proposta e
depois deve-se verificá-la em relação a anterior
Processo Formal
Definição de
requisitos
Especificação
formal
Transformação
formal
Integração e
testes
Perpectivas

Desvantagens



Vantagens


Necessita de profissionais altamente
qualificados para aplicar a técnica
Alguns aspectos ainda são difíceis de
especificar (GUI)
Garantia de segurança e confiabilidade
Aplicações

Sistemas críticos e complexos
Processo baseado em Reuso


Baseado no reuso sistemático de
componentes existentes na própria empresa
ou no mercado
Estágios do processo






Análise dos componentes
Modificação dos requisitos
Projeto do sistema com reuso
Desenvolvimento e integração
Validação
Essa abordagem está se tornando cada vez
mais importante, mas ainda faltam casos
experimentais bem-sucedidos
Processo baseado em Reuso
Especificação
De requisitos
Análise de
componentes
Modificação
De requisitos
Projeto com
reuso
Desenvolv. E
integração
Validação do
Sistema
Processo Iterativo



Os requisitos do sistema SEMPRE
mudam durante o desenvolvimento
Iteração pode ser aplicado a qualquer
um dos processos de desenvolvimento
Duas abordagens são destacadas:


Desenvolvimento incremental
Desenvolvimento em espiral
Desenvolvimento Incremental



Ao invés de entregar o sistema completo,
divide-se o sistema em partes de tal forma a
cada entrega corresponder a alguma
funcionalidade do sistema
Requisitos do usuário são priorizados e os
quanto maior a prioridade mais cedo tal
funcionalidade deve ser entregue
Uma vez que o desenvolvimento de um
incremento seja iniciado, esses requisitos são
fixados enquanto que os posteriores são
deixados serem modificados
Desenvolvimento Incremental
Requisitos
superficiais
Requisitos em
incrementos
Projeto da
arquitetura
Desenvolv.
incremento
Validação
incremento
Integração
incremento
Sistema incompleto
Validação do
sistema
Sistema
completo
Vantagens




Solicitações dos clientes são entregues a cada
incremento. Assim, as funcionalidades são
entregues o mais cedo possível
Incrementos iniciais servem de protótipo para
obter requisitos para incrementos posteriores
Diminuição do risco de falha de todo o
projeto
Serviços de maior prioridade tendem a
receber maior ênfase em testes
Modelo Espiral

Forma Simplificada


Precede cada fase por



Modelo cascata mais análise de riscos
Alternativas
Análise de riscos
Procede cada fase por


Avaliação
Planejamento da fase seguinte
Modelo Espiral Simplificado

Se os riscos não
podem ser
resolvidos, projeto é
terminado
imediatamente
Modelo Espiral Completo

Dimensão Radial


Custo acumulado atualizado
Dimensão Angular

Progresso através da espiral
Modelo Espiral Completo
Características do Modelo
Espiral

Desvantagens



Bem aplicado somente a sistemas de larga
escala
Sistemas devem ser produtos internos da
empresa
Vantagens


Fácil de decidir o quanto testar
Não faz distinção entre desenvolvimento e
manutenção
Bibliografia

Leitura adicional


Software Engineering. I.Sommerville
A Discipline for Software Engineering.
W.S.Humphrey
Download

Aula 03 - wideband