![Practical Internet of Things Security](https://wfqqreader-1252317822.image.myqcloud.com/cover/124/36699124/b_36699124.jpg)
Waterfall
Waterfall development has been used for decades to develop large, complex systems. Waterfall development programs can take years to complete, with a significant initial time and cost commitment in which requirements are analyzed and derived, and software is designed based on those requirements.
Waterfall development is the classic top-down, milestone-driven development process. It generally consists of requirements, design, implementation, verification, and maintenance phases, as shown:
![](https://epubservercos.yuewen.com/76A74E/19470384401520606/epubprivate/OEBPS/Images/a4705a64-5a58-4f59-bc10-f8cc5a48f818.png?sign=1739246339-nVrrKkrjFafhV0Nj7Icyqq2sk8Ljg31T-0-873057d4823a47eb7f300e7367714d3b)
Development teams progress through these phases, and each phase must be completed prior to moving to the next. It is not uncommon for a development team to spend years in a single phase, with no production code being fielded until a significant amount of time has passed.
Waterfall projects pass through a series of gates, or reviews. These ensure that stakeholders and executives are satisfied with the state of the program, before passing to the next phase. Reviews often include:
- System Requirements Review (SRR)
- Preliminary Design Review (PDR)
- Critical Design Review (CDR)