The advent of the Internet and the use of component-based technology have each individually in uenced the software development process. The Internet has facilitated geographically distributed software development by allowing improved communication through such tools as distributed CM systems, shared white-board systems, and real-time audio and video. Component-based technology has facilitated the construction of software through assembly of relatively large grained components by dening standards for component interaction such as CORBA 5]. But, it is their combined use that has led to a radically new software development process: increasingly,software is being developed as a \system of systems" by a federated group of organizations.
Sometimes such a process is initiated formally,as when organizations create a virtual enterprise 4] to develop software. The virtual enterprise establishes the rules by which dependencies among the components are to be maintained by the members of the enterprise. Other times it is the connectivity of the Internet that provides the opportunity to create incidental systems of systems.
For example, applications are typically built using public-domain software as major components, such as Tcl/Tk 13] for the graphical user interface. The use of public-domain software creates a dependency that, while less formal than in a virtual enterprise, is no less serious a concern.
In either case, component dependencies create a complex system of systems that ine ect isbeingdeveloped byadistributed anddecentralized group of organizations. Given that the components of the system are in general pre-existing, independently produced, and independently released systems themselves, the primary issue involves managing the deployment of the system as a whole. In particular, the following two problems become evident.
1. To developers of a system of systems, deployment of the system is cumbersome. The developers must carefully and accurately describe their system, especially interms of its dependencies onother systems.Ofcourse, this problem occurs not just at the outermost level of system construction, but also at all intermediate levels of a hierarchically structured system.
2. To users of a system of systems, the task of locating, retrieving, and tracking the various components is complicated and error prone. A consistent set of componentsmustbe retrieved frompotentiallymultiplesources, possiblyvia multiple methods, and placed within the context of the local environment.
These problems lead to a need for what we term software release management, which isthe process throughwhich softwareis madeavailableto andobtained by its users. We have dened such a process and built a specialized tool to support that process. The tool, called SRM (Software Release Manager), is currently in use at the University of Colorado.
SRM is based on two key notions. First, components are allowed to reside at physically separate sites, yet the location of each component is transparent to those using SRM. Second, the dependencies among components are explicitly recorded so that they can be understood by users and exploited by the tool. The tool in particular uses dependency information to automate and optimize the retrieval of the components.
Software release management ts within the larger context of software conguration and deployment, which involves additional tasks such as installation, update, and removal. This larger context is being investigated in our Software Dock project 8]. SRM serves as the release manager in the Software Dock prototype, but is designed to be used independently.
In this paper we further motivate the need for software release management by illustrating how, in a distributed development setting, a lack of appropriate support for software release management leads to dificulties. We then present a set of requirements for a software release management process. Based on these requirements, we describe the functionality of our software release management tool, SRM. We conclude with a look at related work and some directions for the future.
Download
Software Release Management
