Skip to main content

Software Engineering - Waterfall Model | VCMIT


Waterfall model

Winston Royce introduced the Waterfall Model in 1970.This model has five phases: Requirements analysis and specification, design, implementation, and unit testing, integration and system testing, and operation and maintenance. The steps always follow in this order and do not overlap. The developer must complete every phase before the next phase begins. This model is named "Waterfall Model", because its diagrammatic representation resembles a cascade of waterfalls.



1. Requirements analysis and specification phase: The aim of this phase is to understand the exact requirements of the customer and to document them properly. Both the customer and the software developer work together so as to document all the functions, performance, and interfacing requirement of the software. It describes the "what" of the system to be produced and not "how."In this phase, a large document called Software Requirement Specification (SRS) document is created which contained a detailed description of what the system will do in the common language.

2. Design Phase: This phase aims to transform the requirements gathered in the SRS into a suitable form which permits further coding in a programming language. It defines the overall software architecture together with high level and detailed design. All this work is documented as a Software Design Document (SDD).

3. Implementation and unit testing: During this phase, design is implemented. If the SDD is complete, the implementation or coding phase proceeds smoothly, because all the information needed by software developers is contained in the SDD.

During testing, the code is thoroughly examined and modified. Small modules are tested in isolation initially. After that these modules are tested by writing some overhead code to check the interaction between these modules and the flow of intermediate output.

4. Integration and System Testing: This phase is highly crucial as the quality of the end product is determined by the effectiveness of the testing carried out. The better output will lead to satisfied customers, lower maintenance costs, and accurate results. Unit testing determines the efficiency of individual modules. However, in this phase, the modules are tested for their interactions with each other and with the system.

5. Operation and maintenance phase: Maintenance is the task performed by every user once the software has been delivered to the customer, installed, and operational.

When to use SDLC Waterfall Model?

Some Circumstances where the use of the Waterfall model is most suited are:


  • When the requirements are constant and not changed regularly.
  • A project is short
  • The situation is calm
  • Where the tools and technology used is consistent and is not changing
  • When resources are well prepared and are available to use.


Advantages of Waterfall model


  • This model is simple to implement also the number of resources that are required for it is minimal.
  • The requirements are simple and explicitly declared; they remain unchanged during the entire project development.
  • The start and end points for each phase is fixed, which makes it easy to cover progress.
  • The release date for the complete product, as well as its final cost, can be determined before development.
  • It gives easy to control and clarity for the customer due to a strict reporting system.


Disadvantages of Waterfall model


  • In this model, the risk factor is higher, so this model is not suitable for more significant and complex projects.
  • This model cannot accept the changes in requirements during development.
  • It becomes tough to go back to the phase. For example, if the application has now shifted to the coding phase, and there is a change in requirement, It becomes tough to go back and change it.
  • Since the testing done at a later stage, it does not allow identifying the challenges and risks in the earlier phase, so the risk reduction strategy is difficult to prepare.




Comments

Popular posts from this blog

Types Of Software | VCMIT

Types Of Softwares The two main types of software are system software and application software. System software is a type of computer program designed to run a computer's hardware and application programs. System software coordinates the activities and functions of the hardware and software. In addition, it controls the operations of the computer hardware and provides an environment or platform for all the other types of software to work in. The best-known example of system software is the operating system (OS), which manages all the other programs in a computer. Application software is a computer software package that performs a specific function for an end user or, in some instances, for another application. An application can be self-contained or a group of programs. The program is a set of operations that runs the application for the user. Applications use the computer's OS and other supporting programs, typically system software, to function. Application software is differ...

Software Engineering - Agile Model | VCMIT

Agile Model The meaning of Agile is swift or versatile."Agile process model" refers to a software development approach based on iterative development. Agile methods break tasks into smaller iterations, or parts do not directly involve long term planning. The project scope and requirements are laid down at the beginning of the development process. Plans regarding the number of iterations, the duration and the scope of each iteration are clearly defined in advance. Each iteration is considered as a short time "frame" in the Agile process model, which typically lasts from one to four weeks. The division of the entire project into smaller parts helps to minimize the project risk and to reduce the overall project delivery time requirements. Each iteration involves a team working through a full software development life cycle including planning, requirements analysis, design, coding, and testing before a working product is demonstrated to the client. Phases of Agile Model...

A Brief History Of Software | VCMIT

History Of Software The Early Days of Software Computer scientist Tom Kilburn is responsible for writing the world’s very first piece of software, which was run at 11 a.m. on June 21, 1948, at the University of Manchester in England. Kilburn and his colleague Freddie Williams had built one of the earliest computers, the Manchester Small-Scale Experimental Machine (also known as the “Baby”). The SSEM was programmed to perform mathematical calculations using machine code instructions. This first piece of software took “only” 52 minutes to correctly compute the greatest divisor of 2 to the power of 18 (262,144). For decades after this groundbreaking event, computers were programmed with punch cards in which holes denoted specific machine code instructions. Fortran, one of the very first higher-level programming languages, was originally published in 1957. The next year, statistician John Tukey coined the word “software” in an article about computer programming. Other pioneering programmin...