![]() |
![]() |
![]() |
|
![]() |
Product DescriptionTable of ContentsWhat is CMS?
SCM Labs' methodology for implementing effective software configuration management (SCM) solutions covers four main areas: version control, build control, change control, and dependency control. CMS is a set of multi-platform tools that support this system by extending traditional SCM tool functionality. In addition to basic version control, CMS provides support for multiple projects, multiple lines of development (LODs), release control, build control, and release distribution. Existing version control tools, like RCS, provide time-proven mechanisms for storing multiple versions and change history of a file into a single archive file. Once a version of a file has been placed into an RCS archive, that version can be retrieved from the archive as needed. Over time, the RCS archive will grow to contain all the versions of a file that have been checked into RCS. These tools also provide a mechanism for preventing multiple users from concurrently modifying the same file. By enforcing a file lock, a single person reserves the right to modify a file in an RCS archive. This prevents one person from accidentally overwriting the changes of another. The problem with basic version control systems is that they only work with single files. CMS extends the basic version control system to work with logical groupings of files in a project context. It also provides release- and project-level viewpoints of a collection of RCS file archives. This is accomplished by translating CMS commands into a series of individual RCS commands required to carry out SCM tasks in a project- and release-level context. From a developer's point of view, CMS provides tools to create a complete working copy of the current LOD, called an instance. This means that a developer can extract from the CMS system a complete copy of the most recent files used in a project. Since the developer now has a personal copy of the whole project in a private working directory, he or she can add and test new features without affecting others. When a change is completed, the developer can check the changes into the CMS system without the worry of overwriting someone else's changes. CMS also provides the functionality to allow a developer to query the status of a project and learn the who, what and when of file modifications within a project. It also integrates the build process into the SCM system. By issuing a CMS command, a developer can rebuild his or her project instance to test new changes. From a SCM administrator's point of view, CMS provides the tools needed to quickly create an entire release and make it available for use. It allows the SCM system administrator to perform other common tasks such as enforcing code freezes, creating baselines, and labeling releases. And releases of projects can be associated with different quality levels as well as different promotion levels (i.e. development, test, and production). The test group benefits from the functionality provided by CMS in other ways. The tool set allows for complete releases of software to be identified within the archives. CMS maintains these releases forever, allowing any previous release to be retrieved. CMS also provides the tools necessary to identify changes between releases of a product. This allows the test group to identify areas to be re-tested and areas remaining unchanged. CMS forms the foundation for more sophisticated SCM tools. These tools can be SCM metrics and statistics systems, release management systems, and automated testing systems. In addition, CMS provides built-in mechanisms to mine data from the CMS archives and store this information into a relational database management system (RDBMS) such as SyBase or Oracle. The reporting system has an easy-to-use web interface to analyze statistical information gathered from the SCM repository. As indicated in the diagram, CMS provides the critical foundation upon which a successful SCM implementation is based, and supports the extension of the software configuration management system to provide a broad range of functionality. Pricing ModelWhen you engage the services of SCM Labs, the CMS tool set comes free of charge. Since SCM Labs is primarily concerned with implementing effective SCM solutions, we are not in the business of selling technical tools to achieve our clients' goals. Tools alone do not provide effective SCM solutions. Our extensive knowledge and practical experience with the latest concepts in SCM allow us to quickly integrate a tool set and practices within your environment, bringing structure, reliability and predictability to complex distributed development environments. Our SCM services range from training and SCM software installation to assisting clients in building internal SCM departments, to complete out-tasking (link to service description page) of SCM services for development groups. Our CMS tool is just one part of this service. After SCM Labs has completed an SCM implementation for a client, the source and rights to the CMS tool set remain with the client. FeaturesSCM Labs software configuration management tool, CMS, is implemented using industry-standard open-source solutions. By integrating well-known, freely-available software packages like, Perl, RCS, and Samba into the CMS system, SCM Labs is able to implement a complete, seamless, and flexible SCM solution.Highlights
Cross-PlatformCMS currently supports the following hardware / operating system levels concurrently:
SecurityCMS implements security based upon UNIX file permissions. By integrating the proper file and directory level permissions with the "setuid" functionality provided by the UNIX operations system, CMS can obtain a completely secure and safe environment for your software assets.CMS can also be customized to implement user and group level security features. This will allow you to configure read-only or no-access to projects in the repository on an individual project basis. FlexibilitySince CMS is based upon Perl and other well-known software packages, it is easily customizable and configurable. SCM Labs' consultants, or your own employees, can make changes and additions to the tool set with little effort. This flexibility will allow you to develop a custom solution for your unique business and development situations.Designed for corporate development organizationsThe CMS(tm) tool provides the perfect set of functionality to support software development teams. CMS does not come with a graphical user interface. Rather, by placing all of the functionality needed by a development team in a command line environment, developers can integrate the needed SCM activities directly into their daily development routine.Provides project and release level abstraction over simple version control toolsThe CMS tool set operates at the proper level of abstraction to support your development team. All users of the CMS system will be able to work with whole projects easily and efficiently.Integrated with proven and principle-driven SCM processesThe CMS tool set integrates all of the features you would expect to find in an off-the-self version control tool. CMS will maintain a revision history, multiple developer access, releases, and promotions in one tool set. Additionally, CMS integrates defect tracking and build control into one tool set. A software development team does not need to learn separate tools for version control, make or build functionality, bug-tracking, and software deployment. All of these separate yet related tasks have been integrated into the CMS tool set.Ease of useDevelopers can learn the few commands necessary to be an effective CMS(tm) user in a short amount of time. CMS contains an online, built-in help system to guide both new users and experienced SCM administrators in the use of the tool. Also, since CMS has been developed to have the same look and feel as other command line environments, like UNIX and DOS, most users are able to become effective with little or no formal training.SCM Labs does provide a formal "Software Configuration Management - Concepts and Procedures" class along with a hands-on "CMS Training" class that will allow all users to learn all they need to know about effective SCM procedures, and how to use the CMS tool set to implement SCM. |