Waterfall Methodology vs RUP
There are number of different software development methodologies used in the software industry today. Waterfall development method is one of the earliest software development methods. Waterfall software development methodology is a sequential model in which each phase is completed in full and followed in a fixed order. RUP (Rational Unified Process) is an adaptable process framework of iterative software development methodologies. RUP addresses several criticisms of Waterfall development such as rigidity.
What is Waterfall Methodology?
Waterfall methodology is one of the earliest software development models. As the name suggests, it is a sequential process in which progress flows through several phases from top to bottom, analogous to a waterfall. The phases of the Waterfall model are requirement analysis, design, development, testing and implementation. Business Analysts (or programmers them selves if it is a small organization) conducts the analysis phase by getting the system and business requirements from the customer of the project. Then, software architects (or senior software developers) come up with design documents depicting the structure and components of the proposed system. Then junior developers do the coding using the design documents. After the completion of the development, the product is handed over to the testing team for testing and verification processes. Finally, the product is implemented (or integrated) at the customer site and the project is signed-off. Important thing to note here is that each phase is fully completed before moving on to the next phase. This model was a direct result of simply adapting hardware-oriented development method (found in manufacturing and construction industries), at a time there was no formal model for software development.
What is RUP?
RUP belongs to the family of iterative software development methodologies. It was developed by Rational Software Corporation (of IBM) in 2003. It is actually an adaptable process framework (not a single concrete process), that can be customized by the development organization according to their needs. Slightly similar to waterfall, it has fixed phases as inception, elaboration, construction and transition. But unlike waterfall, RUP is an iterative process. The three strategies captured by RUP are a customizable process that guides development, automated tools to expedite the process, and services that help to adopt process and tools faster. These strategies intern captures the six best practices of software engineering (iterative development, managing requirements, component based architecture, visual software models, continuous verification and management of changes).
What is the difference between Waterfall Methodology and RUP?
Although Waterfall methodology and RUP have defined fixed phases, there are key differences between these two models. The main deference is that while Waterfall methodology is clearly a sequential process with prescribed steps in which current phase is completed before going to the next phase, RUP is an iterative process. Unlike the waterfall methodology, RUP develops the product in several stages based on feedback from the stockholders. Because each RUP iteration produces an executable release, the customers get to realize benefits much earlier than Waterfall. Finally, Waterfall methodology is a prescriptive concrete process, while RUP is an adaptable framework of software processes.