What Is A Waterfall Model?
The waterfall Model is a software development process developed by Dr. Winston Royce in 1970. In waterfall approach, the whole process of software development is divided into separate phases. The outcome of one phase acts as the input for the next phase sequentially. This means that any phase in the development process begins only if the previous phase is complete. The waterfall model is sequential design process in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, production/Implementation and maintenance.
What are some of the advantages of Waterfall Model?
- It allows for departmentalization and control because a schedule can be set with deadlines for each stage of development and a product can proceed through the stages one by one.
- It progresses through easy to comprehend phases.
- It is easy to manage due to the rigidity of the model- each phase has specific deliverable and a review process.
- In this model phases do not overlap as they are completed one at a time.
What are some of the Disadvantages of Waterfall Model
- The model is not suitable where the project requirements vary from time to time.
- Not applicable where the project is complex and object oriented.
- In this model once a product has reached testing stage, it is difficult to go back and change something that was not well-thought out in the concept initiation stage.
- It is very difficult to estimate time and cost for each phase of the development process.
What An Incremental Model?
An incremental model is a model of software development where the product is, analyzed, designed, implemented and tested incrementally until the product is finished. It involves both development and maintenance. The product is defined as finished when it satisfies all of its requirements. Each iteration passes through the requirements, design, coding and testing phases. And each subsequent release of the system adds function to the previous release until all designed functionally has been implemented.
What Are Some of The Advantages of Incremental Model?
- The software product is produced quickly during the software life cycle.
- The process is very much flexible as it is easy to change requirements and scope.
- Through the development stage changes can easily be made.
- Errors are easy to detect.
- Customers can give feedback on the product during the stages of development.
- It is less costly than others.
What Are Some of The Disadvantages of Incremental Model?
- A good planning design is mandatory.
- Each iteration phase is rigid and does not overlap each other.
- Rectifying a problem in one unit requires correction in all the other units and consumes a lot of time.
- Problems may occur due to system architecture because not all requirements are collected up front.
What Is A Spiral Model?
The spiral model was first explained by Barry Behm in his 1986 paper. The spiral model is a risk-driven software development process model whereby based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall or evolutionary prototyping. Each phase in spiral model begins with the client reviewing the progress.
What Some Of The Advantages Of Spiral Mode?
- It is easy to make changes and additional functionality to a product.
- Estimation of costs is simple because prototype building is done in small sets.
- Making changes continuously helps to manage risk.
- Features and functionality are added systematically and therefore the process of development is faster.
- Customers have an opportunity to give feedback.
What Are Some Of The Disadvantages Of Spiral Model?
- The model is very expensive for small projects.
- The model entails intermediate phases with too much documentation.
- The stages of development need to be followed religiously.
- It also requires an expert in risk assessment.
What Is A RAD Model?
RAD (Rapid Application Development Model) is a type of incremental model whereby the components or functions are developed in parallel as if they were mini projects. The developments are time boxed, delivered and then assembled into a working prototype.
What are Some of the Disadvantages of RAD Model?
- Flexible as important changes can be made midway or after testing phase.
- It is most ideal in cases where the goal of the project is to reduce overall project risk.
- It adaptable and flexible changes.
- Deliverables can easily be transferred because scripts, intermediate codes and high-level abstractions are used.
- There is possibly of lesser errors due to prototyping.
- There is reduction of manual coding due to use of code generators and code re-use.
- Productivity is high, due to less number of people.
What Are Some Of The Disadvantages of RAD Model?
- It is expensive for small projects.
- Some applications may not be compatible with RAD.
- Not suitable in projects with high technical risks.
- Requires highly skilled designer or developer.
Also Read: Difference Between Cohesion And Coupling
Difference between Waterfall, Incremental, Spiral And RAD model In Tabular Form
|PROPERTIES OF THE MODEL||WATERFALL MODEL||INCREMENTAL MODEL||SPIRAL MODEL||RAD MODEL|
|Planning In Early Stages||Yes||Yes||Yes||No|
|Returning To Earlier Phase||No||Yes||Yes||Yes|
|Handle Large Projects||Not Appropriate||Not Appropriate||Appropriate||Not Appropriate|
|Comprehensive Documentation||Necessary||Not Very Much Necessary||Yes Very Much Necessary||Limited|
|Cost||Less expensive.||Less Expensive.||Expensive.||Less Expensive.|
|Requirement Specification||Beginning.||Beginning.||Beginning.||Time boxed Release.|
|Adaptability and flexibility to change.||Very much difficult.||Easy.||Easy.||Easy.|
|User Involvement||Only at the beginning.||Intermediate.||High.||Only at the beginning.|
|Maintenance||Least maintainable.||Maintainable.||Maintainable.||Easily Maintained.|
|Risk Involved||High.||Low.||Medium to High Risk.||Low.|
|Framework Type||Linear.||Linear and Iterative.||Linear and Iterative.||Linear.|
|Testing Stage||After completion of coding phase.||After every iteration.||At the end of the engineering phase.||After completion of coding.|
|Overlapping Phase||No||Yes (There is a parallel development).||No||Yes|
|Re-usability||Least Possible.||Re-usable to some extent.||Re-usable to some extent.||Re-usable.|
|Working Software Availability||At the end of the life-cycle.||At the end of every iteration.||At the end of every iteration.||At the end of the life cycle.|
|Objective||High Assurance.||Rapid Development.||High Assurance.||Rapid Development.|
|Team Size||Large Team.||Not Very Large Team.||Large Team.||Small Team.|
|Customer Control Over Administration||Very low.||Yes.||Yes.||Yes.|