Legacy
An increasing proportion of the effort of skilled programmers is devoted to servicing the legacy of software. The techniques and tools currently in use to tackle the problem take good advantage of the results of past research into programming theory. I suggest that new generations of tools will be based on concepts and principles developed by basic research of the present and by future research directed at currently outstanding challenges. These points are illustrated by examples drawn from my personal experience. They show that academic research and education can contribute to industrial development and production in an atmosphere of mutual respect for their different allegiances and timescales, and in recognition of convergence of their long-term goals. (C) 2001 Elsevier Science B.V. All rights reserved.
software engineering legacy code software maintenance formal methods