Showing posts with label Waterfall Model. Show all posts
Showing posts with label Waterfall Model. Show all posts

Monday, 26 September 2016

Waterfall Model

There are many software process but four activities that are fundamental to software engineering are
1.    Software specification
2.    Software design and implementation
3.    Software validation
4.    Software evolution
These are complex activities and of course include sub activities architecture design, unit testing etc.
Waterfall Model
Waterfall model include fundamental software process specification, design, validation, evolution and represent them as requirement specification, software design, implementation, testing, operation, maintenance. In this model each process phase is complete and then move to another phase, so this model is known as ‘waterfall model’ or ‘software life cycle’. In waterfall model you must specify all the function and constrain on function before starting work on them.
Waterfall model is used when system requirement specified at an early stage of software development process.
Principle stage of waterfall model
Requirement analysis and definition
                                                    Requirements are define according to the need of end user.  System’s function, constrain and goal are define by negotiation with end user in this step. System functions are defined in detail and behave as system specification. System specification document is used in next phase as input.
System and software design
                                             System design process allocates the requirement to either hardware or software system by establishing an overall system architecture. In software design phase interfaces and interactions of the modules are described, as well as their functional contents and other system states like startup, shutdown, error conditions and diagnostic modes have to be considered. The output of this phase is a Software Design Document. 
Implementation and unit testing
                                                 Software design is realized as a program or unit program. Each unit is developed independently. Unit testing check each unit meets it specification.
Integration and system testing
                                                Unit program are integrated and test as whole system to check that the software requirement have been met. After software system is delivered to customer.
Operation and maintenance
                                              This is longest life cycle phase. System is installed and put into practical use. Maintenance involves correcting error, improving the implementation of system unit and enhancing system services as new requirement are discover and ensure software system work properly.




                               Figure:     The Waterfall Model

This software model process is not a simple linear model but involves feedback from one phase to another phase. Changes in the process are also reflected in documentation, which is produced in each phase of process. Iteration can be costly and involve significant work. In final phase the software is implemented to use. After implementation we check software must meet the requirement that is specified and also program and design error are checked and the need of new functionality is identified.

Waterfall model drawback
1.    The major problem is inflexible partition of process stage
2.    Waterfall model is only used when requirement are well understood during the first phase of requirement analysis and unlikely to change radically during system development. If requirement are not specified in initial phase subsequent phase will suffer from it.