Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesTrack That Code


March 1996 / Applications Development Features / Track That Code

Complex development problems require powerful solutions. Modern version-control systems may be the answer you need.

Kip McClanahan

If yelling, "Where's the floppy with the source code?" is your idea of version control, then you may be sacrificing productivity and quality. More rigorous version control is now available in several forms, ranging from utilities integrated into popular development environments to cross-platform, multitool, distributed configuration managers.

We're talking about tools that go beyond the traditional low-end version-control (VC) tools -- such as the RCS (Revision Control System) and SCCS (Source Code Control System) packages -- that were built around the concept of a vault. With these tools, an individual developer creates a work env ironment by extracting source files from a central repository and copying them to a private workspace outside the VC system. Typically, all source files must be copied -- even those that the developer doesn't plan to change.

As he or she completes the changes, the developer checks the revised source code back into the vault. In an active project, this results in many copies of each source file. Because programmers change the files outside of the VC system, they cannot coordinate simultaneous updates to the sources. This limitation often results in such problems as developers overwriting each other's changes, and it limits the opportunities for concurrent development.

Contemporary development demands have put even more pressure on this older approach. For one, teams no longer work on a single source base; parallel development, where many development teams work on the same source base for both maintenance and future product development, is common .

In addition, the chance of a single software manufacturer's producing products that can work together on Unix and PC platforms alike is much higher today. Similarly, the availability of scalable OSes that can run on RISC and Intel platforms alike, such as Windows NT, has encouraged manufacturers of high-end enterprise tools to produce versions that accommodate both types of platforms.

More robust VC tools allow developers to track all changes made to every file in a project. Furthermore, they manage access to different components of a project, enabling controlled sharing of code among the (possibly several) development teams that are involved. In a large-scale effort, where programming teams might be at different geographical sites, a comprehensive VC system enables each team to view the others' changes while maintaining control over access to the source files.

A configuration management (CM) system includes the functions of an advanced VC system and expands them in several important area s. Instead of simply allowing a developer to create a workspace by checking out source files, a CM system manages that workspace to the benefit of the entire project. A developer working on one section of code, for example, might want to test current changes for compatibility with the latest code revi-sions from one team while remaining isolated from the changes that are being implemented by another team.

In addition, a vigorous CM system includes such build management features as minimal rebuilding, documenting the components that make up each software build, and making available the entire file environment of any build. The reliability and reproducibility of the build environment are critical for quality control and for tracing the genesis of any bugs that are discovered later in the testing process.

Support and enforcement of organization-specific policies and procedures are the final tasks of a modern CM system. Because such a system holds key information about a project, including the status of and relationships among its individual components, it's uniquely able to generate status reports, identify and track problems early in the development cycle, and project forward to milestones.

The New Frontier

The importance of VC as a part of the software development process has evolved dramatically from the earliest "who's got the source floppy?" stage. Yet many software developers continue to use homegrown VC systems that grew along with their products. In a recent survey, only 5 percent of the software companies polled worldwide reported that they used a commercial VC/CM product.

This may be in part because compilers and visual design environments, particularly in the Windows environment, increasingly include their own somewhat-limited VC capability. The simplicity of these built-in and add-on facilities makes them more approachable than full CM packages. However, simplicity comes at a price: lack of process control, lack of an automated workspace setup, and limited scala bility.

Clearly, times have changed and the development process has evolved. Powerful new features are appearing in the current crop of VC/CM tools in an effort to keep pace with today's software development requirements. Although many features of VC/CM tools are touted by their providers, a few key areas of VC and CM products are crucial.

Development Environment Integration

Version control must be readily available and easy to use from the comfort of the development environment. Nearly every VC/CM solution provides (or is scheduled to provide) integration with common development environments. Intersolv's PVCS and Mortice Kern Systems' Source Integrity, for example, support many of the popular integrated development environments (IDEs), including Delphi, Visual Basic, and Visual C/C++.

To encourage integration, many VC/CM providers publish a set of APIs that third-party applications can use to incorporate VC/CM features into their applications. If your development project intends to use, or could benefit from, such features, a published API should be high on your feature-set checklist. Xcc Software's RCE, for example, is delivered as a set of APIs in library (DLL or LIB) form.

Low-level integration of VC and CM opens up other doors that might move VC/CM tools into common usage. For instance, a developer charged with creating a VC system for software might leverage that work by developing a modified system to track drawings in a CAD/CAM system or documents in a marketing group. For these applications, an API-based system may provide the most flexibility. VC/CM manufacturers see this situation emerging. By building task flexibility into a system, they can market their tools as a single enterprise-wide management system.

Cross-Platform Support

Now that PC compatibles, Macs, and Unix workstations can all serve as common development platforms within the same corporation, VC/CM solutions must address the needs of a heterogeneous environment. Consider the range of computer systems attached to the Internet: For the most part, the hardware details are completely transparent to the user.

Although an enterprise network supports a number of heterogeneous platforms, cross-platform support for development tools is a relatively new concept. Whether a developer is using Windows, Windows 95, Windows NT, OS/2, DOS, Unix, or Mac OS, development tools should function in harmony.

Diverse platforms will increasingly have to interoperate. However, the different compilers, linkers, and OSes that are used in a heterogeneous development environment continue to make this an elusive goal -- but one that is brought closer by advanced VC/CM systems. Atria's ClearCase and Continuus Software's Continuus/CM are two examples of VC/CM products that support a wide range of Unix and PC development environments alike. PVCS, from Intersolv, and Mortice Kern Systems' Source Integrity cov er the PC domain thoroughly.

The FutureVC/CM system providers are working diligently to deliver on their promise to provide increasingly flexible tools that integrate transparently into the software development process. Because of its inherently heterogeneous nature, the Internet will play an important role in removing barriers to VC/CM solutions by encouraging the development of tools for multisite and cross-platform environments. Indeed, the need to track and manage the rapid evolution of documents that are published on the World Wide Web may prove to be the next mainstream application for VC/CM systems.

The best VC/CM solution for your particular development environment depends on a number of factors: feature set, price, product support, future plans, and supported platforms. Soon -- if not already -- a successful VC/CM system will give your competitors an advantage in the development process. Thus, the time to consider VC/CM is now.


WHER E TO FIND


Atria Software, Inc.

Natick, MA
Phone:    (508) 650-5100
Fax:      (508) 650-3573
E-Mail:   
info@atria.com

Internet: 
http://www.atria.com


Continuus Software Corp.

Irvine, CA
Phone:    (714) 453-2200
Fax:      (714) 453-2276
E-Mail:   
info@continuus.com

Internet: 
http://www.continuus.com


Intersolv, Inc.

Rockville, MD
Phone:    (800) 547-7827 or (503) 645-1150
Fax:      (503) 645-4576
E-Mail:   
pvcsinfo@intersolv.com

Internet: 
http://www.intersolv.com


Mortice Kern Systems, Inc.

Waterloo, Ontario, Canada
Phone:    (800) 265-2797 or (519) 884-2251
Fax:      (519) 884-8861
E-Mail:   
inquiry@mks.com

Internet: 
http://www.mks.com


VNP Software

Cambridge, MA
Phone:    (802) 496-7799
Fax:      (802) 496-7790
E-Mail:   
sales@bandw.com

Internet: 
http://www.vnp.com/


DevManXcc Software

Karlsruhe, Germany
Phone:    +49 721 96179 14
Fax:      +49 721 96179 79
E-Mail:   
rce@xcc-ka.de

Internet: 
http://www.xcc-ka.de



The following vendors also offer version-control software: Diamond Optimum Systems, Inc. Woodland Hills, CA Phone: (800) 362-8271 or (818) 224-2010 Fax: (818) 224-2009 E-Mail: DiamondOS@aol.com Internet: http://www.DiamondOS.com Forte Software, In c. Oakland, CA Phone: (510) 869-3400 Fax: (510) 834-1508 E-Mail: info@forte.com IBM Corp. Somers, NY Phone: (800) 426-3333 Internet: http://www.software.ibm.com Microsoft Corp. Redmond, WA Phone: (800) 426-9400 or (206) 882-8080 Fax: (206) 936-7329 Internet: http://www.microsoft.com/ssafe Progress Software Corp. Bedford, MA Phone: (617) 280-4000 Fax: (617) 280-4095 Internet: http://www.progress.com P3 Software Alameda, CA Phone: (510) 865-8720 Fax: (510) 595-8437 E-Mail: p3@p3.com Internet: http://www.p3.com SunSoft, Inc. Mountain View, CA Phone: (800) 786-7638 or (415) 960-3200 Internet: http://www.sun.com/developer-products HotBYTEs - information on products covered or advertised in BYTE

Applications Development Issues

VC/CM solutions promise to help you overcome these 
common development problems:

--  Reduced time to market
--  Increased application size and complexity
--  Large numbers of development and delivery platforms
--  Increased team size
--  Geographical separation
--  Quality-assurance requirements
--  Emphasis on code reusability
--  Impact of programmer turnover





Sizing Up the Features

Advances in version-control and configuration management (VC/CM)
software are currently concentrated in three important categories.
Here's a brief description of what you should expect from products
that claim to support these features.


Development environment integration


This feature should give you seamless access to VC/CM features from
within a common development environment, such as Delphi,
PowerBuilder, Visual Basic, or Visual C/C++. VC/CM features should
appear as icons or menu
 items within the integrated development
environment (IDE). This way, you don't have to exit your IDE, check
out a file, and then reload the IDE. Publication of APIs by the VC/CM
program also allows other applications to integrate VC/CM features
into their base functionality.


Multisite support


This feature enables you to work on a particular project from
different geographical locations. This implies intrinsic support and
control for modem and network access to the project. Initially, you
might want to have one central server that can be remotely accessed;
ultimately, you might need multiple distributed servers that
automatically synchronize with each other.


Cross-platform support


This feature should allow you to work on a project from a variety of
heterogeneous platforms, including Windows, Windows 95, NT, OS/2,
DOS, Unix, and Mac OS. True cross-platform support ensures that you
can exchange and manipulate source code independently of your current
pla
tform.




Successful Synchronization

illustration_link (34 Kbytes)

A successful VC/CM system might need to synchronize files at multiple remote sites among different development teams, create interim builds that can be replicated, and monitor work flow to ensure timely delivery of an end product.


Continuus Finds Concurrent Files

screen_link (34 Kbytes)

Continuus/CM notifies a user that there are parallel versions of a particular file (here, draw.c) in existence. Any or all versions are available for merging with a user's current changes.


Clearly a Case of Historical Details

screen_link (16 Kbytes)


Kip McClanahan is a systems software designer for Motorola. He has been a PC programmer for 13 years. You can contact him on the Internet or BIX at editors@bix.com .

Up to the Applications Development Features section contentsGo to next article: High-End Watershed: Multisite SupportSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network