Metodologia Waterfall vs RUP
Atualmente, existem diversas metodologias de desenvolvimento de software usadas na indústria de software. O método de desenvolvimento em cascata é um dos primeiros métodos de desenvolvimento de software. A metodologia de desenvolvimento de software Waterfall é um modelo sequencial no qual cada fase é concluída na íntegra e seguida em uma ordem fixa. O RUP (Rational Unified Process) é uma estrutura de processo adaptável de metodologias iterativas de desenvolvimento de software. O RUP aborda várias críticas ao desenvolvimento do Waterfall, como rigidez.
O que é a metodologia Waterfall?
A metodologia Waterfall é um dos primeiros modelos de desenvolvimento de software. Como o nome sugere, é um processo seqüencial no qual o progresso flui através de várias fases de cima para baixo, semelhante a uma cascata. As fases do modelo Waterfall são análise de requisitos, design, desenvolvimento, teste e implementação. Os analistas de negócios (ou os próprios programadores, se for uma organização pequena) conduz a fase de análise, obtendo os requisitos de sistema e de negócios do cliente do projeto. Em seguida, os arquitetos de software (ou desenvolvedores de software sênior) apresentam documentos de design que descrevem a estrutura e os componentes do sistema proposto. Em seguida, os desenvolvedores juniores fazem a codificação usando os documentos de design. Após a conclusão do desenvolvimento, o produto é entregue à equipe de teste para processos de teste e verificação. Por fim, o produto é implementado (ou integrado) no local do cliente e o projeto é finalizado. O importante a observar aqui é que cada fase está totalmente concluída antes de passar para a próxima fase. Esse modelo foi o resultado direto da simples adaptação do método de desenvolvimento orientado a hardware (encontrado nas indústrias de manufatura e construção), na época não havia modelo formal para o desenvolvimento de software.
O que é o RUP?
O RUP pertence à família de metodologias iterativas de desenvolvimento de software. Foi desenvolvido pela Rational Software Corporation (da IBM) em 2003. Na verdade, é uma estrutura de processo adaptável (não um único processo concreto), que pode ser customizada pela organização de desenvolvimento de acordo com suas necessidades. Um pouco semelhante à cascata, possui fases fixas como início, elaboração, construção e transição. Mas, diferentemente da cascata, o RUP é um processo iterativo. As três estratégias capturadas pelo RUP são um processo personalizável que guia o desenvolvimento, ferramentas automatizadas para agilizar o processo e serviços que ajudam a adotar processos e ferramentas mais rapidamente. O estagiário dessas estratégias captura as seis melhores práticas de engenharia de software (desenvolvimento iterativo, requisitos de gerenciamento, arquitetura baseada em componentes, modelos de software visual, verificação e gerenciamento contínuos de alterações).
Qual é a diferença entre a Metodologia Waterfall e o RUP?
Embora a metodologia Waterfall e o RUP tenham definido fases fixas, existem diferenças importantes entre esses dois modelos. A principal deferência é que, embora a metodologia Waterfall seja claramente um processo seqüencial com etapas prescritas nas quais a fase atual é concluída antes de passar para a próxima fase, o RUP é um processo iterativo. Diferentemente da metodologia em cascata, o RUP desenvolve o produto em várias etapas, com base no feedback dos acionistas. Como cada iteração do RUP produz uma versão executável, os clientes obtêm benefícios muito antes do que o Waterfall. Finalmente, a metodologia Waterfall é um processo concreto prescritivo, enquanto o RUP é uma estrutura adaptável de processos de software.