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