Ciclo de Vida Iterativo e Incremental

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

O que é

Tipos de Ciclos de Processos

O PROCESSO ITERATIVO

A noção de Processo Iterativo corresponde à ideia de “ melhorar (ou refinar) pouco - a - pouco ” o sistema ( iterações ). Em cada iteração a equipe de desenvolvimento identifica e especifica os requisitos relevantes, cria um projeto utilizando a arquitetura escolhida como guia, implementa o projeto em componentes e verifica se esses componentes satisfazem os requisitos. Se uma iteração atinge os seus objectivos, o desenvolvimento prossegue com a próxima iteração, caso contrário a equipa deve rever as suas decisões e tentar uma nova abordagem.

Portanto, o âmbito do sistema não é alterado, mas o seu detalhe vai aumentando em iterações sucessivas. Um excelente exemplo de aplicação do processo iterativo encontra-se no trabalho artístico, em que o resultado final de uma obra sofre inúmeras iterações.

O PROCESSO INCREMENTAL

A noção de processo incremental corresponde à ideia de “ aumentar (alargar) pouco-a-pouco ” o âmbito do sistema. Uma boa imagem para este atributo é a de uma mansão que foi construída por sucessivos incrementos a partir de uma primeira casa com apenas duas divisões.

Funcionamento

Temos portanto que o processo iterativo e incremental é a interacção dos dois processos anteriormente descritos e apresenta como principais vantagens:

  • Redução de riscos envolvendo custos a um único incremento. Se a equipa precisar de repetir a iteração, a organização perde somente o esforço mal direccionado de uma iteração, não o valor de um produto inteiro;
  • Redução do risco de lançar o projecto no mercado fora da data planejada. Identificando os riscos numa fase inicial o esforço despendido para gerenciá-los ocorre cedo, quando as pessoas estão sob uma menor pressão do que na fase final do projecto;
  • Aceleração do tempo de desenvolvimento do projecto como um todo, porque a equipa trabalha de forma mais eficiente quando procura resultados de escopo mais pequeno e claro;
  • Reconhecimento de uma realidade frequentemente ignorada: as necessidades do cliente e os requisitos correspondentes não podem ser totalmente definidos no início do processo. Eles são tipicamente refinados em sucessivas iterações. Este modelo de operação facilita a adaptação de requisitos;
  • As inconsistências entre a análise, o desenho e a implementação são identificadas atempadamente;
  • Esta abordagem encoraja a participação activa dos utilizadores de modo a identificar os verdadeiros requisitos do sistema.

Vantagens

PORQUÊ ESCOLHER UM PROCESSO DE DESENVOLVIMENTO ITERATIVO E INCREMENTAL?

  • Porque hoje, é considerado errado ter um processo que gere um “Big Bang!”;
  • Porque sempre temos algo para mostrar ao cliente mais apressado;
  • Porque os requisitos mudam com o tempo e um processo iterativo mantém frequentes contactos com o cliente, o que ajuda a manter os requisitos sincronizados;
  • Porque é altamente motivador para a equipa de desenvolvimento (e para o cliente) ver o software a funcionar cedo.

Desvantagens

No que diz respeito às desvantagens, apenas encontrámos uma que foi a principal causa para o surgimento do modelo em espiral e que tem haver com o não favorecimento da utilização de prototipagem e reutilização de software.

Julgamos que não deverão existir muitas mais, uma vez que o desenvolvimento do produto é acompanhado desde o início pelo cliente e futuros utilizadores

Info Gráficos

Ciclo de Vida Iterativo
Ciclo de Vida Incremental

Referências Bibliográficas

  • Eduardo BEZERRA. Princípio de Análise e Projeto de Sistemas com UML . . : Campus, 2002 . ISBN 8535210326

Iterativo e Incremental

O desenvolvimento de um produto comercial de software é uma grande tarefa que pode ser estendida por vários meses, possivelmente um ano ou mais. É mais prático dividir o trabalho em pedaços menores ou miniprojetos. Cada miniprojeto é uma iteração que resulta em um incremento. Iterações são passos em um fluxo de trabalho e incrementos são crescimentos do produto.

Os desenvolvedores selecionam o que deve ser feito em cada iteração baseados em dois fatores. Primeiro, a iteração deve trabalhar com um grupo de casos de uso que juntos estendam a usabilidade do produto em desenvolvimento. Segundo, a iteração deve tratar os riscos mais importantes.

Um incremento não é necessariamente a adição do código executável correspondente aos casos de uso que pertencem à iteração em andamento. Especialmente nas primeiras fases do ciclo de desenvolvimento, os desenvolvedores podem substituir um projeto superficial por um mais detalhado ou sofisticado. Em fases avançadas os incrementos são tipicamente aditivos.

Em cada iteração, os desenvolvedores identificam e especificam os casos de uso relevantes, criam um projeto utilizando a arquitetura escolhida como guia, implementam o projeto em componentes e verificam se esses componentes satisfazem os casos de uso. Se uma iteração atinge seus objetivos, e isso normalmente ocorre, o desenvolvimento prossegue com a próxima iteração, caso contrário, os desenvolvedores devem rever suas decisões e tentar uma nova abordagem.

Há vários benefícios em se adotar um processo iterativo controlado, entre os quais podemos destacar:

  • Redução dos riscos envolvendo custos a um único incremento. Se os desenvolvedores precisarem repetir a iteração, a organização perde somente o esforço mal direcionado de uma iteração, não o valor de um produto inteiro.
  • Redução do risco de lançar o projeto no mercado fora da data planejada. Identificando os riscos numa fase inicial o esforço despendido para gerenciá-los ocorre cedo, quando as pessoas estão sob menos pressão do que numa fase final de projeto.
  • Aceleração do tempo de desenvolvimento do projeto como um todo, porque os desenvolvedores trabalham de maneira mais eficiente quando buscam resultados de escopo pequeno e claro.
  • Reconhecimento de uma realidade freqüentemente ignorada: as neces-sidades dos usuários e os requisitos correspondentes não podem ser totalmente definidos no início do processo. Eles são tipicamente refinados em sucessivas iterações. Este modelo de operação facilita a adaptação a mudanças de requisitos.

Modelo de um Processo

Modelo de Projeto.PNG

DESENVOLVIMENTO ITERATIVO E INCREMENTAL

O desenvolvimento de um produto comercial de software é uma grande tarefa que pode ser alargada por vários meses, possivelmente um ano ou mais.

É mais fácil dividir o trabalho em partes menores (iterações) tendo cada uma como resultado um incremento (processo incremental).

Assim sendo, o princípio subjacente a este processo é que a equipa envolvida pode refinar e alargar pouco-a-pouco a qualidade, detalhe e âmbito do sistema envolvido.

Links Úteis

Ciclo de Vida - Wikipedia