Mudanças entre as edições de "Ciclo de Vida Iterativo e Incremental"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(34 revisões intermediárias por 4 usuários não estão sendo mostradas)
Linha 1: Linha 1:
 
==O que é==
 
==O que é==
 +
[[Imagem:Iterativo_e_incremental.jpg|thumb|rigth|500px|'''Diagrama do Ciclo de Vida Iterativo e Incremental''']]
 +
O modelo de ciclo de vida incremental e iterativo foi proposto como uma resposta aos problemas encontrados no modelo em cascata. Um processo de desenvolvimento segundo essa abordagem divide o desenvolvimento de um produto de software em ciclos. Em cada ciclo de desenvolvimento, podem ser identificadas as fases de análise, projeto, implementação e testes. Essa característica contrasta com a abordagem clássica, na qual as fases de análise, projeto, implementação e testes são realizadas uma única vez.
  
==Funcionamento==
+
Cada um dos ciclos considera um subconjunto de requisitos. Os requisitos são desenvolvidos uma vez que sejam alocados a um ciclo de desenvolvimento. No próximo ciclo, um outro subconjunto dos requisitos é considerado para ser desenvolvido, o que produz um novo incremento do sistema que contém extensões e refinamentos sobre o incremento anterior.
AS FIGURAS PODE DEIXAR QUE EU EDITO E MANDO
+
 
ps.: Sempre que salvar um grafico com fundo branco salve em PNG e nao JPG. A diferença é vizivel!
+
Assim, o desenvolvimento evolui em versões, através da construção incremental e iterativa de novas funcionalidades até que o sistema completo esteja construído. Note que apenas uma parte dos requisitos é considerada em cada ciclo de desenvolvimento. Na verdade, um modelo de ciclo de vida iterativo e incremental pode ser visto como uma generalização da abordagem em cascata: o software é desenvolvimento em incrementos e cada incremento é desenvolvido em cascata (figura).
 +
 
 +
A abordagem incremental e iterativa somente é possível se existir um mecanismo para dividir os requisitos do sistema em partes, para que cada parte seja alocada a um ciclo de desenvolvimento. Essa alocação é realizada em função do grau de importância atribuído a cada requisito.
 +
 
 +
==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.
  
[[Imagem:iterativo e incremental.jpg|400px]]
+
Portanto, o âmbito do sistema não é alterado, mas o seu detalhe vai aumentando em iterações sucessivas.
[[Imagem:estrutura geral.jpg|400px]]
+
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.
  
==Vantagens==
+
[[Imagem:Ciclo_de_Vida_Iterativo.PNG|frame|center|'''Ciclo de Vida Iterativo''']]
  
==Desvantagens==
+
===O PROCESSO INCREMENTAL===
  
==Info Gráficos==
+
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.
  
[[Imagem:Ciclo_de_Vida_Iterativo.PNG|frame|left|'''Ciclo de Vida Iterativo''']]
+
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.
[[Imagem:Ciclo_de_Vida_Incremental.PNG|frame|left|'''Ciclo de Vida Incremental''']]
 
  
==Referências Bibliográficas==
 
{{ref_1|Princípio de Análise e Projeto de Sistemas com UML | |Eduardo BEZERRA| | Campus| 2002 |8535210326}}
 
  
==Iterativo e Incremental==
+
[[Imagem:Ciclo_de_Vida_Incremental.PNG|frame|center|'''Ciclo de Vida 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.
+
==Funcionamento==
 +
[[Imagem:Fases_do_RUP_-_portugues.jpg|frame| '''Fases do RUP''']]
 +
Em cada ciclo de desenvolvimento, podem ser identificadas as fases de análise, projeto, implementação e testes. Essa característica contrasta com a abordagem clássica, na qual as fases de análise, projeto, implementação e testes são realizadas uma única vez.
  
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.
+
Cada um dos ciclos considera um subconjunto de requisitos. Os requisitos são desenvolvidos uma vez que sejam alocados a um ciclo de desenvolvimento. No próximo ciclo, um outro subconjunto dos requisitos é considerado para ser desenvolvido, o que produz um novo incremento do sistema que contém extensões e refinamentos sobre o incremento anterior.
  
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.
+
Assim, o desenvolvimento evolui em versões, através da construção incremental e iterativa de novas funcionalidades até que o sistema completo esteja construído. Note que apenas uma parte dos requisitos é considerada em cada ciclo de desenvolvimento. Na verdade, um modelo de ciclo de vida iterativo e incremental pode ser visto como uma generalização da abordagem em cascata: o software é desenvolvimento em incrementos e cada incremento é desenvolvido em cascata (figura).
  
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.
+
A abordagem incremental e iterativa somente é possível se existir um mecanismo para dividir os requisitos do sistema em partes, para que cada parte seja alocada a um ciclo de desenvolvimento. Essa alocação é realizada em função do grau de importância atribuído a cada requisito.
  
Há vários benefícios em se adotar um processo iterativo controlado, entre os quais podemos destacar:
+
==Vantagens==
  
 
*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 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.
Linha 39: Linha 47:
 
*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.
 
*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.
+
*Reconhecimento de uma realidade freqüentemente ignorada: as necessidades 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.
 +
 
 +
[[Imagem:Proces3.gif]]
 +
 
 +
==Desvantagens==
 +
 
 +
*Dificuldade de gerenciamento. Isso ocorre porque as fases de do ciclo podem estar ocorrendo de forma simultânea. [[Imagem:Iterate.gif|right]]
 +
*O usuário pode se entusiasmar excessivamente com a primeira versão do sistema e pensar que tal versão já corresponde ao sistema como um todo.
 +
*Como todo modelo esta sujeito a riscos de projeto: 
 +
   
 +
O projeto pode não satisfazer aos requisitos do usuário.
 +
 
 +
A verba do projeto pode acabar.
 +
 
 +
O sistema de software pode não ser adaptável, manutenível ou extensível.
 +
 
 +
O sistema de software pode ser entregue ao usuário tarde demais.
 +
 
 +
==Modelo de um Processo==
 +
[[Imagem:Modelo_de_Projeto.PNG|right|350px]]
 +
'''DESENVOLVIMENTO 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 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 equipe envolvida pode refinar e melhorar pouco-a-pouco a qualidade e os detalhes do sistema envolvido.
 +
 
 +
[[Categoria:Trabalhos de Alunos]]
 +
 
 +
==Referências Bibliográficas==
 +
{{ref_1|Princípio de Análise e Projeto de Sistemas com UML | |Eduardo BEZERRA| | Campus| 2002 |8535210326}}
  
 
==Links Úteis==
 
==Links Úteis==
  
 
[http://pt.wikipedia.org/wiki/Ciclo_de_vida_do_projecto Ciclo de Vida - Wikipedia]
 
[http://pt.wikipedia.org/wiki/Ciclo_de_vida_do_projecto Ciclo de Vida - Wikipedia]

Edição atual tal como às 12h34min de 20 de outubro de 2006

O que é

Diagrama do Ciclo de Vida Iterativo e Incremental

O modelo de ciclo de vida incremental e iterativo foi proposto como uma resposta aos problemas encontrados no modelo em cascata. Um processo de desenvolvimento segundo essa abordagem divide o desenvolvimento de um produto de software em ciclos. Em cada ciclo de desenvolvimento, podem ser identificadas as fases de análise, projeto, implementação e testes. Essa característica contrasta com a abordagem clássica, na qual as fases de análise, projeto, implementação e testes são realizadas uma única vez.

Cada um dos ciclos considera um subconjunto de requisitos. Os requisitos são desenvolvidos uma vez que sejam alocados a um ciclo de desenvolvimento. No próximo ciclo, um outro subconjunto dos requisitos é considerado para ser desenvolvido, o que produz um novo incremento do sistema que contém extensões e refinamentos sobre o incremento anterior.

Assim, o desenvolvimento evolui em versões, através da construção incremental e iterativa de novas funcionalidades até que o sistema completo esteja construído. Note que apenas uma parte dos requisitos é considerada em cada ciclo de desenvolvimento. Na verdade, um modelo de ciclo de vida iterativo e incremental pode ser visto como uma generalização da abordagem em cascata: o software é desenvolvimento em incrementos e cada incremento é desenvolvido em cascata (figura).

A abordagem incremental e iterativa somente é possível se existir um mecanismo para dividir os requisitos do sistema em partes, para que cada parte seja alocada a um ciclo de desenvolvimento. Essa alocação é realizada em função do grau de importância atribuído a cada requisito.

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.

Ciclo de Vida Iterativo

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.

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.


Ciclo de Vida Incremental

Funcionamento

Fases do RUP

Em cada ciclo de desenvolvimento, podem ser identificadas as fases de análise, projeto, implementação e testes. Essa característica contrasta com a abordagem clássica, na qual as fases de análise, projeto, implementação e testes são realizadas uma única vez.

Cada um dos ciclos considera um subconjunto de requisitos. Os requisitos são desenvolvidos uma vez que sejam alocados a um ciclo de desenvolvimento. No próximo ciclo, um outro subconjunto dos requisitos é considerado para ser desenvolvido, o que produz um novo incremento do sistema que contém extensões e refinamentos sobre o incremento anterior.

Assim, o desenvolvimento evolui em versões, através da construção incremental e iterativa de novas funcionalidades até que o sistema completo esteja construído. Note que apenas uma parte dos requisitos é considerada em cada ciclo de desenvolvimento. Na verdade, um modelo de ciclo de vida iterativo e incremental pode ser visto como uma generalização da abordagem em cascata: o software é desenvolvimento em incrementos e cada incremento é desenvolvido em cascata (figura).

A abordagem incremental e iterativa somente é possível se existir um mecanismo para dividir os requisitos do sistema em partes, para que cada parte seja alocada a um ciclo de desenvolvimento. Essa alocação é realizada em função do grau de importância atribuído a cada requisito.

Vantagens

  • 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 necessidades 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.

Proces3.gif

Desvantagens

  • Dificuldade de gerenciamento. Isso ocorre porque as fases de do ciclo podem estar ocorrendo de forma simultânea.
    Iterate.gif
  • O usuário pode se entusiasmar excessivamente com a primeira versão do sistema e pensar que tal versão já corresponde ao sistema como um todo.
  • Como todo modelo esta sujeito a riscos de projeto:

O projeto pode não satisfazer aos requisitos do usuário.

A verba do projeto pode acabar.

O sistema de software pode não ser adaptável, manutenível ou extensível.

O sistema de software pode ser entregue ao usuário tarde demais.

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 estendida 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 equipe envolvida pode refinar e melhorar pouco-a-pouco a qualidade e os detalhes do sistema envolvido.

Referências Bibliográficas

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

Links Úteis

Ciclo de Vida - Wikipedia