The State of Automated Configuration Management

1. Introduction Software configuration management (CM) has received, and will continue to receive, a great deal of attention from the software engineering community. CM is an essential part of the software process. It is viewed as a control discipline that brings stability to the evolution of a software product that is developed and maintained by project teams. This is reflected in the widely recognized SEI software process maturity model [56]. In this model, CM is considered a key process improvement area in order to move from level one to level two. To assist in this, automated CM capabilities are needed, making CM a key component of a software development environment (SDE). A large number of commercial products offer CM support. These products range from stand-alone tools running on multiple platforms, to CM services in environment frameworks and in CASE tools. Through automation, CM becomes not only a support function for management, but also support for developers. The focus of this article is tool support for CM. Its main purpose is to give the reader an analysis and summary of the state of CM automation. It ends with our vision for the need of a set of commonly understood CM services. This includes the ability to integrate these CM services to allow sharing between, and greater integration of, development tools. Sections 2 through 4 present the results of investigations by the Software Development Environments project at the SEI into the state of CM automation in commercially available and research systems. The article starts with a definition of CM. This definition, beginning with the widely accepted view of CM as consisting of the four functionality areas of identification, control, status accounting, and audit, is expanded to incorporate process modeling, team work and manufacturing of software. This expanded definition results from examining the tools that automate CM. It encompasses the various roles and views to suit corporate CM, project CM, developer CM, and application CM. The article proceeds by discussing in section 3, the spectrum of concepts that we have observed in CM systems. As well as a proliferation of concepts, we find a proliferation of terminology across CM systems. Different names are used by vendors for the same concept, and different concepts are referred to by the same name. Similarly, implementations of the same concept by different vendors have slightly varying semantics. The spectrum of concepts discussion offers examples of fifteen concepts …

[1]  John A. McDermid,et al.  On integration and reuse in a software development environment , 1991 .

[2]  Michael Stonebraker,et al.  The design of POSTGRES , 1986, SIGMOD '86.

[3]  George Radin,et al.  AD/Cycle Strategy and Architecture , 1990, IBM Syst. J..

[4]  Lowell Jay Arthur Software evolution: the software maintenance challenge , 1988 .

[5]  Watts S. Humphrey,et al.  Characterizing the software process: a maturity framework , 1988, IEEE Software.

[6]  J. F. H. Winkler,et al.  Workshop on software version and configuration control , 1988, SOEN.

[7]  Peter H. Feiler,et al.  Proceedings of the 3rd international workshop on Software configuration management , 1991 .

[8]  Philip A Bernstein Database support for software engineering , 1987 .

[9]  Steven P. Reiss Interacting with the field environment , 1990, Softw. Pract. Exp..

[10]  Ian Thomas,et al.  Tool integration in the Pact environment , 1989, ICSE '89.

[11]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[12]  Susan A. Dart,et al.  Concepts in configuration management systems , 1991, SCM '91.

[13]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[14]  Dilip Soni,et al.  Version management in Gypsy , 1988, Software Development Environments.

[15]  Alan W. Brown Integrated project support environments: the aspect project , 1991 .

[16]  A. Nico Habermann,et al.  Software Development Environments , 1987, Computer.

[17]  Richard N. Taylor,et al.  Proceedings of the 2nd International Workshop on Software configuration management , 1989 .

[18]  P. A. Berstein Database system support for software engineering , 1987, ICSE '87.

[19]  Walter F. Tichy,et al.  Implementation and evaluation of a revision control system , 1982 .

[20]  Dennis Tsichritzis,et al.  The ANSI/X3/SPARC DBMS Framework Report of the Study Group on Dabatase Management Systems , 1978, Inf. Syst..

[21]  Alan W. Brown,et al.  Object-Oriented Databases and Their Applications to Software Engineering , 1991 .

[22]  Peter H. Feiler,et al.  Evaluation of the Rational Environment , 1988 .

[23]  Gail E. Kaiser,et al.  Intelligent assistance for software development and maintenance , 1988, IEEE Software.

[24]  Axel Mahler,et al.  shape - A Software Configuration Management Tool , 1988, SCM.

[25]  Randy H. Katz,et al.  Toward a unified framework for version modeling in engineering databases , 1990, CSUR.

[26]  Erhard Plödereder,et al.  Issues in Designing Object Management Systems , 1989, SEE.

[27]  Larry Masinter,et al.  The Interlisp Programming Environment , 1981, Computer.

[28]  Ian Thomas,et al.  An overview of PCTE and PCTE+ , 1989, SDE 3.

[29]  Tom Strelich The Software Life Cycle Support Environment (SLCSE): a computer based framework for developing software systems , 1988, SDE 3.

[30]  Keith Marzullo,et al.  Jasmine: a software system modelling facility , 1987, SDE 2.

[31]  E. Bersoff,et al.  Software Configuration Management , 1978, SIGMETRICS Perform. Evaluation Rev..

[32]  Peter H. Feiler,et al.  Tool Integration and Environment Architectures , 1991 .

[33]  Peter H. Feiler,et al.  Transaction-Oriented Configuration Management: , 1990 .