The first Process Model to be introduced in 1970 by Winston Royce was the Waterfall Model. It is also known as a linear-sequential life cycle model. Due to its simplicity this model is easily understandable and use by any non-technical person. In Waterfall approach overall software development is divides into different phases and each phase must be completed before the next phase can begin and these phases do not overlap.
Part A[6 marks] Describe each phase of the waterfall model in about two to four sentences.
Phases of Waterfall Model:
1) Requirement Gathering and analysis: This is the first phase of water-fall model. In this phase requirements of the system or project that is to be developed are captured from client and all these requirements are documented in a requirement specification document or prepare a SRS. This SRS is verify by the client and after acceptance next phase is begin.
2) System Design: In this phase prepare a design of a system.Plan all the system hardware and software requirements like what type of programming languages are used like Java, PHP, .net or database like Oracle, MySQL, etc. It helps in defining the overall system architecture.
3)Implementation: Once the design of a system is prepare, the system is first developed in small programs and these programs are called units, which are integrated in the next phase. In this phase we coding the software and performing unit testing.
4)Testing: After performing the unit testing all the units are integrated into a system and performing system testing. Testing is perform to find any bugs or failure in the system or to verify that system is built as per the requirements of client.
5)Deployment: Once the testing phase is done,the product or software is deployed or install in the customer environment.
6)Maintenance: Maintenance is require to fix the issues and to released some better versions to enhance the product.
Part B [5 marks] Explain the advantages of the waterfall method in three to five sentences. Give at least one example where the waterfall model is appropriate.
Due to its simplicity this model is easily understandable and use by any non-technical person.
Waterfall model is useful for smaller projects and it gives an appropriate result.
System Requirements are well documented and understand by all the projects team members
Each phase work independently and do not overlap the other phases.
Customer interaction is only at the beginging of the project and at the last of the project.
Example: let as take a Example of making a website of 7 pages for any shop.this is a small website which is developed using waterfall model and it require less time to developed .
1) Requirement Gathering and analysis : All the client requirements about the website is gathered and prepare a SRS document. Requirements like their is one registration page, one login page,user profile page, products view page, product buy, add to cart , Billing. All the requirements are clear,documented and well understood.
2) System Design : what type of programming language php,java or .net or what type of database is used to develop the website is planned in this phase.
3) Implementation : Once the programming language is finalized the coding is begin in the Implementation phase and small units are prepare like all the pages are coding one by one.
4) Testing: All the pages are integrated or linking with each other and performing system testing to check the functionality of the website it is according to the customer requirement or not.
5) Deployment:Once the website is completed it is deployed in the customer system for the acceptance .
6) Maintenance: If any issue is come after deploying the website then patches are released to resolve those issues.
Part C [5 marks] Explain the main problems associated with the waterfall method in three to five sentences of your own words. Give at least one example where the waterfall model is inappropriate.
This model is not desirable for complex and bigger project where requirement changes frequently and risk factor is higher.
This model also not good for ongoing projects.
Customer interaction is less and it cannot adopt the changes in system requirements.
This model require more documentation which is not suitable for big projects.
Customer feedback only at the end of the product.
Small change makes lot of problems in the development
Example: Let as take a Example for making a website for shopping mall which contains many shops. Making a website for a shopping mall is not a easy task because it require lots of time. It is also not possible to gather all the requirements of all the shops at once . So developing a Website for a mall the waterfall model is not appropriate.
Part D [4 marks] Consider a scenario where the requirements were thought to have been finalised, but during the design phase it became clear that part of the requirements were wrong. Dealing with this situation would be quite difficult if the project was being implemented using the waterfall model as depicted in Figure 2.1 of the Sommerville text. What changes need to be made to that diagram in order to enable a sensible course of action in our scenario.
In waterfall model all the phases are completed before the next phase start. Output of one phase is become an input for the next phase. Once the development is start, it is difficult to go back to previous phase.In Water fall model If their is any confusion in the requirement or any fault is occurred , then development will starting from the first phase.
If the requirements are finalised and during the design phase it became clear that part of the requirements are wrong, then the process of development is start from the first phase of waterfall model which is requirement gathering phase.