- Some projects are built without conducting analysis and design. The Product is simply built and tested again until the customer needs are satisfied. This approach is termed build and fix model as shown below:
- The build and fix model may work well on small programs approximately 50 200 lines.
- If the defect is detected in the later phase then cost of correcting it increases exponentially.
- Hence cost of fixing defects of the program developed using build and fix model is higher as compared to the cost of defect correction in any program which is developed using any other specified software development life cycle model.
- Simple and easy to understand
- Only applicable to very small sized programs
- Produced unenhancable source code
- Requirements are not predetermined
- Frequent changes produce unstructured or poorly structure source code
- Cost of fixing defects is high
- Maintenance of software becomes very difficult without any requirement or design documents
- A disciplined and organized approach for software development is used in the waterfall model.
- Requirement analysis
- Unit testing
- Integration and testing
- Deployment and maintenance
- Each phase has its own set of functions and each phase must be completed before the next phase begins. The output of one phase is taken as input in the next phase.
- The waterfall model begins with the the system. It gathers requirements from the customer.At the end SRS and software project plan are produced. The SRS acts as a contract between the customer and the developer.
- In the design phase , the SRS is transformed into design which is suitable for implementation in a programming language.
- First preliminary design is made then detailed design is m initial test plan are produced at the end of this phase.
- During the implementation phase , the phase is transformed into source code.
- In unit testing small modules are tested in isolation and the overhead code is written for handling communication amongst these modules.
- After implementation and unit testing , the modules are integrated to form a complete system. Integration and testing are carried out to verify the functionality of the system.
- After proper testing the software is given to the user for acceptance testing. Test plan ,test phase and test results are outputs in this phase.
- Software maintenance phase involves defect correction, quality improvements, enhancements and changes.
- Ease of understandability
- Distinct phases with their own functions.
- A large number of documents are produced.
- It freezes the requirement at the requirement phase
- Customer does not get opportunity to see working product
- It may take years to complete
- Testing the whole system is difficult
- Real life projects are not sequential.
- In prototyping model, a working prototype is constructed in order to determine and understand the customers need. The customer evaluates this prototype and then the final SRS document is prepared on the basis of refined requirements.
- The throwaway prototype which is developed undergoes design, coding and testing but not thoroughly and vigorously. During requirement analysis a quick and dirty prototype is constructed and given to the customer.
- The prototype is refined till the final requirements are reached.
- The final SRS is prepared which serves as input to the next phasr similar to the waterfall model.
- Stable requirements : Requirements are finalized by refining prototype again and again based on customer feedback.
- High quality system: The quality of the system will be high as developers get lot of experience while building the prototype.
- Low Cost : The cost of actual system will be reduced.
- Customer may expect quick delivery of the software.
- Time for development may exceed.