This action might not be possible to undo. Are you sure you want to continue?
to the release of a software product.
There are various software development approaches defined and designed which are used/employed during development process of software, these approaches are also referred as "Software Development Process Models". Each process model follows a particular life cycle in order to ensure success in process of software development. One such approach/process used in Software Development is "The Waterfall Model". Waterfall approach was first Process Model to be introduced and followed widely in Software Engineering to ensure success of the project. In "The Waterfall" approach, the whole process of software development is divided into separate process phases. The phases in Waterfall model are: Requirement Specifications phase, Software Design, Implementation and Testing & Maintenance. All these phases are cascaded to each other so that second phase is started as and when defined set of goals are achieved for first phase and it is signed off, so the name "Waterfall Model". All the methods and processes undertaken in Waterfall Model are more visible.
THE STAGES OF "THE WATERFALL MODEL" ARE:
Requirement Analysis & Definition: All possible requirements of the system to be developed are captured in this phase. Requirements are set of functionalities and constraints that the enduser (who will be using the system) expects from the system. The requirements are gathered from the end-user by consultation, these requirements are analyzed for their validity and the possibility of incorporating the requirements in the system to be development is also studied. Finally, a Requirement Specification document is created which serves the purpose of guideline for the next phase of the model. System & Software Design: Before a starting for actual coding, it is highly important to understand what we are going to create and what it should look like? The requirement specifications from first phase are studied in this phase and system design is prepared. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. The system design specifications serve as input for the next phase of the model. Implementation & Unit Testing: On receiving system design documents, the work is divided in modules/units and actual coding is started. The system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality; this is referred to as Unit Testing. Unit testing mainly verifies if the modules/units meet their specifications. Integration & System Testing: As specified above, the system is first divided in units which are developed and tested for their functionalities. These units are integrated into a complete system during Integration phase and tested to check if all modules/units coordinate between each other and the system as a whole behaves as per the specifications. After successfully testing the software, it is delivered to the customer. Operations & Maintenance: This phase of "The Waterfall Model" is virtually never ending phase (Very long). Generally, problems with the system developed (which are not found during the development life cycle) come up after its practical use starts, so the issues related to the
to satisfy specified requirements" (Wikipedia). This is also the stage at which user interface design is addressed. It involves defining the hardware and software architecture. For projects involving a large team. and indicating strategies to deal with issues such as exception handling. interfaces.system are solved after deployment of the system. use cases. debuggers. using tools such as compilers. modules. Typically. not all the requirements are fulfilled. which serves as input to the next step. Techniques used to obtain this understanding include customer interviews. 1) As it is very important to gather all possible requirements during the Requirement Gathering and Analysis phase in order to properly design the system. 3) The project is not partitioned in phases in flexible way. built according to a pre-defined coding standard and debugged. 3. because it involves gathering information about what the customer needs and defining. this step is performed by a development team consisting of programmers. including issues relating to navigation and accessibility. Requirements analysis: This first step is also the most important. tested and integrated to satisfy the system architecture requirements.. resource management and interface connectivity. THERE ARE SOME DISADVANTAGES OF THE WATERFALL MODEL. and data. hence this process is referred as Maintenance. which are used in the next stage of implementation. interface designers and other specialists. choosing the IDE and programming language. Analysis includes understanding the customer's business context and constraints. Implementation: This step consists of actually constructing the product as per the design specification(s) developed in the previous step. designing data storage containers and constraints. Not all the problems come in picture directly but they arise time to time and needs to be solved. interpreters and media editors. The results of the analysis are typically captured in a formal requirements specification. this affects the system development process and its success in negative aspects. 4) As the requirements of the customer goes on getting added to the list. 2. Design: This step consists of "defining the hardware and software architecture. the requirements from customer goes on getting added to the list even after the end of "Requirement Gathering and Analysis" phase. not all requirements are received at once. These requirements are then met in newer version of the system. . SAME SAME 1. the performance levels it must adhere to. this results in development of almost unusable system. the problem that the product is expected to solve. this increases the cost of system development. and "shopping lists" of software features. components. The output of this step is one or more product components. specifying performance and security parameters. this results in badly structured system as not all the problems (related to a phase) are solved during the same phase. version control is recommended to track changes to the code tree and revert to previous snapshots in case of problems. the functions the product must perform. and the external systems it must be compatible with. 2) The problems with one phase are never solved completely during that phase and in fact many problems regarding a particular phase arise after the phase is signed off.. in the clearest possible terms. The output of this stage is one or more design specifications.
after all the components have been integrated and tracking down specific errors is more complex. or defects uncovered during live use of the system. Installation: This step occurs once the product has been tested and certified as fit for use. it is very important that the updated requirements be taken from the client. These modifications arise either due to change requests initiated by the customer. the waterfall model can aid efficient knowledge transfer when team members are dispersed in different locations. Maintenance: This step occurs after installation. and progress can be conclusively identified (through the use of milestones) by both vendor and client. such as a user manual. system testing of the integrated product. or of customer expectations not being met. given the uncertain nature of . as described above. every change made to the product during the maintenance cycle is recorded and a new product release (called a "maintenance release" and exhibiting an updated revision number) is performed to enable the customer to gain the benefit of the update.4. Advantages The waterfall model. 6. Getting the requirements and design out of the way first also improves quality. Delivery may take place via the Internet or physical media. Finally. Typically. The most prominent criticism revolves around the fact that very often. and the deliverable is typically tagged with a formal revision number to facilitate updates at a later date. customers don't really know what they want up-front. both individual components and the integrated whole are methodically verified to ensure that they are error-free and fully meet the requirements outlined in the first step. it's much easier to catch and correct possible flaws at the design stage than at the testing stage. if found. what they want emerges out of repeated two-way interactions over the course of the project. the staged development cycle enforces discipline: every phase has a defined start and end point. is prepared. because the first two phases end in the production of a formal specification. and involves preparing the system or product for installation and use at the customer site. In this situation. is seen as somewhat unrealistic and unsuitable for the vagaries of the real world. 7: New Requirements Phase Changing times may require that the product requirements be changed. 5. First. formally conducted by or on behalf of the customer. Criticisms Despite the seemingly obvious advantages. are logged and feedback provided to the implementation team to enable correction. with its emphasis on up-front requirements capture and design. reviewed and published. An independent quality assurance team defines "test cases" to evaluate whether the product fully or partially satisfies the requirements outlined in the first step. The emphasis on requirements and design before writing a single line of code ensures minimal wastage of time and effort and reduces the risk of schedule slippage. Further. offers numerous advantages for software developers. This requires the entire product life cycle to start all over again. Testing: In this stage. and acceptance testing. This is also the stage at which product documentation. and involves making modifications to the system or an individual component to alter attributes or improve performance. the waterfall model has come in for a fair share of criticism in recent times. The client company may be expanding into other fields and it may want new features to be added over to the existing software. rather. Hence. the waterfall model. Defects. Three types of testing typically take place: unit testing of individual code modules.
Deploy:After Development and Testing. say. Traditional waterfall model is a one-way linear sequence. not to debug bugs. it still remains useful for certain types of projects and can. Plan and Analyse/Software requirements analysis: This process is done at strategic business level and at business area level. 5. Whether you should use it or not depends largely on how well you believe you understand your customer's needs.. The design process translates requirements into a representation of the software. Another criticism revolves around the model's implicit assumption that designs can be feasibly translated into real products. Often. 2.customer needs. design. such a division of labor in most software firms is neither realistic nor efficient. and how much volatility you expect in those needs as the project progresses. 4. testing. Design: Data structure. 3. algorithmic details and software framework and architecture are the key parameters involved in software design. and support. designs that look feasible on paper turn out to be expensive or difficult in practice. sequential approach to software development which starts at the system level and progresses through analysis. notably the so-called spiral model.It also done to verify whether the product is meeting the functional requirements. The requirement document mainly consists of ³what the system should do?´. Customer needs While the model does have critics. . therefore. Test: In test phase. Waterfall model is also known as 1. other frameworks exists for thinking about project management. produce significant cost and time savings. The Waterfall Model includes the following activities: 1..linear sequential model It describes a systematic. Testers play a vital role in detecting the bugs in the developed software product. Some criticisms also center on the fact that the waterfall model implies a clear division of labor between. It's worth noting that for more volatile projects. the model is recommended for use only in projects which are relatively stable and where customer needs can be clearly identified at an early stage. this sometimes runs into roadblocks when developers actually begin implementation. coding. Build/Code Generation: In Build phase.classic life cycle 2. in reality. "designers". "programmers" and "testers". requiring a re-design and hence destroying the clear distinctions between phases of the traditional waterfall model. estimating time and costs with any degree of accuracy (as the model suggests) is often extremely difficult. In general. product is deployed in Go-Live environment. when properly implemented. all the design documents are translated into code which are written in programming languages.but that's a story for another day! Waterfall Model is introduced by Winston Royce in 1970.
3. It is easy to use. Alternatives to the waterfall model include joint application development (JAD). and the spiral model. 3. 2. 2.build and fix. synch and stabilize. Each stage of the development is frozen before proceeding to the next stage. Advantages of Waterfall Model: 1. . rapid application development (RAD). 1. It includes planned and properly defined milestones and baselines Disadvantages of Waterfall Model: Requirements must be completely gathered at the inital stage itself. It guides in making structured. Not much interactio between client and developer.disciplined and stable software product.
read more on software testing. testing with the coding complete. it ensures a satisfied . a proper execution of all the preceding stages ensures a software as per the requirements and most importantly. if this phase is completed successfully. here. the actual coding of the software is carried out. the requirements which the software is going to satisfy is specified. the changes are implemented and then its succeeding stages. coding and testing are again carried out. if there are any flaws. a proper execution of this stage ensures that the client for which the software has been designed. will be satisfied with the work. this is the stage where the entire idea of the software of program to be designed is materialized. acceptance this is the last stage of the software development. right from the point of which computer language should be used for the designing of the software. a proper execution of the previous stages ensures a smooth implementation of this stage. which relies on the previous two stages for its proper implementation and the proper execution of the same ensures a smooth working of the next stage. if during the design phase it can be made out that there are some more requirements for designing the code. the testing department now comes into scene. design the algorithm or flowchart of the program or the software code to be written in the next stage is created now. not only big projects. one important aspect that is worth mentioning before we start off with the waterfall model life cycle is that the waterfall model is designed such that. coding based on the algorithm or flowchart designed. the problem is reverted back to the design phase. you cannot proceed with the project. analysis as per the requirements. it checks out if there are any flaws in the designed software and if the software has been designed as per the specifications. until the preceding phase is complete. it ensures a smooth working of the remaining waterfall model phases. as the programmer is not burdened to make changes at later stages because of changing requirements. it is a very important stage.waterfall model diagram . it is added up to the list in the analysis phase and the design phase is carried out according to the new set of resources. you cannot move over to the next phase of development. to the database system that can be used for the smooth functioning of the software is decided at this stage.explained let us now take a look at the different phases of the waterfall model diagram. all requirements are presented to the team of programmers. requirement unless you know what you want to design. in this stage. using the waterfall model. in the design phase. the software and hardware for the proper completion of the project is analyzed in this phase. but even a small code of adding two integer numbers also needs to be written with the output in mind.
requirements.client. right from the first phase. .e. then the process again needs to be started. however. i. at this stage you may need to provide the client with some support regarding the software you have developed. if the client demands some further enhancements to be made to the existing software..
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue reading from where you left off, or restart the preview.