The Software Development Lifecycle
The Software Development Lifecycle (SDLC) represents the process used to develop a software system, starting with its conception and ending with its termination.
When developing any software system we adopt a development model. There are many development models, each having its advantages and disadvantages, but one way or another they all employ a succession of basic development phases as follows:
Planning and Specifications: Every activity must start with a plan. Failing to plan is planning to fail. The degree of planning differs from one model to another, but it's very important to have a clear understanding of what we are going to build by creating the system's specifications.
Analysis and Design: In this phase we analyze and define the system's structure. We define the architecture, the components, and how these components fit together to produce a working system.
Implementation: This is the development phase. We start code generation based on the system's design using compilers, interpreters, debuggers to bring the system to life.
Testing: As different parts of the system are completed, they are put through a series of tests. Test plans and test cases are used to identify bugs and to ensure that the system is working according to the specifications.
Releasing: After the test phase ends, the system is released and enters the production environment.
Maintenance: Once in the production environment, the system will suffer modifications as a result of undetected bugs or other unexpected events. The system is evaluated and the cycle is repeated.
SCM provides the way to control the software development lifecycle, allowing for a greater degree of software management being one of the core components in the software development process.
Let's see how SCM helps us control the development lifecycle.