{"id":3516,"date":"2021-06-08T13:10:31","date_gmt":"2021-06-08T07:40:31","guid":{"rendered":"https:\/\/www.hestabit.com\/blog\/?p=3516"},"modified":"2021-10-14T13:21:31","modified_gmt":"2021-10-14T07:51:31","slug":"waterfall-model-in-sdlc","status":"publish","type":"post","link":"https:\/\/www.hestabit.com\/blog\/waterfall-model-in-sdlc\/","title":{"rendered":"Waterfall Model in SDLC: Processes, Advantages and Disadvantages"},"content":{"rendered":"\n<p>You might have heard about Software Development Life Cycle (SDLC). It is a process consisting of planned activities to design, develop and test highly performing software. The primary aim of SDLC is to produce high-quality software that meets customer expectations and requirements. However, here we are not going to talk about SDLC. For that, you can refer to our \u2018<a href=\"https:\/\/www.hestabit.com\/blog\/software-development-lifecycle\/\">Mastering the Software Development LifeCycle Methodologies<\/a>\u2019 blog. Today, we will start with the Waterfall methodology, the first Software Development Life Cycle model out there. It is one of the approaches to complete the life cycle of software.<\/p>\n\n\n\n<p>In this article, we will discuss:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>What is the Waterfall model?<\/li><li>Where does this concept come from?<\/li><li>The sequential phases in the Waterfall model<\/li><li>When to use the Waterfall model?<\/li><li>Ways in which the Waterfall model can be advantageous.<\/li><li>The limitations to this approach<\/li><\/ul>\n\n\n\n<h2 class=\"has-vivid-cyan-blue-color has-text-color wp-block-heading\">Waterfall Model: An Overview<\/h2>\n\n\n\n<p>The waterfall model is sequential and widely used in the software industry that divides software development processes into pre-defined phases. It is an understandable and easily applicable approach. The basic concept behind this model is that all the stages should process one by one in a pre-defined sequence. However, it would be best if you kept in mind that the next phase should not begin before completing the previous one, and there should be no overlapping of the phases. That\u2019s why this SDLC waterfall approach is also known as a linear-sequential life cycle model.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1000\" height=\"523\" src=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/waterfall-model-.png\" alt=\"\" class=\"wp-image-3523\" srcset=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/waterfall-model-.png 1000w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/waterfall-model--300x157.png 300w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/waterfall-model--768x402.png 768w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/waterfall-model--765x400.png 765w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/waterfall-model--455x238.png 455w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/waterfall-model--267x140.png 267w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<h3 class=\"has-vivid-cyan-blue-color has-text-color wp-block-heading\">History of Waterfall Model: When does it all start?<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>On 29 June 1956, Herbert D. Benington delivered the first presentation describing the use of such phases in software engineering. In 1983, the paper was re-published with Benington\u2019s foreword mentioning that he organised the stages in the model on purpose based on the specialisation of tasks. However, he didn&#8217;t use the term \u201cwaterfall\u201d in his paper.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>In 1970, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Winston_W._Royce\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Winston W. Royce<\/a> gave the first formal, detailed diagram of the process cited in his article that later came to be known as the Waterfall model. He introduced five sequential steps that he felt were essential to eliminate most of the development risks associated with the unchanged waterfall approach.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Although he felt that his model has some flaws, it became the initial point when describing a \u201cwaterfall\u201d approach. A paper by Bell and Thayer (1976) believed to be the earliest case of using the term \u201cWaterfall model\u201d.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>In 1985, <a href=\"https:\/\/www.defense.gov\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">U.S.S.D. (The United States Department of Defence)<\/a> used this approach in <a href=\"https:\/\/en.wikipedia.org\/wiki\/DOD-STD-2167A\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">DOD-STD-2167A (Department of Defense Standard 2167A)<\/a>, United States defence standard. It states that the contractor shall implement an SDLC that includes the following six stages: Software Requirement Analysis, Preliminary Design, Detailed Design, Coding and Unit Testing, Integration, and Final Testing.<\/li><\/ul>\n\n\n\n<h3 class=\"has-vivid-cyan-blue-color has-text-color wp-block-heading\">The Different Sequential Phases In The Waterfall Model<\/h3>\n\n\n\n<p>As already discussed, in the SDLC Waterfall approach, the whole process of software development is split into a sequential series of phases. Typically, the result of one phase acts as the input for the upcoming phase. The following illustration represents different sequential stages of the Waterfall model. Since the diagrammatic representation shows the steps falling from a higher level to a lower level, like a waterfall cascade, this model gets the name \u2018Waterfall\u2019.<\/p>\n\n\n\n<h3 class=\"has-vivid-cyan-blue-color has-text-color wp-block-heading\">Activities involved in different stages of Waterfall Model<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Requirement and Analysis<\/strong><\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1000\" height=\"523\" src=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Analysis-and-Specifications.png\" alt=\"\" class=\"wp-image-3522\" srcset=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Analysis-and-Specifications.png 1000w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Analysis-and-Specifications-300x157.png 300w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Analysis-and-Specifications-768x402.png 768w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Analysis-and-Specifications-765x400.png 765w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Analysis-and-Specifications-455x238.png 455w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Analysis-and-Specifications-267x140.png 267w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Understanding the exact requirements of the customers and documenting them correctly<\/li><li>Noting all the functions, performance and connecting requirements with the customer and developer.<\/li><li>Brainstorming and studying the requirements by going through a step-by-step analysis<\/li><li>Creating Software requirement Specification (SRS), a detailed document describing what the system will do in the common language<\/li><li>This phase talks about the \u201cwhat\u201d of the system and now \u201chow.\u201d<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>System Design<\/strong><\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1000\" height=\"523\" src=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/design.png\" alt=\"\" class=\"wp-image-3521\" srcset=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/design.png 1000w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/design-300x157.png 300w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/design-768x402.png 768w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/design-765x400.png 765w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/design-455x238.png 455w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/design-267x140.png 267w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Transforming the requirements collected in the SRS into a suitable form which allows further coding in a programming language.<\/li><li>Describing the overall software structure with detailed design.<\/li><li>Documenting the design, also known as Software Design Document (SDD).<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Implementation<\/strong><\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1000\" height=\"523\" src=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Implementation.png\" alt=\"\" class=\"wp-image-3520\" srcset=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Implementation.png 1000w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Implementation-300x157.png 300w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Implementation-768x402.png 768w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Implementation-765x400.png 765w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Implementation-455x238.png 455w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/Implementation-267x140.png 267w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Implementing the design as per SDD by developing small programs called \u2018units\u2019.<\/li><li>Testing the functionality of the codes through Unit testing.<\/li><li>Integrating the codes in the next phase.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Integration and System Testing<\/strong><\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1000\" height=\"523\" src=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/testing.png\" alt=\"\" class=\"wp-image-3519\" srcset=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/testing.png 1000w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/testing-300x157.png 300w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/testing-768x402.png 768w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/testing-765x400.png 765w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/testing-455x238.png 455w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/testing-267x140.png 267w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Integrating the unit tested codes into a complete system<\/li><li>Functional and Non-functional testing to ensure that the system meets the requirements.<\/li><li>Determining the quality of the end product through comprehensive system testing.<\/li><li>Reporting the issues if found any anomalies.<\/li><li>Tracking the testing progress through tools like <a href=\"https:\/\/en.wikipedia.org\/wiki\/Application_lifecycle_management\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">ALM<\/a>, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Traceability_matrix\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">traceability matrix<\/a>, etc.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>System Deployment<\/strong><\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1000\" height=\"523\" src=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/System-Deployment.png\" alt=\"\" class=\"wp-image-3518\" srcset=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/System-Deployment.png 1000w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/System-Deployment-300x157.png 300w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/System-Deployment-768x402.png 768w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/System-Deployment-765x400.png 765w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/System-Deployment-455x238.png 455w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/System-Deployment-267x140.png 267w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Deploying the final tested product into the respective customer environment or in the market.<\/li><li>Performing a sanity check in the environment after <a href=\"https:\/\/www.hestabit.com\/mobile-app-development-company\">software deployment <\/a>to check whether it functions well or not.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>System Maintenance<\/strong><\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1000\" height=\"523\" src=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/maintenance.png\" alt=\"\" class=\"wp-image-3517\" srcset=\"https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/maintenance.png 1000w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/maintenance-300x157.png 300w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/maintenance-768x402.png 768w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/maintenance-765x400.png 765w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/maintenance-455x238.png 455w, https:\/\/www.hestabit.com\/blog\/wp-content\/uploads\/2021\/06\/maintenance-267x140.png 267w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Ensuring that the software is performing well in the respective environment.<\/li><li>Providing maintenance and operational support to the customers after the deployment and installation of the software.<\/li><li>Noting and <a href=\"https:\/\/www.hestabit.com\/blog\/customer-retention-fix-your-leaky-bucket-model\/\" target=\"_blank\" rel=\"noreferrer noopener\">fixing the issues encountered by the customers<\/a>, if any.<\/li><li>Updating the system with the latest features.<\/li><\/ul>\n\n\n\n<h3 class=\"has-vivid-cyan-blue-color has-text-color wp-block-heading\">When Can You Use The Waterfall Model?<\/h3>\n\n\n\n<p>Although the Waterfall model is one of the simplest and straightforward SDLC approaches, you need to consider that you can not use it in certain situations. Below are the cases in which you can use the Waterfall methodology to get the best results:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>When the requirements are clear and well-documented.<\/li><li>With conditions that are constant and not changing from time to time.<\/li><li>When the project is small and straightforward.<\/li><li>The projects in which the technologies and tools used are consistent.<\/li><li>When the deployment environment is stable.<\/li><li>Ample resources with expert assistance are available for the products.<\/li><\/ul>\n\n\n\n<h3 class=\"has-vivid-cyan-blue-color has-text-color wp-block-heading\">What Are The Advantages of The Waterfall Model?<\/h3>\n\n\n\n<p>One of the best things about the Waterfall model is that everything happens in a sequence. It means one stage functions only when the resources in the previous stage complete their task successfully. Due to departmentalisation, every phase has control on their level to ensure that one can efficiently perform the functions on their respective phase. Here are some of the significant advantages of Waterfall Model that can make the software development process easy for you:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>It is one of the simplest models to access and implement.<\/li><li>You require a very minimal number of resources to use this approach.<\/li><li>Each phase has its own review process to ensure that everything until the previous stage is all good before moving to the next level.<\/li><li>It is a suitable approach for smaller projects or where customer requirements are well-defined and unambiguous.<\/li><li>There is no sense of hurry or carelessness. All the phases process and complete one at a time.<\/li><li>Since all the phases have different functions and responsibilities to perform, assigning tasks becomes pretty easy.<\/li><li>You can quickly determine the software release date and the total estimated cost of the final product before completing the development process.<\/li><li>Along with the final testing of the product, unit testing done in the middle of the development process ensures to examine the individual modules of the complete system.<\/li><li>Elaborated documentation done at every phase helps understand the issues (if any) and figure out the solutions to resolve them.<\/li><li>The operational and maintenance phase helps fix the problems faced by the customers, which helps get positive feedback from them.<\/li><\/ol>\n\n\n\n<h3 class=\"has-vivid-cyan-blue-color has-text-color wp-block-heading\">What Are The Disadvantages of The Waterfall Model<\/h3>\n\n\n\n<p>Undoubtedly, the SDLC Waterfall approach can be a beneficial software development model for the product owners, yet there are some limitations of this model too. Below is the list of disadvantages of Waterfall Model you should know about before choosing it as your SDLC approach:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>The waterfall model is not suitable for projects that are large or complex.<\/li><li>You can not use this approach when the requirements are inconsistent or unclear.<\/li><li>It becomes challenging to return to a phase and make changes when there is a change in need after completing that specific phase.<\/li><li>Production of working software is not possible until late during the life cycle. Therefore, there can be a delay in delivering the final product as there is no prototype for demonstration.<\/li><li>Small changes or errors in one phase can cause a lot of trouble in the entire system.<\/li><li>Since every part requires documentation, it takes much of the time of the testers and developers.<\/li><li>Although the testers perform unit testing during integration, the final testing of the product takes place in the last stage. Due to this, identifying the risks in the earlier phases becomes very difficult.<\/li><\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Wrapping Up<\/h4>\n\n\n\n<p>With this article, you probably got an idea of the first Software development LifeCycle model and its different phases. The Waterfall methodology is undoubtedly one of the most straightforward and easily comprehensible approaches to software development. Its features make it a preferable choice when working on small and more uncomplicated projects. However, make sure that the project you are working on has consistent and detailed customer requirements; otherwise, you can face challenges during the software development process.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You might have heard about Software Development Life Cycle (SDLC). It is a process consisting of planned activities to design, develop and test highly performing software. The primary aim of SDLC is to produce high-quality software that meets customer expectations and requirements. However, here we are not going to talk about SDLC. For that, you can refer to our \u2018Mastering the Software Development LifeCycle Methodologies\u2019 blog. Today, we will start with the Waterfall methodology, the first Software Development Life Cycle model out there. It is one of the approaches to complete the life cycle of software. In this article, we will discuss: What is the Waterfall model? Where does this concept come from? The sequential phases in the Waterfall model When to use the Waterfall model? Ways in which the Waterfall model can be advantageous. The limitations to this approach Waterfall Model: An Overview The waterfall model is sequential and widely used in the software industry that divides software development processes into pre-defined phases. It is an understandable and easily applicable approach. The basic concept behind this model is that all the stages should process one by one in a pre-defined sequence. However, it would be best if you kept<a href=\"https:\/\/www.hestabit.com\/blog\/waterfall-model-in-sdlc\/\" class=\"more_link more_link_dots\"> &hellip; <\/a><\/p>\n","protected":false},"author":8,"featured_media":3525,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2070],"tags":[],"yst_prominent_words":[123,282,2179,74],"class_list":["post-3516","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/posts\/3516"}],"collection":[{"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/comments?post=3516"}],"version-history":[{"count":4,"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/posts\/3516\/revisions"}],"predecessor-version":[{"id":3722,"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/posts\/3516\/revisions\/3722"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/media\/3525"}],"wp:attachment":[{"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/media?parent=3516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/categories?post=3516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/tags?post=3516"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.hestabit.com\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=3516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}