Fundamentos de Engenharia de
SW
Ciclo de Vida de Projetos de SW
Prof. E.A.Schmitz
2008/1
Ciclo de vida de projetos

Projetos são empreendimentos únicos e portanto
envolvem um grau de incerteza.

Organizações dividem projetos em fases de forma
a garantir um melhor controle e encadeamento
com as operações correntes da empresa.

O conjunto das fases de um projeto é conhecido
como ciclo de vida do projeto.
Ciclo de vida de projetos

Cada fase do projeto é marcada pela conclusão de
um ou mais produtos.

Produto de trabalho: deve ser tangível e
verificável.

Exemplo: um estudo de viabilidade, um projeto
detalhado ou um protótipo executável.
Seqüência das fases de projetos

A seqüência de fases normalmente envolve alguma forma
de transferência de informação: p.ex. de requisitos para
projeto ou de projeto para construção.

Produtos das fases precedentes são usualmente aprovados
antes do início da fase seguinte.

“Fast tracking”: fases correndo em paralelo com um risco
tolerável.
Modelos de Ciclo de vida

Modelos de ciclos de vida de projetos definem:

quem deve estar envolvido em cada fase;

que parte do trabalho técnico que deve ser feita em cada
fase.
Modelos básicos de ciclo de vida de SW

Cascata

Iterativo

Incremental

Espiral
Seqüencial Linear
Engenharia de Sistemas
Análise
Projeto
Codificação
Testes
Cascata
Viabilidade
Requisitos
Projeto
Cod. Módulos
Integração
Entrega
Manutenção
Cascata

Processo linear:


saída de uma fase é a entrada para a seguinte
Consiste de 7 fases







1. Estudo de viabilidade
2. Definição de requisitos
3. Projeto
4. Codificação e teste dos módulos
5. Integração e teste do sistema
6. Entrega e aceitação
7. Manutenção
Cascata

Problemas






dificuldade de estimar com pouca informação
especificação de requisitos é um documento escrito
usuário não sabe os requisitos exatos
processo não força antecipação das mudanças
processo baseado na produção de documentos (burocrático)
Apesar disto:

ainda é o modelo mais usado pela simplicidade contratual.
Sequencial com Fast Tracking



Variante do modelo sequencial linear
Fase inicia antes que a(s) precursora(s) tenha(m)
terminado
Aumenta risco de retrabalho
Requisitos
Projeto
Cod. Módulos
Iterativo (Prototipação)
•Processo cíclico para especificar:
• requisitos definidos pelo usuário
•necessidades de hardware e software
• Construção rápida dos primeiros modelos
•não integrados ao produto final
•Após o término é feita a definição do sistema com focando
os demais requisitos de qualidade
Iterativo (Prototipação)
Ouvir o
Cliente
Desenho e
Construção
Avaliação
do Cliente
Prototipação é uma boa opção para a definição de requisitos
Iterativo (Prototipação)

Pontos positivos



grande interação com o usuário
qualidade da definição da interface
Pontos negativos


expectativa do usuário
compromissos com a tecnologia
Incremental
Requisitos
Projeto
Projeto
Cod. Mód.
Cod. Mód.
Integraçào
Integraçào
Aceite
Aceite
Incremental (Rapid Application Development- RAD)
Modelagem
do Negócio
Modelagem
do Negócio
Modelagem
dos Dados
Modelagem
dos Dados
Modelagem
de Processos
Modelagem
de Processos
Geração do
Aplicativo
Geração do
Aplicativo
Testes
60-90 dias
Testes
60-90 dias
RAD
1-Modelagem do negócio: definição das atividades a
serem executadas e seus requisitos de informação
2-Modelagem dos dados – Definição dos objetos de dados
que suportam o negócio
3-Modelagem do tratamento da informação – Descrição
dos processos de manipulação dos objetos de dados
4-Geração da aplicação – usando técnicas de geração de
código e bibliotecas de componentes
5-Testes – Tempo de testes reduzido devido ao uso de
componentes
RAD

Pontos positivos



uso de componentes
redução do tempo
Pontos negativos



tamanho da equipe
necessidade de comprometimento
não adequada a projetos de risco
Espiral

Reune a natureza interativa da prototipação com os
aspectos sistemáticos e de controle do modelo sequencial

Grupos de atividades:






Comunicação com o cliente;
Planejamento;
Análise de risco;
Engenharia;
Construção e distribuição;
Avaliação do cliente.
Espiral (cont.)
4-Avaliar
3-Construir
1-Objetivos ?
2-Avaliar
Alternativas
Riscos
Espiral

Cada volta ao longo da espiral gera:



um protótipo
versão mais sofisticada;
Permite ao desenvolvedor:


utilizar a prototipação em qualquer estágio de evolução do produto
manter a sistemática sugerida pelo ciclo de vida clássico.
Unified Process (UP)

Processo bem definido:



Processo personalizável:



define claramente quem é responsável pelo que, como as coisas devem ser
feitas e quando fazê-las.
Estruturado em Fases (tempo) e Disciplinas (áreas de interesse).
suporta a adaptação e criação de processos
variedade de processos podem ser montadas a partir dele.
Configurações:


suportar equipes grandes e pequenas,
técnicas de desenvolvimento disciplinadas ou menos formais.
Unified Process (UP)
Características do UP

Mistura os estilos de processo iterativo e incremental

Premissas:


Tempo de desenvolvimento de sistemas grandes não permite definir o
problema e construir a solução num único passo.

Os requisitos irão mudar naturalmente durante o desenvolvimento do
projeto, devido a arquitetura, necessidades do cliente ou um melhor
entendimento do problema original.
Iteração:


Permite um melhor entendimento do produto através de refinamentos
sucessivos e ataca os itens de alto-risco de um projeto com prioridade
alta.
Sempre resulta num "lançamento executável”; o que ajuda a reduzir o
risco do projeto.
Extreme Programming (XP)

Proposta:



Desenvolver softwares de forma que as mudanças sejam implementadas a
medida em que as mesmas vão surgindo durante o desenvolvimento do software.
Cliente satisfeito significa "software eficiente"
O software é desenvolvido de acordo com mudanças requeridas pelo cliente:

até que o software fique como o cliente solicitou.
Características do XP

Se adapta às inevitáveis mudanças que ocorrem durante o desenvolvimento

Desenvolver software da maneira mais rápida possível:


Como:


ainda assim confiável e eficiente.
ignorando, adiando ou gastando menos tempo com atividades como
documentação, projeto e modelagem.
Garantia:

O software é sempre testado a medida em que novas mudanças são
implementadas
Download

Aula Teórica Ciclo de Vida.