This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
The waterfall model is a sequential software development process, which is the progress are flowing smoothly downwards like a waterfall through the stages of Requirements, Design, Implementation, Verification and Maintenance. The first waterfall model is published on article in 1970 by Winston W. Royce. In Royce's original waterfall model, the following stages are followed in order:
The waterfall model implemented in this study is preceded with the requirement analysis. Here, the requirements of the new software will be identified. The literature review about the software or system that wants to design must be done. Even a small project of calculate the sum of numbers also need to be written with the output in mind. All requirements will be listing and presented to the team of programmers. The software and hardware will be analyzed include the deciding of computer language that will be used to design the software.
This implementation is followed by the next stage in the waterfall model, which is the system design phase. In this section, the requirements that have been analyzed will be translated into detailed design and flowchart of the software code is being created. System design is the important stage that depending on the previous stage to make the great implementation and can be executed properly. When have anything requirements to be insert in designing the code, it will be add up in the requirement analysis section and the design phase is carried out based on the new set of resources.
System Construction (Coding)
In the system construction phase, all the design will be converted into machine-readable coding. The coding of the software that wants to be implemented is carried out based on the algorithm or flowchart designed before. Here, all of the idea in implemented the software of program to be designed is materialized.
The various codes designed by different programmers will be integrated together so that, at the next stage of system testing will have no problem.
The complete coding will follow by the testing department where it testing based on the functional and non-functional requirements. It will check if there is any problem in the designed software and if it follows the specifications. At this stage, testing activity will include the involvement of computer technician and client. Here, the good flow of the process in designing the software will ensure satisfaction from the client. If there is any problem with the design, it must be reverted back to the system design. Coding and testing are again carried out.
For the last stage of the software development, using waterfall model, a proper execution of all preceding stages will ensure it is followed the requirements and more important to satisfied the client. The setup of final software which needs to be installed at the client system will be tested so that, the client does not face any problem while using the software. Here, the product is handed over to client.
Some support regarding the software that has been developed must be provided to the client. If have any problem about the software or clients demand some further enhancements to the current software, so that, all of the process need to be started from the requirements analysis.
Waterfall Model Advantages and Disadvantages
Linear model are the most simple to be implemented and easy to understand.
Cannot go back if the design phase has any problem.
The amount of resources required to implement this model is very minimal.
Any change in implementation the software will cause a lot of confusion.
Documentation is produces at every stage of the waterfall model development.
Small error that arises in the completed software will cause a lot of problem.
Testing is done in every major stage of software coding.
Errors in the code only discovered when the testing phase is reached. Waste time and other important resources.
Employs a systematic, orthodox method of project development and delivery.
Until the final stage of the development cycle, the software does not lie in the hand of the client.
Not suitable for project requirements that are dynamic or constantly changing
Waterfall Model Vs Agile 
Waterfall model established as a method by Winston Royce in 1970. The philosophy was inherited from the hardware manufacture strategies and construction strategies that were in practice in 1970s.
Agile model were formally defined by Edmonds in 1974. The agile model of software development progress in 1990s when developers changed from traditional structured to flexible development styles.
Waterfall model is the sequential process of software development. The model phases are as follows: requirements specification, conception, analysis, design, coding, testing and debugging, installation, and finally maintenance.
The next stage of development can be do when the first stage are fully completed.
When the design stage is over, it is implemented based on the coding stage without any alterations.
Agile model focuses on agility and adaptability in development process. Involves multiple iterative that used to improve the output of process.
The design can be changed even in the last minutes due to iterative implementation.
Faster than waterfall model and deliver the working program.
Less efficiency than agile model due to its adaptability to the real world. Difficult to make last minute changes in requirements and design.
More efficient than waterfall model due to their iterative and adaptable nature. Can incorporate changes and produce a product in lesser time.
Waterfall model is suited for development of programs that are already stable and doesn't need a major alteration.
Agile model is suited for web based application where the iterative nature helps in integrating and correcting the various bugs that arise over time.
Discussion and Conclusion
Waterfall model (heavy method) works best when we can clearly define our requirements that consist of two; system requirements and software requirements. All the requirements must be documented so that it is easy to develop the software based on the requirements that have been listed. After the requirements are clearly define, it will eliminate the problem in the design and development phase while also enforcing discipline to our workers or designers and programmers. All workers will clear on the scheduling and customer expectation.
Based on the comparison between waterfall method and agile method, we understand that, there is no win or lose situation because between those two methods, it has their respective advantages. For example, agile method is also the variation of the waterfall method where it is exist when developers decide to changed from traditional structured, segmented, bureaucratic approaches to more flexible development styles. Therefore, the agile method or 'light weight' method is introduced in 1974.
The method we need to use in software development are depends on the project, team members, and the company environment that we work in. For example, the waterfall model is most suitable for development of programs that are already stable and do not need bigger alteration. It is also involved a large size of team and focuses on large project. That's why it needs a bigger amount of cost to develop this project. Even this waterfall model known as the orthodox method, it still widely use because it is a linear model and more simple to be implemented.
Waterfall model still continues to remain as the one of the most commonly use methodologies even the new system that more flexible was exist, the widely uses of waterfall model is the reason why it is studied and adapted in various software management and development project. For a conclusion, the process of software development will be easier if we understand the waterfall model diagram. This method is not only simplest software process model for application development, but also known as the most popular model for its ease of implementation in the area of software development.
ISO 12207:2008, SYSTEMS AND SOFTWARE 
Engineering: Software Life Cycle Processes
Software life cycle processes is a structure corresponding to the processes, activities, and task used for gaining development and maintenance of software products. Specialization of the system life cycle processes is the software life cycle processes. In the context of organizational wish for is to define the standard processes that suitable to the company business where follow the processes from organizational rather than follow the ISO standard. Life cycle model is not include in the standard, however, life cycle processes will be mapped onto life cycle model that suitable to the project, and accepted by the organization.
System Context Processes
ISO 12207 is more specific because it is include the software specific information to provide more widely defined processes in ISO 15288. The name of processes in ISO 15288 also slightly changed in ISO 12207. This contribution is for satisfaction of the corresponding processes in ISO 15288 and provides more specialization to those processes.
Software Implementation Processes
Software Implementation is the software-specific specialization of the ISO 15288 standard. The life cycle model is select and development activities are mapped to that model. Standard and procedure are based on the requirements of project and implementation plans. Software implementation process is supported by six lower level processes:
Software Requirement Analysis - To develop the software requirement, the system requirement must be analyzed. The software requirements need to be reliable and visible with the system requirements.
Software Architectural Design - To translated the software requirements into a high-level design and allocated to software components.
Software Detailed Design - To develop the design of each software to a greater levels and then to be coded and tested.
Software Construction - Each software unit and database is coded and tested.
Software Integration - A documented plan for the integration of software unit is develop and executed. When software requirements are satisfied, it proceeds to qualification testing.
Software Qualification Testing - Demonstrate that the software product performs as specified.