Today, software professionals recognize that change in software systems is inevitable. There are many systems currently in operation, however, which were developed before the need for change was understood. Such systems are commonly referred to as "legacy systems", and were developed with relatively short lifetimes in mind. Software engineering is a relatively young discipline which is continually improving to provide better support for the development...