What is Waterfall Model in Software Engineering

What is Waterfall Model in Software Engineering

There are various models followed in SDLC  and the most basic and the oldest form is The Waterfall Model in software Engineering which forms a topic of this Blog.  In this Blog, we will discuss what is Waterfall model in Software Engineering the exact definition and the meaning of that definition in an easy and understandable form, we will discuss what is the Advantages and Disadvantages of the Waterfall model in software engineering. So let’s Start 

Waterfall model

Waterfall Model is also known as Linear Sequential model. It suggests a systematic sequential approach to software development that starts at the system level and progress through analysis, design, coding, testing, and maintenance. The different phases of the Waterfall model in software engineering are Feasibility study, Requirement analysis and specification, Designing, Coding and Testing, Integration testing and System testing, Maintenance.

Waterfall model is the simplest model of software development paradigm. All the Phases of SDLC will function one after another in a linear manner. That is when the first phase is finished then only the second phase will start and so on.

Software Engineering tells us that software development should follow a good software development methodology or a software development model. A software development methodology or a software development life cycle models divide software into various distinct phases and these phases focus to achieve one main goal. These forms phases form a software development life cycle also known as SDLC.

The Waterfall model is a sequential(non-iterative) design process, used for software development.

Points to be remembered

Now I think you know what is waterfall model? But if we learn it via some easy points then it will be much better for you get easily what I want to explain to you. So, for better understanding, I am writting here some key points and the explanation of that point. 

  • First SDLC Model 

    The waterfall model was first SDLC model introduced to distract the software development. The first knew presentation describing the use of such phases in software engineering was held by Herbert D. Bennington at the Symposium on Advanced Programming Methods for Digital Computers on 29 June 1956.

  • Linear Sequential Model

    The Waterfall model is also known as Linear Sequential Model. What it means is that the development process is usually unit directional and flows through the down through the different phases of software development. This downward flowing concept of software development is what it gives the names of the Waterfall model. The waterfall model has its origin in the manufacturing and construction industries. Where all tasks are done sequentially one phase after the other. 
  • Simple To Understand and easy to implement

    The statement “Simple To understand and easy to implement” what it means? 
    Since in waterfall model the flow is sequential this model is very simple to understand and easy to implement.  

Waterfall

what is waterfall model in software engineering

See this picture the beautiful gift from nature. Hey, I am talking about the waterfall don’t see the girl who is dancing. 
Now see the image given below.

waterfall model in software engineering phases

Waterfall model Phases

See this image. Just as water in a waterfall after having flow down cannot flow back so once a phase is complete the activities brought in it and output produced in this phase are considered to be final. So, it cannot come back its previous phase.

The phases starting from feasibility study to the integration & system testing are known as development phases. The software is developed during the development phase and at the completion of the development phase, the software is delivered to the customer. After the delivery of software, customer starts to use the software as the customer starts to use the software changes to it become necessary when it comes under the maintenance phase. 

Now we brifely describe the phase of waterfall model are:-

 

  1. Requirement Analysis

    The analyst must understand the information domain for the software as well as required function, behavior, performance and interface. Requirements for both the system and software are documented and reviewed with the customer.

    The First step (phase) in the waterfall model is Requirement Analysis. The requirements collected from customers are analyzed and it technical document is created as the baseline for creating software. The requirements are classified as functional and non-functional requirements. The requirements analysis phase generate some documents like the software requirements specification. These documents are reviewed and assigned of after which the project moves into the Design phase.

  2. Design

    The Design process translates requirements into the representation of the software. That can be accessed for quality before coding starts. Like requirements, the design is documented and becomes the part of the software configuration.

    After Requirement analysis phase the project moves in the Design phase. In the Design phase, the Design team create a blueprint for software using the required documents and create the design documents like high-level design document and low level designed documents. Once the design phase is over the project will move into the Implementation phase.

  3. Implementation

    The Design must be translated into machine language from the code generation to perform this task.

    After completing the design phase the project move to the Implementation phase. The developer converts the design into code. The developer will code modules which are then integrated into a complete software the implementation figure will generate the developer software. A working application according to user requirements.

  4. Testing

    Once the code has been generated programming testing starts. The testing process focuses on the logical internal of the software to ensure that defined input will produce an actual result that agrees with the required result.

    After the Implementation phase, the developer team hands it over to the Testing team. Testing as expected will perform testing on the developed software to ensure that it conforms to the requirement. The validation and verification activities done by the testing team will ensure the quality of the product. Once the testing is finished testing it will be signed off to the product. The product will now move to the Deployment phase.

  5. Deployment 

    After completing the testing process in the testing phase the project is moved in the Deployment phase. The team of expert deploys the product in the real world without any cases. After the deployment phase, the product will be in the Maintenance phase.

  6. Maintenance

    The software will then undergo after it is delivered to the customer after the change will occur because errors have been encountered. Maintenance is required.
    In the maintenance phase regularly updated and issues are passed by team assign to perform maintenance activities.
    If any requirement of change then the project will again go back to the Requirement analysis phase and again has to flow down all the phases until the maintenance phase.  Similarly if design changes then the project will move back to the appropriate phase and solve the issues.
    Maintenance is required in the following three types of situation:-

    1) Corrective Maintenance:-  This type of maintained is used to correct errors that were not discovered during the product development phase.

    2) Perfective Maintainece: This type of maintained is used to into the performance of the system or enhance the functionality of the system based on customer request.
    3) Adaptive Maintainece:- Adaptive Maintenance is usually required for porting the software to work in a new environment.

So, this is how the waterfall model of software development works. Now have a look at some of the advantages and disadvantages of the Waterfall model. 

Advantages of the Waterfall Model

Our question what is waterfall model in Software Engineering? is now going to get complete. We discussed the waterfall model, its phases. Now, let us discuss the advantages of the waterfall model in software engineering. So, let’s start.

  1. Easy to use.
  2. Easy to understand.
  3. Provide Structure to the inexperienced staff.

    For the fresher in the project management in software development projects is the waterfall model in software engineering is suitable and very helpful.

  4.  Very Clear on the milestone.
  5. Well understood

    Milestones will segregate between one phase to another phase. So, whenever while crossing one milestone that means it cannot revert back again. So in our project management, this milestone will be denoted by activity with the duration zero. But here actually this milestone is denoting that difference.

  6. It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.

Disadvantages of Waterfall Model in Software Engineering

Our question what is waterfall model in Software Engineering? is now going to get complete. We discussed the waterfall model, its phases. Now, let us discuss the disadvantages of the waterfall model in software engineering. So, let’s start.

  1. No Feedback path: Just as water in a waterfall after having flow down cannot flow back so once a phase is completed the activities brought in it and output produced in this phase are considered to be final. So, it cannot come back to its previous phase.
  2. Difficult to accommodate the change request: This model assumes that all the customer requirements can be completely and correctly defined at the beginning of the project. But it is hard to archive it, Because of customer requirement usually, keep on changing with time. So, in this modle, it becomes difficult to accommodate any requirement change request made by the customer after the requirement specification phase is complete.
  3. Inefficient error correction: This model is used to integrate code and testing task until it is very late when the problems are harder to resolve.
  4. No overlapping of Phases: This model recommends that the phases are arranged sequentially. 
  5. We can’t take new requirements into consideration during the development phase. The developer must be known all the requirements in upfront.
  6. Very little opportunity for the customer to preview the system(until it may be too late).
  7. Waterfall model is not good for the object-oriented program( OOP).

Thanks for reading our article ” what is waterfall model in software engineering“. Hope that you where well understood if there is some problem or any query or question please comment down I will answer. 

Before this model, you should have well knowledge about what is software engineering. For that please click here what is software engineering.

 

Speak Your Mind

*