From the moment a software product is released, the race against time and aging begins. The clich that "legacy code is code written yesterday " is increasingly true. As the pace of technology development increases , so too does the pace of technology obsolescence. Software modernization attempts to evolve a legacy system, or elements of the system, when conventional evolutionary practices, such as maintenance and enhancement, can no longer achieve the desired system properties. Software modernization is more challenging than most software engineers , including seasoned veterans , suspect. Many modernization efforts fail. The Standish Group research shows that 23 percent of projects are canceled before completion, while only 28 percent finish on time and budget with expected functionality [Standish 01]. |