Processo incremental e iterativo

Hoje, é considerado errado ter um processo que gere um “big bang”.Não se
deve ter o software inteiro funcionando por inteiro no primeiro release, pois
o risco é grande demais.
Um processo de desenvolvimento de software deve ser iterativo (ter várias
iterações no tempo) e incremental (gerar novas versões incrementadas a
cada release).


Descrição do processo incremental e iterativo

O desenvolvimento de um produto comercial de software é uma grande
tarefa que pode ser estendida por vários meses, possivelmente um ano ou
mais.Por isso, é mais práctico dividir o trabalho em “pedaços” menores ou
iterações.Cada iteração resultará num incremento.
Iterações são passos em fluxo de trabalho e incrementos são crescimentos
do produto.
O princípio subjacente ao processo incremental e iterativo é que a equipa
envolvida possa refinar e alargar pouco-a-pouco a qualidade, detalhe e
âmbito do sistema envolvido.
Por exemplo, numa primeira iteração deve-se identificar a visão global e
determinar a viabilidade económica do sistema, efectuar a maior parte da
análise e um pouco de desenho e implementação.Numa segunda iteração,
deve-se concluir a análise, fazer uma parte significativa do desenho e um
pouco mais de implementação.
Numa terceira iteração, deve-se concluir o desenho, fazer-se parte
substancial da implementação, testar e integrar um pouco, etc.
Ou seja, a principal consequência da aproximação iterativa é que os
produtos finais de todo o processo vão sendo amadurecidos e completados
ao longo do tempo, mas cada iteração produz sempre um conjunto de
produtos finais.

A cada iteração é feito:

      - Análise (refinamento de requisitos, refinamento do modelo
                 conceitual)
      - Projecto (refinamento do projecto arquitectural, projecto de baixo
                 nível)
      - Implementação (codificação e testes)
      - Transição para produto (documentação, instalação, ...)
Vantagens do processo incremental e iterativo

- Possibilidade de avaliar mais cedo os riscos e pontos críticos do
  projecto, e identificar medidas para os eliminar ou controlar;

- Redução dos riscos envolvendo custos a um único incremento.Se a
  equipa que desenvolve o software precisar 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;

- Definição de uma arquitectura que melhor possa orientar todo o
  desenvolvimento;
- Disponibilização natural de um conjunto de regras para melhor controlar
  os inevitáveis pedidos de alterações futuras;

- Permite que os vários intervenientes possam trabalhar mais
  efectivamente pela interacção e partilha de comunicação daí resultante;
- Existe sempre algo para entregar ao cliente apressado (a última
  iteração);

- Os requisitos mudam com o tempo e um processo iterativo e
  incremental mantém frequentes os contactos com o cliente, o que ajuda
  a manter os requisitos sincronizados;

- Redução do risco de lançar o projecto no mercado fora da data
  planeada.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 projecto;

- Aceleração do tempo de desenvolvimento do projecto como um todo,
  porque a equipa que desenvolve o software trabalha de maneira mais
  eficiente quando pretende alcançar resultados de escopo pequeno e
  claro;

- Altamente motivador para a equipa de desenvolvimento (e o cliente) ver
  o software funcionando cedo.




Desvantagens do Processo incremental e iterativo


*Após termos pesquisado o tema, não encontrámos referência a qualquer
tipo de desvantagens na aplicação e utilização do Processo incremental e
iterativo.Por esse motivo, não é apresentado qualquer tipo de desvantagem
sobre este processo no nosso trabalho.

T1 g8 iteração

  • 1.
    Processo incremental eiterativo Hoje, é considerado errado ter um processo que gere um “big bang”.Não se deve ter o software inteiro funcionando por inteiro no primeiro release, pois o risco é grande demais. Um processo de desenvolvimento de software deve ser iterativo (ter várias iterações no tempo) e incremental (gerar novas versões incrementadas a cada release). Descrição do processo incremental e iterativo O desenvolvimento de um produto comercial de software é uma grande tarefa que pode ser estendida por vários meses, possivelmente um ano ou mais.Por isso, é mais práctico dividir o trabalho em “pedaços” menores ou iterações.Cada iteração resultará num incremento. Iterações são passos em fluxo de trabalho e incrementos são crescimentos do produto. O princípio subjacente ao processo incremental e iterativo é que a equipa envolvida possa refinar e alargar pouco-a-pouco a qualidade, detalhe e âmbito do sistema envolvido. Por exemplo, numa primeira iteração deve-se identificar a visão global e determinar a viabilidade económica do sistema, efectuar a maior parte da análise e um pouco de desenho e implementação.Numa segunda iteração, deve-se concluir a análise, fazer uma parte significativa do desenho e um pouco mais de implementação. Numa terceira iteração, deve-se concluir o desenho, fazer-se parte substancial da implementação, testar e integrar um pouco, etc. Ou seja, a principal consequência da aproximação iterativa é que os produtos finais de todo o processo vão sendo amadurecidos e completados ao longo do tempo, mas cada iteração produz sempre um conjunto de produtos finais. A cada iteração é feito: - Análise (refinamento de requisitos, refinamento do modelo conceitual) - Projecto (refinamento do projecto arquitectural, projecto de baixo nível) - Implementação (codificação e testes) - Transição para produto (documentação, instalação, ...)
  • 2.
    Vantagens do processoincremental e iterativo - Possibilidade de avaliar mais cedo os riscos e pontos críticos do projecto, e identificar medidas para os eliminar ou controlar; - Redução dos riscos envolvendo custos a um único incremento.Se a equipa que desenvolve o software precisar 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; - Definição de uma arquitectura que melhor possa orientar todo o desenvolvimento; - Disponibilização natural de um conjunto de regras para melhor controlar os inevitáveis pedidos de alterações futuras; - Permite que os vários intervenientes possam trabalhar mais efectivamente pela interacção e partilha de comunicação daí resultante;
  • 3.
    - Existe semprealgo para entregar ao cliente apressado (a última iteração); - Os requisitos mudam com o tempo e um processo iterativo e incremental mantém frequentes os contactos com o cliente, o que ajuda a manter os requisitos sincronizados; - Redução do risco de lançar o projecto no mercado fora da data planeada.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 projecto; - Aceleração do tempo de desenvolvimento do projecto como um todo, porque a equipa que desenvolve o software trabalha de maneira mais eficiente quando pretende alcançar resultados de escopo pequeno e claro; - Altamente motivador para a equipa de desenvolvimento (e o cliente) ver o software funcionando cedo. Desvantagens do Processo incremental e iterativo *Após termos pesquisado o tema, não encontrámos referência a qualquer tipo de desvantagens na aplicação e utilização do Processo incremental e iterativo.Por esse motivo, não é apresentado qualquer tipo de desvantagem sobre este processo no nosso trabalho.