Software Maintenance as a Programmable Process
Abstract:
The software maintenance process is a particularly complex part of the software life cycle. It can be viewed from a number of different perspectives and dimensions. The policies and philosophies of the maintenance organization and its management, the techniques available for carrying out maintenance, the types of changes attempted, the points in the development process at which maintenance is attempted, and the nature of the subject product are among the factors playing important roles in shaping and designing a maintenance process. No single fixed maintenance process seems able to meet all software maintenance needs emerging from the different perspectives and dimensions, and nobody has yet consolidated all of those views in a single framework. We believe that consolidating the maintenance activity around the notion of Process Programming provides such a common framework for all software maintenance processes. It provides the conceptual structure for creating processes and support environments in which users are free to alter both tools and process to achieve effective support for the full range of maintenance needs and approaches. Process environments environments which support process programming seem to us to meet the minimum requirements for an ideal environment. They focus on both describing and aiding the process itself in a customizable programmable, user-tailorable, dynamically adaptable, and incrementally implementable fashion.