Software Development Life Cycle - bounswe/bounswe2016group8 GitHub Wiki

Software Development Life Cycle

The software development life cycle (SDLC) defines tasks performed at each step in the software development process. The life cycle defines a methodology for improving the quality of software and the overall development process.

Steps of SDLC:

1. Planning:

  • Defining problems, requirements and solutions

2. Implementation

3. Testing

4. Documentation

5. Deployment and Maintenance

Waterfall Model

Classic lifecycle model

Advantages:

  • Easy to understand
  • Works well on mature products

Disadvantages:

  • Doesn’t match reality well
  • Doesn’t provide accurate requirements
  • Difficult to integrate risk management

Spiral Model

Experimental way of modeling Loop approach

Advantages:

  • Realism
  • Flexible
  • Good project visualization

Disadvantages:

  • Complicated model
  • Not widely used

Rapid Prototyping Model

Customer oriented development

Advantages:

  • Reduces risk of incorrect user requirements
  • Good where requirements are changing

Disadvantages:

  • Unstable implemented prototype
  • Requires extensive customer collaboration

Iterative

Starts simple and evolves at each step

Advantages:

  • Parallel development can be planned
  • Cost is low when changing requirements
  • Easy to manage risks

Disadvantages:

  • Not suitable for requirements changes
  • Not suitable for smaller projects
  • Management complexity

References & Further Readings