The classical waterfall model is intuitivey the most obvious way to develop software. Though the classical waterfall model is elegant and intuitively obvious, it is not a practical model in the sense that it cannot be used in actual software development process. Thus this model can be considered to be a theoritical way of developig software. But, all other life cycle models are essentially derived from this waterfall model. for example, in actual software development process, using the classical waterfall model, it is difficult and next to impossible to complete the design phase before the coding starts; and once the coding phase completes the testing starts and there is no way to go back again in the coding or alter some design specification. Another disadvantage of the waterfall model is that the client can never get the opportunity to review the software until the complete product is developed. Hence, the classical waterfall model is a usefull life-cycle model in theory as it is the basis of all other models, but this model cannot be used in practically in software development process.