An area of configuration management (CM) that has received little attention is what we call software release management. Consider the following scenario.
SRM (Software Release Manager) is a system that satisfies the requirements for software release management given above. SRM has been built using NUCM [2]. NUCM serves as the underlying distributed repository where all software releases and related information are stored. SRM provides both a Tcl/Tk and a Web interface to its users.
SRM is currently used as the release manager for the software produced by SERL to demonstrate its functionality.
The following screen shot illustrates how software is released using the Tcl/Tk interface to SRM. A developer supplies all relevant information, such as the program name, the release number, release date, etc. In addition, the developer supplies the name of an archive file where the release is stored.
If the software that is being released to SRM is dependent on some other software already stored in SRM, a developer chooses the ``set dependencies'' button from the above screen, which will bring up a new window that looks like the following screen shot. In this particular screen shot, the developer has indicated (the red bar) that ProDAG depends on release 3.1 of LPT, release 3.3 of Q, and release 2.0 of TAOS. SRM remembers that release 3.3 of Q transitively depends on version 403.2 of Arpc, and indicates that through the yellow bar.
After software has been released to SRM, it can be retrieved using another part of SRM. Since SRM is distributed, the software can not only be retrieved at the site where it was released, but also at any other site that is connected (through NUCM) to the site where the software was released.
The following screen shot illustrates how software can be retrieved using SRM. In this particular case, a consumer has selected release 2.0 of ProDAG (the red bar) as the software that they want to retrieve. SRM, through the yellow bars, displays all other software upon which ProDAG dependes. The consumer is able to retrieve all this software at once, even though the software might be distributed over many physically distributed sites. SRM hides this distribution totally from the consumer (i.e., the consumer does not need to use, for example, FTP to connect to some number of different sites to retrieve the various bits and pieces of the whole system).
The detailed information that was filled out by the developer can be displayed through use of the ``Show Detail'' button. A window similar to the very first screen shot will then show up, displaying the requested information. In addition, more insight in the dependence-graph can be obtained by using the ``Show Dependency Graph'' button. A window similar to the next screen shot will show up. In this particular case, one can see that release 2.0 of ProDag depends on release 3.1 of LPT, release 3.3 of Q, and release 2.0 of TAOS. In addition, one can see that ProDAG transitively depends on release 403.2 of Arpc, since release 3.3 of Q depends on that.
The graph can be manipulated as well. If a consumer decides that they already have all or part of the software that a particular software release depends on, they can indicate to SRM that they do not want that part. For example, in the next screen shot, the consumer has indicated that they already have release 3.3 of Q (and consequently release 403.2 of Arpc) by simply clicking on the node. Now if the consumer retrieves the software, SRM will not retrieve Q and Arpc.
In addition to the Tcl/Tk interface, we have also developed a Web interface to SRM. Consumers are able to use Web to obtain a software release, including (if they wish too) the software upon which it depends. This interface offers the best of both worlds: the accurate dependency and descriptive information of SRM, as well as the ubiquity of Web. Follow this link or this link to use the Web interface on an actual database.
As it is right now, SRM is ready for use in extended experiments. However, our research plans in software release management extend beyond its current features. Our future plans include the following.