Software-Configuration-Management

The software configuration management (SCM ) and software configuration management is a specialization of configuration management on all activities in the field of software development.

SCM has several goals:

  • Definition and tracking of processes
  • Documentation of all processes
  • Versioning and conflict handling
  • Management of conditions
  • Efficiency improvements in automated application creation
  • Integration of all existing tools
  • Access control

SCM is often understood as a version control software.

Some of the tasks of SCM are handled manually. A typical encountered in business scenario is versioning, which is supplemented with databases based on Lotus Notes or Excel. This compares with powerful tools, which are also used in industry.

  • 2.1 Data Management
  • 2.2 compatibility
  • 2.3 demarcation
  • 2.4 Operation Introduction

Basic considerations

This is called a total of three generations of software version control systems. The first two generations are determined by centrally held data storage. The third generation is oriented decentralized, see Git, Bazaar, Mercurial.

An academic research on the subject will take place only to a very modest extent, and in the academic curriculum of computer science the subject SCM not appear at all. As a result, many of the occurring problems to be solved in principle and are the graduate students not present, which in turn leads to no market demand. This does not see the big companies the need to occupy the market for itself and thus away from the academic paths to create standards. The result is thus a strong fragmentation of the market and each idiosyncratic views on the scope, terms, integration, availability and compatibility.

Basic objects must have an SCM tool, are project file configuration unit, baseline and product.

Project

A project is characterized by start, end and scope. Because in the development commonly so something larger is meant this part is often part of the project, change, Change Order, Change Request, Task, etc. mentioned. While it is possible to make do with only one level of the hierarchy, but it is the work that was most awkward. Therefore give you the tools several stages before or allow it to define these dates in order to ensure a delegation to other persons or teams. Typical hierarchies Project Task Subtask.

File

In SCM, the file is usually considered a basic object that needs to be managed. In addition to simple versioning, it is common for an accelerated production process necessary to bring together the development branch and again. In detail, however, other problems occur that are not considered in the selection of the SCM tool, but afterwards can lead to problems. It begins with the topic of renaming the file, which is often not possible with simple version control. Next belong to the set of problems moving to a different directory or deletion. Different solved, sometimes ignored, are directories. The latter can either only appear in the image on the file system or are actually also versioned as objects.

The transfer between the version management and file system provides further complications if more than one operating system type must be supplied. With problems of uppercase and lowercase letters and their conflicts as well as special types such as symbolic and hard links, Devices, Pipes, etc. Other locations that need to be considered, are character sets for file names and contents that need to be treated separately, or timestamp. Because the operating systems support different times, for example, the Windows Creation Time, Unix, however, not such things need to be addressed, however, accounted for most products. The change in time is however observed more often because they can have two possible values ​​when being played in the file system: the actual time or modification time before archiving. What time must be selected depends on the build system that uses the user.

Baseline

Because that have many versions of the library, there must be a mechanism that also characterizes the matching versions. This is referred to as " tagging " or " baselining ". The possible variations that lead to the creation, are numerous. Sometimes a view is created on the versions with rules and then marked. Alternatively, rules can cause. The most sensible method, which is rarely sufficiently well supported, is the change management by projects in which process changes may only be carried out when the processes are mature.

Product

The aim of software development is a product that usually consists of one or more programs. The divider products is necessary for the SCM tool can be used for multiple applications without being installed multiple times. For most real-world developments, the classification is too coarse for products. Therefore usually exist subcategories, whereby the hierarchy often serve as a springboard for access permissions.

Configuration unit

Configuration unit in this context means an " any combination of hardware, software, or service '. Configuration management is therefore not bound per se to a specific application context and a system configuration.

See configuration management (CM )

Additional properties

Almost always exist, depending on the philosophy of the tool, other objects. These often relate to the relationships among the objects or the view of this, and in particular the files (views, worksets ). There may be assistance for dealing with certain operating systems, group permissions, delegations, etc. Unresolved external processes is the problem, such as version changes are made to databases. Pragmatic approach is to manage the SQL scripts, but it does not solve the problem that both the data model difference to the predecessor as well as the reconstruction must be provided.

Reliable considerations

Data management

Above, was demonstrated that the structures usually are in a hierarchical SCM tool indeterminate depth, while the individual pieces tend to have the properties of objects. That makes the storage in the widely used relational databases is difficult because the structures and flexibility are difficult to map performant and maintainable. The history of IBM, with its SCM tools makes it clear.

IBM originally used for Windows and Unix CMVC with a relational database. His successor was the team Connect, the ObjectStore, an object-oriented database based. The next version switched to DB2. IBM ended the line and bought the company a Rational, ClearCase, which had in its portfolio. The application is based on a self-developed, object-oriented database, while the complement Rational ClearQuest for tracking process uses various relational databases.

Product Dimensions uses Oracle as a relational database, however, adds to the file system of the server as a version archive. The data model is only partially normalized.

Compatibility

The lack of academic research and the lack of market power of a single manufacturer, and the top only hinted complexity that still rises significantly to the time axis, ensure low compatibility between products. Although manufacturers provide tools which bring the data with a change in their product, but this is done at a very low level. Migration is therefore to plan very, very expensive and as a consequence usually incomplete because the costs exceed the benefits of old data by far. After the introduction of additional, significant investments are to be made to ensure that the SCM environment is usable and maintainable. The situation is well-known manufacturers and is used to restrict competition in the sale. A powered system is only replaced when requirements and solution provision worlds apart.

Likewise, the integration into the development environment is always bad. The only common standard SCC from Microsoft is designed for pure version management, but is used by manufacturers to significantly more complex things. In consequence, this means that development and management tools often require specific version combinations to work together. Are these versions, however, depends on other factors, can quickly come out as intersection of the empty set. Not infrequently, therefore omitted deeper integration or the transitions have fractures, which usually also open security holes (unofficial versions). This project management, SCM, development environments and test tools should be integrated in order to largely automate the work process.

It also means no difficulty, an SCM tool for Windows and a well-known variant of Unix to get (Linux, Solaris, AIX, HP- UX). But beyond that extent are platforms such as MVS, AS400, OS / 2, or even more exotic only sporadically, often not supported, with the exception of open-source version control systems.

Demarcation

SCM systems are heavyweights of the software development. In addition to those stated above minimum requirements that they provide in a highly advanced version, they offer small-scale rights administrations, variant management and advanced lifecycle administration. They are significantly more complex than the lightweight relatives " Version Control Systems". SCM systems are known as open software.

Operating introduction

The introduction to the operation is difficult and often a strategic decision. The costs are not limited to the purchase and maintenance for the first year, but include numerous discussions which are provided at high hourly rates by the manufacturer. This business model is tolerated by the manufacturers or even wanted to, because secondary literature on the products does not exist. The product documentation is usually limited to explanation of the details, but allows the interaction of the components to a desired destination outside before. Furthermore, costs for user training are to be expected because most products are in use is not self-explanatory, or, where the ease of use is given in the base product, the company processes can not be adequately represented simply in their complexity.

In addition, most development teams hinder the introduction because often processes and procedures need to be changed, the current fiscal is disturbed and "it's not necessary." The use of the SCM tool typically speeds up the work, but the added value is because it is usually based on little things, cost accounting can not be detected and thus arguments can not be used. Rarely is also seen that the prescribed or desired reports can be created automatically.

In Germany the approval of the works is also imperative, because all changes are logged employee related. This allows the SCM tool can be used for power control.

Product Overview

There are many different systems on the market. A review of more well-known products:

  • AccuRev
  • EASEE
  • BitKeeper
  • ClearCase
  • Team Foundation Server
  • Perforce
  • PureCM
  • Sablime
  • Serena Dimensions
  • Serena PVCS
  • SET LIBER
  • Smart Bear
  • SpectrumSCM
  • Surround SCM
  • IBM Rational Synergy (formerly Telelogic Synergy, Synergy / CM, former CM / Synergy, former Continuus CM)
  • MKS Source

Open Source:

The following products are no SCM systems, but only version control systems:

  • CVS
  • Git
  • Mercurial
  • Microsoft Visual SourceSafe
  • RCS
  • Serena PVCS Version Manager
  • SCCS
  • Subversion
736573
de