Vad är CM?

(Jerker Montelius)

Vad är CM? Versionshanteringssystem? Releashantering? Om vi skall vara lite teoretiska till att börja med så finns det tre olika definitioner som man bör känna till innan vi går in på rent praktiska detaljer. Om ni misstänker att det här kommer att bli långt och tekniskt så har ni alldeles rätt så håll i hattarna.

1.1IEEE

Den mest generellt accepterade definitionen står IEEE för.

De skriver i IEEE Standard 828-1990, Software Configuration Management Plans.

"SCM activities are traditionally grouped into four functions:

  1. configuration identification,
  2. configuration control,
  3. status accounting, and
  4. configuration audits and reviews."

IEEE Standard 828-1990 fortsätter med att lista aktiviteter associerade med varje av de fyra funktionerna.

  • Identification: identify, name, and describe the documented physical and functional characteristics of the code, specifications, design, and data elements to be controlled for the project.
  • Control: request, evaluate, approve or disapprove, and implement changes
  • Status accounting: record and report the status of project configuration items [initial approved version. status of requested changes, implementation status of approved changes]
  • Audits and reviews: determine to what extent the actual configuration item reflects the required physical and functional characteristics

Denna lista är liknande den vi får av Pressman:

"Software configuration management is an umbrella activity ... developed to

  1. identify change,
  2. control change,
  3. ensure that change is being properly implemented, and
  4. report change to others who may have an interest."

1.2ISO

I ISP dokumentet “ISO 9000-3:1991 Guidelines for the application of ISO 9001 to the development, supply and maintenance of software”, identifieras ISO en liknade lista av aktiviteter för CM:

"Configuration management provides a mechanism for identifying, controlling and tracking the versions of each software item. In many cases earlier versions still in use must also be maintained and controlled.

"The [CM] system should

  1. identify uniquely the versions of each software item
  2. identify the versions of each software item which together constitute a specific version of a complete product
  3. identity the build status of software products in development or delivered and installed
  4. control simultaneous updating of a given software item by more than one person
  5. provide coordination for the updating of multiple products in one or more locations as required
  6. identify and track all actions and changes resulting from a change request, from initiation ... to release."

1.3SEI

Baserat på en genomgång av CM-verktyg och en mer utvecklad syn på CM organisation ger SEI en bredare definition av CM i SEI-92-TR-8:

"The standard definition for CM taken from IEEE standard 729-1983 [updated as IEEE Std 610.12-1990] includes:

"Identification: identifying the structure of the product, its components and their type, and making them unique and accessible in some form

"Control: controlling the release of product and changes to it throughout the life cycle

"Status Accounting: recording and reporting the status of components and change requests, and gathering vital statistics about components in the product

"Audit and review: validating the completeness of a product and maintaining consistency among the components

IEEE definitionen måste utökas för att också omfatta :

"Manufacturing: managing the construction and building of the product

"Process management: ensuring the correct execution of the organization's procedures, policies, and life-cycle model

"Team work: controlling the work and interactions between multiple developers on a product."