Maintaining COTS-based systems: start with the design

The use of commercial off-the-shelf (COTS) software in building software systems presents new challenges to maintenance personnel who are required to evolve and enhance these systems. Unlike custom-built systems where maintenance is performed at the source code level, maintainers of COTS-based systems deal with the system as a set of large-scale black boxes that are owned by third-parties. This paper outlines a strategy for building maintainable COTS-based systems. The strategy was developed by interviewing a number of organizations involved in the acquisition, development, and maintenance of such systems. Based on these interviews, the high-cost maintenance activities were identified, and design strategies developed for minimizing these costs. The approach is illustrated with an example from a Web-based application.