Friday, December 18, 2009

SCM Tools










 < Free Open Study > 





SCM Tools



The minimum features for SCM tools are closely related to the task of handling the different product deliverables produced within the project software engineering process. Tool requirements and selection criteria are based on a series of features that provide a consistent look and feel with state-of-the-art software development environments. An SCM tool must have multiuser support, an intuitive graphical user interface, conformity to the organization's development environment, scalability, flexibility in integrating other software development tools, ease of setup, modifiable models, process management, extensive support for the development phase, and management of nondevelopment objects.



Basic selection criteria includes the following:





  • Multiuser support

    Tools are to be used concurrently by several users. They have to store all acquired information in a central, shared repository, and the SCM tool has to allow controlled parallel work on the different project documents.



  • Intuitive GUI

    Because the tools will be used throughout the project and not only by developers, an intuitive, easy-to-use graphical user interface is considered very important.



  • Conformity to the organization's development environment

    The organization must define up front the hardware and software development platforms used. For example, the project may work on a heterogeneous network of Unix-based workstations (mainly Sun Sparc stations) and PCs. The workstations may be used for some part of the development and as a file server and communication server. The PCs may be using MS Windows 2000 NT. PCs and workstations may be interconnected using the NFS protocol (especially Sun PC-NFSpro on the PCs). The tool has to be able to store its shared repositories on a workstation and has to allow PC clients as well as workstation clients supporting the operating systems and protocols.



  • Scalability

    The tool should work equally well for smaller projects as for larger ones.



  • Flexibility in integrating other software development tools

    The tool must allow the integration of all the other development tools to provide a highly homogeneous environment. Especially the tools for design, implementation, and testing will have to co-operate on the common SCM repository.



  • Ease of setup

    The SCM tool should allow an easy installation and setup, and should be able to run nearly "out of the box." It should contain predefined, immediately usable models describing the types of items, the life cycle, and the roles of the different users. The importance of existing projects and their directory structures should be made as easy as possible.



  • Modifiable models

    Though a working set of models should be predefined, each of these should be modifiable and extensible. This is especially important because project managers and developers want to adapt these models to the software development process as defined for the company. Role models must be adapted to the roles assigned to the different employees on the project. Object-type models must be extensible to reflect different types of objects used in the environment and especially with respect to nondevelopment objects.



  • Process management

    Process management comprises efficient support of object life cycles and object promotion, together with a flexible and extensible approach to life cycle models. Based on a concept of object types, it should be possible to attach different life cycles to different types of objects.



  • Extensive support for the development phase

    During development when checkout and update of objects is frequent, the tool should aid a developer in determining the set of objects that need an update or renewed check-in. Although this requirement seems to be trivial at first, the latest version of the tool you plan to use must be evaluated with emphasis on the environment prior to the first build. These do a good job in change management once the first release has been produced.



  • Management of nondevelopment objects

    SCM tools must manage all artifacts of the project, not just code. These will mainly be documents and their versions and releases. The tool must be able to support that.



  • Permission management

    Everyone should not have access to make changes to different pieces of the software. In many situations, check-in and checkout only will not prevent integration from being broken by multiple people modifying code for their own designs and interfaces.



Many configuration management tools in the market promise to fulfill more or less all of the requirements. Chapter 24, "Use of Tools," presented a general model for the selection of tools to support software development and project management. The keys to any tool selection are to know your project's tool requirements, to understand how tools relate to the project's success factors, and to do a current market search for tools. The following is an example of using that tool selection method for an SCM tool. This is simply an example, and it must be updated with individual key project success factors, tool requirements, and the tools available in the market based on the project's schedule requirements.



A quick search of the market in SCM tools provided the list of potential candidates for the tool as shown in Table 31-1.



Table 31-1. SCM Tools
Name of ToolDescription and CompanyInternet Address
AllChange 2000 SE



IntaSoft



www.intasoft.net/
CCC/Harvest, CCC/Manager, CCC QuikTrak



Computer Associates (formerly Platinum)



ca.com/products/ccm/
ClearCase



Rational (formerly PureAtria)



www.rational.com/products/clearcase
CMVC, now VisualAge Team Connection



Configuration Management and Version Control, IBM



www-4.ibm.com/software/ad/teamcon/
Continuus



Continuus



www.continuus.com/
eChange Man



Serena



www.serena.com/html/echange.htm
Enabler aqua



Softlab



www.softlab.com/technology/frm_tech00.asp
Endevor



Computer Associates



www.cai.com/products/endevor_ws.htm
Perforce



Perforce Software



www.perforce.com/
PVCSMERANT (formed by a combination of MicroFocus and Intersolv)



www.merant.com/products/pvcs/
PVCS Dimensions



MERANT (formerly PCMS Dimensions from SQL Software)



www.merant.com/products/pvcs/



www.pvcs.synergex.com/

Razor



Visible Software



 
RCE (VRCE)



Revision Control Engine (Visual RCE) DuraSoft GmbH



wwwipd.ira.uka.de/~RCE/
Sablime



Lucent Technologies



www.bell-labs.com/project/sablime/
SCCSSource Code Control System



Comes with most Unix distributions.
SCLM



Software Configuration Library Manager, IBM



booksrv2.raleigh.ibm.com/
SCMSource Code Manager, UniPress Software, Inc.



www.unipress.com/cat/scm.html
SoftBench



HP



www.devresource.hp.com/softbench/sb_description.html
Source Integrity



MKS



www.mks.com/products/scm/si/
StarTeam



StarBase



www.starbase.com/products/starteam/
TeamSite



Interwoven



www.interwoven.com
TRUEchange



McCabe and Associates



www.mccabe.com/products/truechange.htm
TurnOver



Soft Landing Systems



www.softlanding.com/turnover.html
Visual Age TeamConnection



IBM



www-4.ibm.com/software/ad/teamcon/
Visual Enabler



Soft Lab



www.softlabna.com/pages/espages/visenable.htm
Visual Source Safe



Microsoft Corp. (PC) / Metrowerks (Macintosh)



www.microsoft.com/ssafe/



From the list, four were picked as possible commercial products that would meet the project's requirements:



  1. PCMS is an established product with strong all-round capability to manage the development of complex software projects over a wide range of platforms. Based on information in the public domain, PCMS has shown the greatest level of product development.

  2. ClearCase is the dominant commercial SCM-tool in Unix development environments and is rapidly moving into NT client/server market development environments. It has achieved this principally by providing developers with transparent tools supporting their work environment and culture. The introduction of ClearTrack extends the all-around capability of the tool set by supporting the management and documentation of changes. After the recent liaison between Rational Software Corporation and Atria Software, Inc., an interesting merge of features between the object-oriented design tool Rational Rose and ClearCase may be expected.

  3. Continuus/CM toolset is characterized by a strong embedded support for process, and its breadth of SCM coverage. The task-based process model is an intuitive approach to the management of change. Distributed development via direct links or over the Internet is simple to set up and operate. However, working across low-grade communication networks is difficult to set up and administer.

  4. PVCS is the market-leading system for software configuration management by numbers sold. It is simple to use and has stood the test of time. Intersolv has gradually added functionality to Version Manager with associated products such as Tracker, Configuration Builder, and Gateway, and by integrating PVCS with many third-party tools.



Following an example from SEI, we formed a ranking system for comparing the tools (Figure 31-4). Table 31-2 shows the rating for the considered tools.



Figure 31-4. SEI Template for Ranking CM Plans

Source: SEI, from Configuration Management Plans: The Beginning to your CM Solution.



The result of this first ranking allows one of the potential tools, PVCS, to be dropped. This would then leave three for the project manager and tool evaluation team to take a more in-depth look. Note that there has been no discussion of price at this time. Once the technical decision has been made, the cost decision should follow. Do not introduce price early in the evaluation. If there is discomfort with the technical capabilities and life cycle coverage of a tool, adding in a cost variable will only further confuse the decision. Many software project tools become less desirable after full life cycle cost is analyzed and estimated. Make the technical decision first.



As a final note on tools, working strictly in a Microsoft development environment with Microsoft tools working under Visual InterDev, Visual Source Safe (VSS) is included as an integral part of the tool suite. VSS is an adequate SCM tool for small commercial product development that is strictly targeted to Microsoft platforms. If you're developing on Microsoft platforms and have delivery targets on Linux or Unix, investigate the use of WinCVS. WinCVS is a shareware package that is very capable in providing large-project, multiplatform SCM. It compares favorably with most and betters some commercial SCM tools.












     < Free Open Study > 



    No comments: