The most widely used definition of software configuration management (SCM) comes from the standards community [IEEE87, IEEE90a, IEEE90b, Buck93]. <em>Configuration management</em> (CM) is a discipline that oversees the entire life-cycle of a software product (or family of related products). Specifically, CM requires <em>identification</em> of the components to be controlled (configuration items) and the structure of the product, <em>control over changes</em> to the items (including documentation), accurate and complete <em>record keeping</em>, and a mechanism to <em>audit</em> or verify any actions. This definition is not complete. Dart [Dart92] suggests that the definition should be broadened to include <em>manufacturing issues</em> (optimally managing the construction of the product), <em>process management</em> (ensuring adherence to the defined processes) and <em>team work</em> (supporting and controlling the efforts of multiple developers). Tichy [Tich88] provides a definition that is popular in the academic and research communities: software configuration management is a discipline whose goal is to control changes to large software system families, through the functions of: <em>component identification, change tracking, version selection and baselining, software manufacture</em>, and <em>managing simultaneous updates</em> (team work).