Ciclo de Vida do RUP
Essa página descreve as fases e os marcos de um ciclo de vida do projeto RUP normal.
Relacionamentos
Descrição Principal

As fases e os marcos de um projeto

Do ponto de vista do gerenciamento, o ciclo de vida de software do Rational Unified Process (RUP) é dividido em quatro fases seqüenciais, cada uma concluída por um marco principal, ou seja, cada fase é basicamente um intervalo de tempo entre dois marcos principais. À cada final de fase, uma avaliação é executada para determinar se os objetivos da fase foram alcançados. Uma avaliação satisfatória permite que o projeto passe para a próxima fase.

Fases de Planejamento

As fases não são idênticas em termos de programação e esforço. Embora isso varie muito de acordo com o projeto, um ciclo de desenvolvimento inicial típico para um projeto de médio tamanho deve prever a seguinte distribuição de esforço e programação:

  iniciação elaboração construção transição
Esforço ~5 % 20 % 65 % 10%
Cronograma 10 % 30 % 50 % 10%

que pode ser descrito graficamente como

Transição Construção Elaboração Iniciação Clique em uma fase para obter informações adicionais

Esta distribuição pode variar. Por exemplo, ferramentas que gerem código e etapas de teste podem diminuir a fase de construção. Além disso, para um ciclo de evolução, as fases de iniciação e de elaboração seriam consideravelmente menores, já que uma visão e arquitetura básicas já estão estabelecidas.

Estratégias de Planejamento

Nesta seção, foo apresentado um número de padrões de ciclo de vida correspondentes aos perfis de projetos comuns.

Padrão de ciclo de vida: Incremental

"A estratégia incremental determina as necessidades do usuário e define os requisitos do sistema e, em seguida, desempenha o restante do desenvolvimento em uma seqüência de construções. A primeira construção incorpora partes dos recursos planejados, a próxima construção inclui mais recursos e assim por diante até o sistema estar completo".[DOD94]

As seguintes iterações são características:

  • uma iteração curta de Iniciação para estabelecer o escopo e a visão, e para definir o caso de negócio
  • uma única iteração de Elaboração, durante a qual os requisitos são definidos e a arquitetura estabelecida
  • várias iterações de Construção durante as quais os casos de uso são realizados e a arquitetura é aprimorada
  • várias iterações de Transição para migrar o produto para a comunidade de usuários

Diagrama descrito no texto associado.

Essa estratégia é apropriada quando:

  • O domínio do problema é familiar.
  • Os riscos são bem entendidos.
  • A equipe do projeto é experiente.

Padrão de ciclo de vida: Evolutivo

"A estratégia evolucionária difere da incremental ao reconhecer que o as necessidades do usuário não são completamente entendidas e todos os requisitos não podem ser definidos imediatamente, eles são refinados em cada construção sucessiva". [DOD94]

As seguintes iterações são características:

  • uma iteração curta de Iniciação para estabelecer o escopo e a visão, e para definir o caso de negócio
  • várias iterações de Elaboração, durante as quais os requisitos são refinados em cada iteração
  • uma única iteração de Construção, durante a qual os casos de uso são realizados e a arquitetura é expandida
  • várias iterações de Transição para migrar o produto para a comunidade de usuários

Diagrama descrito no texto associado.

Essa estratégia é apropriada quando:

  • O domínio do problema é novo ou não é familiar.
  • A equipe é inexperiente.

Padrão de ciclo de vida: Entrega Incremental 

Alguns autores também fizeram em fases as entregas da funcionalidade incremental para o cliente [GIL88]. Isso pode ser necessário quando há pressões de mercado sobre o tempo restrito, onde a liberação antecipada de certos recursos importantes pode render benefícios de negócio significativos.

Em termos da abordagem da iteração de fase, a fase de transição começa cedo e tem a maioria das iterações. Essa estratégia requer uma arquitetura bastante estável, que é difícil de se conseguir em um ciclo de desenvolvimento inicial, para um sistema "sem precedentes".

As seguintes iterações são características:

  • uma iteração curta de Iniciação para estabelecer o escopo e a visão, e para definir o caso de negócio
  • uma única iteração de Elaboração, durante a qual é criada uma baseline de arquitetura estável
  • uma única iteração de Construção, durante a qual os casos de uso são realizados e a arquitetura é aprimorada
  • várias iterações de Transição para migrar o produto para a comunidade de usuários

Diagrama descrito no texto associado.

Essa estratégia é apropriada quando:

  • O domínio do problema é familiar:

    • a arquitetura e os requisitos podem ser estabilizados antecipadamente no ciclo de desenvolvimento
    • há um baixo grau de novidade no problema
  • A equipe é experiente.
  • Releases incrementais de funcionalidade têm alto valor para o cliente.

Padrão de ciclo de vida: "Design Grande"

A abordagem em cascata tradicional pode ser vista como um caso degenerado em que há apenas uma iteração na fase de construção. Chamado "design grande" em [DOD94]. Na prática, é difícil evitar iterações adicionais na fase de transição.

As seguintes iterações são características:

  • uma iteração curta de Iniciação para estabelecer o escopo e a visão, e para definir o caso de negócio
  • uma única iteração muito longa de Construção, durante a qual os casos de uso são realizados e a arquitetura é aprimorada
  • várias iterações de Transição para migrar o produto para a comunidade de usuários

Diagrama descrito no texto associado.

Essa estratégia é apropriada quando:

  • um pequeno incremento de funcionalidade bem definida está sendo adicionado a um produto muito estável
  • a nova funcionalidade é bem definida e bem entendida
  • A equipe é experiente, tanto no domínio do problema quando no produto existente

Padrão de ciclo de vida: Estratégias Híbridas

Na prática, poucos projetos seguem estritamente uma estratégia. Você freqüentemente acaba com uma evolução híbrida, no início, uma construção incremental e várias entregas. Uma das vantagens do modelo de iteração de fase é que ele permite acomodar uma abordagem híbrida, simplesmente aumentando o tamanho e o número de iterações em determinadas fases:

  • Para domínios complexos ou de problemas não familiares, nos quais há um alto grau de exploração: aumente o número de iterações na fase de elaboração e seu comprimento.
  • Para problemas de desenvolvimento mais complexos, nos quais há complexidade de tradução do design em código: aumente o número de iterações na fase de construção e seu comprimento.
  • Para entregar software em uma série de releases incrementais: aumente o número de iterações na fase de transição e seu comprimento.


Movendo de Um Ciclo para o Próximo

Uma passagem pelas quatro fases é um ciclo de desenvolvimento; cada passagem pelas quatro fases produz uma geração do software. A menos que o produto "desapareça", ele irá se desenvolver na próxima geração, repetindo a mesma seqüência de fases de iniciação, elaboração, construção e transição, mas agora com ênfase diferente nas diversas fases. Esses ciclos subseqüentes são chamados ciclos de evolução. À medida que o produto atravessa vários ciclos, são produzidas novas gerações.

Gráfico do Diagrama de Desenvolvimento Inicial

Os ciclos de evolução podem ser disparados por melhorias sugeridas pelos usuários, mudanças no contexto do usuário, mudanças na tecnologia subjacente, reação à concorrência e assim por diante. Normalmente, os ciclos de evolução têm fases de Iniciação e Elaboração bem menores, pois a definição e a arquitetura básicas do produto foram determinadas pelos ciclos de desenvolvimento anteriores.    São exceções a essa regra os ciclos de evolução, em que ocorre uma redefinição significativa do produto ou da arquitetura.