A software is a collection of items like programs, data, documents etc. that can be changed easily. Throughout the software development cycle the software design documents, software code or software requirements document etc. are changed often and it is very important that the changes done in software are done in a controlled manner.
Software Configuration Management(SCM) is the discipline for systematically controlling the changes in software and supporting documents (like Test Cases, Test Plan, Design Documents, SRS etc.) during the software development life cycle.
As per IEEE Software Configuration Management is:
“SCM is the process of identifying and defining the items in the system, controlling the changes of these items throughout their life cycle, recording and reporting the status of items and change requests, and verifying the completeness and correctness of items.