Abstract :
The problem many people in the software industry are faced with is what to do when a legacy system is felt to be inappropriate for the needs of the business. This point is normally reached because of a combination of factors: maintenance cost, hardware and software platform, mismatch between functionality and business, or inability to incorporate new functionality. The traditional solution from our relatively new industry is to start again and build a new system. A development project would typically use formal and/or informal methods to identify business requirements and then (correctly) fulfil them. The initial problem can therefore be re-stated as: how can the fundamental architectural elements of a legacy system be extracted to aid the production and testing of a replacement system. We propose this solution to that problem: break the system into its component elements; replicate, rebuild or scrape the interface handling; reverse engineer the data definitions to a logical model, modify the model, and forward engineer to a new data model; and identify the code supporting the business functionality and make that code available for re-use
Keywords :
business data processing; reverse engineering; software maintenance; software reusability; systems re-engineering; business; business functionality; business requirements; code re-use; data definitions; data model; development project; formal methods; hardware platform; informal methods; interface handling; legacy systems re-engineering; logical model; reverse engineering; software industry; software maintenance cost; software platform; system testing;