Waterfall Model




The waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Requirements, AnalysisDesign,Coding, Testing,Production/Implementation
and Maintenance.

Advantages of Waterfall Iterative Model


1)  Waterfall model is simple to implement and also the amount of resources required for it are minimal.

2)   In this model, output is generated after each stage (as seen before), therefore it has high visibility. The client and project manager gets a feel that there is considerable progress. Here it is important to note that in any project psychological factors also play an important role.

3)  Project management, both at internal level and client's level, is easy again because of visible outputs after each phase. Deadlines can be set for the completion of each phase and evaluation can be done from time to time, to check if project is going as per milestones.

4)  This methodology is significantly better than the haphazard approach to develop software. It provides a template into which methods of analysis, design, coding, testing and maintenance can be placed.

5)  This methodology is preferred in projects where quality is more important as compared to schedule or cost.


Disadvantages of Waterfall Iterative Model of SDLC


1)  Real projects rarely follow the sequential flow and iterations in this model are handled indirectly. These changes can cause confusion as the project proceeds. 

2)  It is often difficult to get customer requirements explicitly. Thus specifications can't be freezed. If that case arises baseline approach is followed, wherein output of one phase is carried forward to next phase. For example, even if SRS is not well defined and requirements can't be freezed, still design starts. Now if any changes are made in SRS then formal procedure is followed to put those changes in baseline document.

3)  In this model we freeze software and hardware. But as technology changes at a rapid pace,such freezing is not advisable especially in long-term projects. 

4)  This method is especially bad in case client is not IT-literate as getting specifications from such a person is tough.

5)  Even a small change in any previous stage can cause big problem for subsequent phases as all phases are dependent on each-other.

6)  Going back a phase or two can be a costly affair.


SDLC (Software Development Life Cycle)

It is a procedure to develop the software.

It is a process of creating or altering systems and the models and methodologies that people use to develop these systems.

Any SDLC should result in a high quality system that meets or exceeds customer expectations, reaches completion within time and cost estimates, works effectively and efficiently and is inexpensive to maintain and cost effective to enhance.


What is SOFTWARE?

Computer software, or simply software, also known as computer programs, is the non-tangible component of computers. Computer software contrasts with computer hardware, which is the physical component of computers. Computer hardware and software require each other and neither can be realistically used without the other.
Computer software includes all computer programs regardless of their architecture; for example, executable files, libraries and scripts are computer software. Yet, it shares their mutual properties: software consists of clearly defined instructions that upon execution, instructs hardware to perform the tasks for which it is designed. Software is stored in computer memory and cannot be touched, just as a 3D model shown in an illustration cannot be touched.