Software Development Life Cycle
(SDLC) describes the entire process of creating, maintaining, supporting and retiring a software application or module. Many different models exist that describe the phases the methods and practices
associated with them. Without sufficient coordination and communication large and/or complex software applications and modules often never complete or complete much later than planned, can be way
over budget, don’t adequately conform to the requirements or are have very bad quality and/or cannot be supported. Why software projects or products go bad, often times it can be traced to inadequate
or poorly followed SDLC practices.
While the SDLC models are different and define the constituent phases differently, they mostly all describe, one way or another, similar phases that often have very fuzzy boundaries, different
sequences and many models describe a cyclical or iterative process – especially with respect to the planning, design and implementation phases. The following are example phases of SDLC:
- Planning –this phase is when the idea for a product is flushed-out, documented and all the functional groups plan what they must do to deliver the product.
- Design – during this phase, the overview or high-level design is created based upon the requirements defined in the previous phase. The technologies and computer languages are often selected during this phase. Very frequently, the requirements are adjusted and trade-offs made based upon what is discovered during this design process.
- Implementation – during this phase, detailed designs are created, the software source code is written, the application and modules are tested (it is not unusual for ‘testing’ to be defined as a separate phase) and the rest of the organization gets ready for the product – for example, training the sales and support organizations, creating the marketing materials, and building any needed infrastructure.
- Maintenance – describes the phase where updates and follow-on releases of the applications and modules are delivered. Often times, this phase refers to activity associated with fixing problems and adding minor new features. Major features or changes to the product typically being the entire SDLC process again.
- End of Life – describes the point in time when the corporation will no longer sell and/or support a software application or product. Windows-XP is a recent example of an ‘end-of-life’ phase.
For more information:
- A definition of SDLC from a vendor of SDLC software tools
- The Waterfall model, one of the oldest models. It defines strict phase ordering with clear phase transitions. Notice that the names and content of the phases are different than described above.
- The Agile model is relatively new and quite popular.