SDLC: Waterfall Model

Waterfall model: The waterfall Model is a linear sequential flow. In which progress is seen as flowing steadily downwards (like a waterfall) through the phases of software implementation. This means that any phase in the development process begins only if the previous phase is complete. The waterfall approach does not define the process to go back to the previous phase to handle changes in requirement. The waterfall approach is the earliest approach that was used for software development.



Advantages:
  • All the phases are completed at one time
  • It has a rigid structure which is easy to use and each phase has review process.
  • Good for small project
Disadvantages:
  • Future adjustments in the project are not possible.
  • No prototypes are produced
  • Not suitable for projects with moderate requirements, long projects, and for the projects which may undergo future changes.

SDLC Models

There are various Software development models or methodologies.
  • Waterfall model
  • Incremental model:
  • RAD model:
  • Agile model:
  • Iterative model:
  • Spiral model:
  • VModel:

Introduction to SDLC

SDLC is the acronym of Software Development Life Cycle.

The software development life cycle (SDLC) is a process followed by a development team within the software organization. It consists of a detailed plan describing how to develop, maintain and replace specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.

The SDLC aims to produce a high quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.

Various Phases in SDLC:

SDLC is a disciplined and systematic approach that divides the software development process into various phases, such as requirement, design, and coding. The phase-wise development process helps to track schedule, cost, and quality of the software projects life cycle.

Each phase produces deliverables required by the next phase in the life cycle.
  • Preliminary Phase: Preliminary system study is the first stage of system development life cycle.
  • Feasibility analysis: The feasibility analysis also includes the technical feasibility of a project in terms of available software tools, hardware, and skilled software professionals. At the end of this phase, a feasibility report for the entire project is created.
  • Requirement analysis and Analysis: The most important part of software development, requirement gathering or requirement analysis are usually done by the most skilled and experienced software engineers in the organization. At the end of this phase, the Software Requirement Specification (SRS) document is prepared. SRS is a formal document that acts as a written agreement between the development team and the customer. SRS acts as input to the design phase and includes functional, performance, software, hardware, and network requirements of the project.
  • Design: Includes translation of the requirements specified in the SRS into a logical structure that can be implemented in a programming language. The output of the design phase is a design document that acts as an input for all the subsequent SDLC phases.
  • Implementation / Coding: On receiving system design documents, the work is divided in modules/units and actual coding is started. Since, in this phase the code is produced so it is the main focus for the developer. This is the longest phase of the software development life cycle.
  • Testing: After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase unit testing, integration testing, system testing, acceptance testing are done.
  • Deployment: After successful testing the product is delivered / deployed to the customer for their use.
  • Maintenance: Once when the customers starts using the developed system then the actual problems comes up and needs to be solved from time to time. This process where the care is taken for the developed product is known as maintenance.