System Design Of The Waterfall Implementation Model Information Technology Essay
The Waterfall model is a chronological software development process, where the progress in develop the software is flowing from upward to downward (like 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[1]. 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 used to design the software.
System Design
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 phase 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 developed and implemented is carried out based on the algorithm or flowchart designed before. Here, all of the ideas in developed the software of program to be designed is turn up.
System Integration
The various codes designed by different programmers will be integrated together so that, at the next stage of system testing will have no problem.
System Testing
The complete coding will follow by the testing department where it testing based on the functional and non-functional requirements. It checks 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 repeated again.
System Installation
For the last stage of the software development process, using waterfall model, a proper execution of all previous 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.
System Maintenance
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
Advantages
Disadvantages
Linear model are the most trouble-free 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 is a source of confusion.
Documentation is produce at every phase of the waterfall model development.
Small error that arises in the completed software will become a big problem.
Testing is done in every main stage of software coding.
Errors in the code only discovered when the testing phase is reached. Waste time and other important resources.
Employs a organized, conventional method of project development and delivery.
Client doesn’t get a chance to see the software until the last stage of development cycle.
Not suitable for project requirements that are dynamic or constantly changing
Waterfall Model Vs Agile [3]
Waterfall Model
Agile Model
History
Waterfall model established as a method by Winston Royce in 1970. The idea of Waterfall model was generate from the hardware manufacture strategies and construction strategies that were produce 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.
Conceptual Difference
Waterfall model is the chronological process of software development. The model phases are state below:
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.
After the design stage is finish, proceed to implement 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.
Efficiency
Less efficiency than agile model due to its compliance to the real world. The last minute changing in requirements and design are more complicated.
More efficient than waterfall model due to their iterative and compliant nature. Product can be produce in short time and integrated with changes.
Suitability
Waterfall model is appropriate for development of programs that are already stable and doesn’t need a major alteration.
Agile model is appropriate for web based application where the iterative nature helps in integrating and repairs the various bug 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 should be 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 simplest to 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 [4]
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.
Order Now