The software development methodologies are structured approaches that guide how SDLC is executed.

Waterfall model

Waterfall model is one of the most earliest and most straightforward approaches to software development. Each phase must be completed before the next one can begin.

  • Requirement analysis and definition
    • Gather and document all the requirements for the software project. The output from this phase is the requirement document.
  • System and software design
    • Design the system architecture based on the gathered requirements. The output in this phase is the design specification document.
  • Implementation and unit testing
    • Convert the design into code and test it for system components based on the design specification document. The output from this phase is the source code.
  • Integration and system testing
    • Software components are integrated and the resulting system is tested. The output from this phase is the tested software.
  • Operation and maintenance
    • Deploy the tested software in the production environment, and provide ongoing support and maintenance for the software.

Advantages Easy to understand and implement, defined deliverables and milestones.

Disadvantages Intensive documenting and planning, discovering issues in later phases should lead to returning to earlier phase. Difficult and costly of accommodating change after the process is underway due to the plan-driven natural of the model.

Agile model

Agile development is an iterative and incremental approach to software development. It is light-weighted, flexible, and people-based rather than plan based. It is more adaptive and responsive to changes. By iterating through the agile development phrases, the team can deliver functional software incrementally, ensuring each release is better than the last. There is no “standard way” to do requirements in agile development, the requirements are based on user stories. For some key requirements, create some acceptance tests during requirement finalisation.


Back to parent page: Software Development Life Cycle (SDLC)

SDLCSoftware_Development_MethodologiesWaterfall_ModelSOFT2412