Thursday, April 2, 2009

Software Configuration Management (SCM)

Software Configuration Management (SCM) is part of configuration management (CM). Roger Pressman, in his book Software Engineering: A Practitioner's Approach, says that software configuration management (SCM) is a "set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made." In other words, SCM is a methodology to control and manage a software development project.

SCM concerns itself with answering the question: somebody did something, how can one reproduce it? Often the problem involves not reproducing "it" identically, but with controlled, incremental changes. Answering the question will thus become a matter of comparing different results and of analysing their differences. Traditional CM typically focused on controlled creation of relatively simple products. Nowadays, implementers of SCM face the challenge of dealing with relatively minor increments under their own control, in the context of the complex system being developed.

Variety of artifacts may be managed and versioned, including software code, documents, design models,and even the directory structure itself

The goals of SCM are generally:
Configuration Identification- What code are we working with?
Configuration Control- Controlling the release of a product and its changes.
Status Accounting- Recording and reporting the status of components.
Review- Ensuring completeness and consistency among components.
Build Management- Managing the process and tools used for builds.
Process Management- Ensuring adherence to the organization's development process.
Environment Management- Managing the software and hardware that host our system.
Teamwork- Facilitate team interactions related to the process.
Defect Tracking- making sure every defect has traceability back to the source

2 comments:

  1. Nice information, we can say that Microsoft Visual source safe is a tool used to perform SCM tasks, as Source safe maintains different versions of a software and help tracking changes in the software development life cycle.

    ReplyDelete
  2. Yes, you are right. Microsoft Visual source is a widely used tool for this purpose. It can retain multiple versions of a project as well as multiple versions of each single file in the project. SCM can easily get latest release any time he wants, integration of different developers in the team also gets easy.
    A cool feature i like the most is you can simply right-click a project or file and get complete history of work that has been done.

    ReplyDelete