Sei sulla pagina 1di 5

Processo incremental e iterativo

Hoje, considerado errado ter um processo que gere um big bang.No 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 vrias iteraes no tempo) e incremental (gerar novas verses incrementadas a cada release).

Descrio do processo incremental e iterativo


O desenvolvimento de um produto comercial de software uma grande tarefa que pode ser estendida por vrios meses, possivelmente um ano ou mais. Por isso, mais prtico dividir o trabalho em pedaos menores ou iteraes. Cada iterao resultar num incremento. Iteraes so passos em fluxo de trabalho e incrementos so crescimentos do produto. O princpio 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 iterao deve-se identificar a viso global e determinar a viabilidade econmica do sistema, efetuar a maior parte da anlise e um pouco de desenho e implementao. Numa segunda iterao, deve-se concluir a anlise, fazer uma parte significativa do desenho e um pouco mais de implementao. Numa terceira iterao, deve-se concluir o desenho, fazer-se parte substancial da implementao, testar e integrar um pouco, etc. Ou seja, a principal consequncia da aproximao iterativa que os produtos finais de todo o processo vo sendo amadurecidos e completados ao longo do tempo, mas cada iterao produz sempre um conjunto de produtos finais. A cada iterao feito: Anlise (refinamento de requisitos, refinamento do modelo conceitual) Projeto (refinamento do projeto arquitetural, projeto de baixo nvel) Implementao (codificao e testes) -

Transio para produto (documentao, instalao, ...)

Vantagens do processo incremental e iterativo


Possibilidade de avaliar mais cedo os riscos e pontos crticos do projeto, e identificar medidas para os eliminar ou controlar; Reduo dos riscos envolvendo custos a um nico incremento. Se a equipa que desenvolve o software precisar repetir a iterao, a organizao perde somente o esforo mal direcionado de uma iterao, no o valor de um produto inteiro; Definio de uma arquitetura que melhor possa orientar todo o desenvolvimento; Disponibilizao natural de um conjunto de regras para Melhor controlar os inevitveis pedidos de alteraes futuras; Permite que os vrios intervenientes possam trabalhar mais efetivamente pela interao e partilha de comunicao da resultante; - Existe sempre algo para entregar ao cliente apressado (a ltima iterao); - Os requisitos mudam com o tempo e um processo iterativo e incremental mantm frequentes os contatos com o cliente, o que ajuda a manter os requisitos sincronizados; - Reduo do risco de lanar o projeto no mercado fora da data planeada. Identificando os riscos numa fase inicial, o esforo despendido para gerenci-los ocorre cedo, quando as pessoas esto sob menos presso do que numa fase final de projeto; - Acelerao do tempo de desenvolvimento do projeto como um todo, porque a equipa que desenvolve o software trabalha de maneira mais eficiente quando pretende alcanar 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


*Aps termos pesquisado o tema, no encontrmos referncia a qualquer tipo de desvantagens na aplicao e utilizao do Processo incremental e iterativo. Por esse motivo, no

apresentado qualquer tipo de desvantagem sobre este processo no nosso trabalho.

Desenvolvimento iterativo e incremental


O Desenvolvimento Iterativo e Incremental um dos clssicos modelos de processo de desenvolvimento de software criado em resposta s fraquezas do modelo em cascata, o mais tradicional. Os dois padres mais conhecidos de sistemas iterativos de desenvolvimento so o RUP (Processo Unificado da Rational) e o Desenvolvimento gil de software. Por isso o desenvolvimento iterativo e incremental tambm uma parte essencial da Programao Extrema e outros.

Definies Incremental e Iterativo


Desenvolvimento Incremental uma estratgia de planejamento estagiado em que vrias partes do sistema so desenvolvidas em paralelo, e integradas quando completas. No implica, requer ou pressupe desenvolvimento iterativo ou em cascata ambos so estrategias de retrabalho. A alternativa ao desenvolvimento incremental desenvolver todo o sistema com uma integrao nica. Desenvolvimento iterativo uma estrategia de planejamento de retrabalho em que o tempo de reviso e melhorias de partes do sistema pr-definido. Isto no pressupe desenvolvimento incremental, mas funciona muito bem com ele. Uma diferena tpica que a sada de um incremento no necessariamente assunto de um refinamento futuro, e seu teste ou retorno do usurio no utilizado como entrada para planos de reviso ou especificaes para incrementos sucessivos. Ao contrario, a sada de uma iterao examinada para modificao, e especialmente para reviso dos objetivos das iteraes sucessivas.

Ciclo de vida
A idia bsica por trs da abordagem iterativa desenvolver um sistema de software incremental, permitindo ao desenvolvedor tirar vantagem daquilo que foi aprendido durante a fase inicial de desenvolvimento de uma verso do sistema. O aprendizado ocorre simultaneamente tanto para o desenvolvedor, quanto para o usurio do sistema. Os passos fundamentais do processo esto em iniciar o desenvolvimento com um subconjunto simples de Requisitos de Software e iterativamente alcanar evolues subseqentes das verses at o sistema todo estar implementado. A cada iterao, as modificaes de projeto so feitas e novas funcionalidades so adicionadas. O projeto em si consiste da etapa de inicializao, iterao e da lista de controle do projeto. A etapa de inicializao cria uma verso base do sistema. O objetivo desta implementao inicial criar um produto para que o usurio possa avaliar. Ele deve oferecer um exemplo dos aspectos chave do problema e prover uma soluo que seja

simples o bastante para que possa ser compreendida e implementada facilmente. Para guiar o processo iterativo, uma lista de controle de projeto criada. Ela conter um registro de todas as tarefas que necessitam ser realizadas. Isto inclui itens tais como novas caractersticas a serem implementadas e reas para serem projeto na soluo atual. A lista de controle deve ser continuamente revisada como um resultado da fase de anlise. A etapa iterativa envolve o re-projeto e implementao das tarefas da lista de controle do projeto e a anlise da verso corrente do sistema. O objetivo para o projeto de implementao de qualquer iterao ser simples, direto e modular, preparado para suportar re-projeto neste estgio ou como uma tarefa a ser adicionada na lista de controle do projeto. O cdigo pode, em alguns casos, representar uma fonte maior da documentao do sistema. A anlise de uma interao baseada no feedback do usurio, e facilidades da anlise do programa disponveis. As estruturas de anlise envolvidas so a modularidade, usabilidade, reusabilidade, eficincia e obteno dos objetivos. A lista de controle do projeto modificada luz dos resultados da anlise. Linhas bsicas para direcionar a implementao e anlise incluem:

Qualquer dificuldade no projeto, codificao e teste de uma modificao deve ser sinalizada para que possa ser re-projetada ou recodificada. Modificaes devem ser ajustadas facilmente em mdulos isolados e fceis de encontrar. Se no atendem a isso, algum re-projeto dever ser necessrio. Modificaes de tabelas devem ser especialmente fceis de fazer. Se qualquer modificao no rpida e fcil de ser feita, indica-se a realizao de um reprojeto. Modificaes devem ser fceis para serem feitas na forma de iteraes. Se elas no so, haver um problema bsico tal como um projeto falho ou uma proliferao de correes. Correes devem normalmente ser permitidas por somente uma ou duas iteraes. Correes devem ser necessariamente para evitar re-projeto durante uma fase de implementao. A implementao existente deve ser analisada freqentemente para determinar quo bem esto sendo atingidos os objetivos do projeto. As ferramentas de anlise de programa devem ser usadas sempre que necessrio para ajudar na anlise de implementaes parciais. Reclamaes do usurio devem ser solicitadas e analisadas para registrar as deficincias da implementao atual.

Caractersticas
O uso de anlise e medies como guia do processo de aprimoramento uma das maiores diferenas entre o desenvolvimento iterativo e o atual Desenvolvimento gil de software. Isto prov suporte determinante para a efetividade do processo de qualidade do produto, permitindo estudar o processo para um ambiente em particular. As atividades de medio e anlise podem ser adicionadas a mtodos de desenvolvimento gil existentes. De fato, o contexto das interaes mltiplas prov vantagens no uso de medies. Medies so algumas vezes difceis de serem compreendidas no valor absoluto, mas

mudanas relativas nas medies ao longo da evoluo de um sistema podem ser muito instrutivas como base para uma anlise. Por exemplo, um vetor de medies, m1, m2, ... mn, pode ser definido para caracterizar vrios aspectos do produto em algum ponto no tempo, por exemplo, esforo para dados, mudanas, defeitos, atributos lgicos, fsicos e dinmicos, consideraes do ambiente, entre outros. Portanto, um observador pode dizer como o produto se caracteriza quanto ao tamanho, complexidade, acoplamento e coeso, se esto aumentando ou diminuindo em relao ao tempo. Tais atributos podem ser monitorados em relao a mudanas de vrios aspectos do produto ou podem prover parmetros para a medio de sinais de potenciais problemas e anomalias.

ITERATIVO x INTERATIVO
O nome iterativo (fazer de novo; REITERAR; REPETIR) e interativo (atividade ou trabalho compartilhado, em que existem trocas e influncias recprocas) se confundem em funo at dos seus significados. Se imaginarmos o desenvolvimento de sistemas como puramente a criao de programas dentro da rea de TI, sem a interveno dos usurios, at que eles estejam coerentes com os requisitos de software, o correto estarmos usando a palavra ITERATIVO, devido a repetio dessa ao. No entanto, se imaginarmos que a cada repetio deve-se interagir com os usurios para que o sistema cada vez mais corresponda as expectativa deles, o correto seria usar, a rigor, a palavra INTERATIVO. Mas, por conveno (ou por repetio), a grande maioria dos autores de Engenharia de Software adotam a palavra ITERATIVO para identificar este tipo de desenvolvimento.

Potrebbero piacerti anche