SOFTWARE DEVELOPMENT LIFE CYCLE [SDLC] Information:
Software Development Life Cycle, or Software Development Process, defines the steps/stages/phases in the building of software.
There are various kinds of software development models like:
Waterfall model
Spiral model
Iterative and incremental development (like ‘Unified Process’ and ‘Rational Unified Process’)
Agile development (like ‘Extreme Programming’ and ‘Scrum’)
Models are evolving with time and the development life cycle can vary significantly from one model to the other. It is beyond the scope of this particular article to discuss each model. However, each model comprises of all or some of the following phases/activities/tasks.
SDLC IN SUMMARY
Project Planning
Requirements Development
Estimation
Scheduling
Design
Coding
Test Build/Deployment
Unit Testing
Integration Testing
User Documentation
System Testing
Acceptance Testing
Production Build/Deployment
Release
Maintenance
SDLC IN DETAIL
Project Planning
Prepare
Review
Rework
Baseline
Revise [if necessary] >> Review >> Rework >> Baseline
Requirements Development [Business Requirements and Software/Product Requirements]
Develop
Review
Rework
Baseline
Revise [if necessary] >> Review >> Rework >> Baseline
Estimation [Size / Effort / Cost]
Prepare
Review
Rework
Baseline
Revise [if necessary] >> Review >> Rework >> Baseline
Scheduling
Prepare
Review
Rework
Baseline
Revise [if necessary] >> Review >> Rework >> Baseline
Designing[ High Level Design and Detail Design]
Coding
Code
Review
Rework
Commit
Recode [if necessary] >> Review >> Rework >> Commit
Test Builds Preparation/Deployment
Build/Deployment Plan
Prepare
Review
Rework
Baseline
Revise [if necessary] >> Review >> Rework >> Baseline
Build/Deploy
Unit Testing
Test Plan
Prepare
Review
Rework
Baseline
Revise [if necessary] >> Review >> Rework >> Baseline
Test Cases/Scripts
Prepare
Review
Rework
Baseline
Execute
Revise [if necessary] >> Review >> Rework >> Baseline >> Execute
Integration Testing
Test Plan
Prepare
Review
Rework
Baseline
Revise [if necessary] >> Review >> Rework >> Baseline
Test Cases/Scripts
Prepare
Review
Rework
Baseline
Execute
Revise [if necessary] >> Review >> Rework >> Baseline >> Execute
User Documentation
Prepare
Review
Rework
Baseline
Revise [if necessary] >> Review >> Rework >> Baseline
System Testing
Test Plan
Prepare
Review
Rework
Baseline
Revise [if necessary] >> Review >> Rework >> Baseline
Test Cases/Scripts
Prepare
Review
Rework
Baseline
Execute
Revise [if necessary] >> Review >> Rework >> Baseline >> Execute
Acceptance Testing [ Internal Acceptance Test and External Acceptance Test]
Test Plan
Prepare
Review
Rework
Baseline
Revise [if necessary] >> Review >> Rework >> Baseline
Test Cases/Scripts
Prepare
Review
Rework
Baseline
Execute
Revise [if necessary] >> Review >> Rework >> Baseline >> Execute
Production Build/Deployment
Build/Deployment Plan
Prepare
Review
Rework
Baseline
Revise [if necessary] >> Review >> Rework >> Baseline
Build/Deploy
Release
Prepare
Review
Rework
Release
Maintenance
Recode [Enhance software / Fix bugs]
Retest
Redeploy
Rerelease
Notes:
The life cycle mentioned here is NOT set in stone and each phase does not necessarily have to be implemented in the order mentioned.
Though SDLC uses the term ‘Development’, it does not focus just on the coding tasks done by developers but incorporates the tasks of all stakeholders, including testers.
There may still be many other activities/ tasks which have not been specifically mentioned above, like Configuration Management. No matter what, it is essential that you clearly understand the software development life cycle your project is following. One issue that is widespread in many projects is that software testers are involved much later in the life cycle, due to which they lack visibility and authority (which ultimately compromises software quality).
No comments:
Post a Comment