We can in part answer this question following Bashir  modifying his words to capture the requirements of our scientific domain. However it should be said that there is really very little difference between the commercial world and the scientific community when it comes to computer software. Legacy software can be characterised informally as old software that is still performing a useful job for the community. Legacy software systems are programs that are still well used by the community or have some potential inherent value but that were developed years ago using early versions of Fortran or other languages.
Often these programs have been maintained and developed for many years by hundreds of programmers, and while many changes have been made to the software, the supporting documentation may not be current and the programming style from the dark ages. These factors contribute to the staggering cost of maintaining these legacy programs or continuing their development.
Consequently, there is an urgent need to find ways to make these programs more maintainable without disrupting their current use and to safeguard the information they contain.
The implication is that the preferred solution is to discard the software completely, and start again with a new system. This may not be appropriate in all cases, for example after :
Norton and Decyk have taken on board many of these ideas in their approach to modernising Fortran systems. However they identify two additional characteristics of computational software which are important to the scientific community: firstly that the software is generally well debugged and secondly the software produces results that are trusted. Generating new software will most often introduce new bugs and this would certainly degrade the users trust in the program's results.