- Salice Thomas
- Follow Me
- January 9, 2016
-
Introduction
Information systems have become key assets of all sectors of business activity. Through extensive and continuous use over the years, these systems become potential source of important knowledge and information about the various processes of business as acquired by the respective organisations throughout their life time. Some of these systems though running on legacy hardware and software would be working so satisfactorily that the owner would not prefer to replace it. Some would also require a 100% availability and so cannot be taken off from service. Technology changes are but happening at a rapid phase and adopting the novice becomes crucial for ensuring the credibility and value of the business. These aspects get the organisations to make a choice on dismantling older systems and completely replacing them, or incrementally modernize existing systems. Many businesses choose the latter course, seeking to minimize their existing investment and preserve valuable business knowledge, while adapting to rapidly evolving technologies. Maintaining and upgrading such legacy systems is one of the most challenging and critical issues faced by most of the enterprises. These systems are hard to be maintained, improved and expanded because mostly there will be a lack of understanding about the system due to improper documentation and at times even the operation staffs of the system, before it was termed a `Legacy`, would not be continuing in the organisation. Here we describe on the basic processes that can be adopted for successfully modernizing a legacy system and some key processes that adds to improving the performance of the legacy systems
A Glimpse into the Usage of legacy systems
The term “legacy system”, was informally defined by Bennett as “large software systems that we don’t know how to cope with but that are vital to our organisation. Legacy systems are very old computer systems, usually between 15 and 25 years old, though some may be as old as 40. This include computer applications, both hardware and software that are integrated and running on millions of lines of code. These systems are build by making huge investments and over the time they become center of many business operations and at times even work round the clock to supporting unique business processes. Most of these systems are in use for such a long period of time that they would have outlived their original user requirements. Constant technological change often weakens the business value of legacy systems, which have been developed over the years through huge investments. Some of the examples for legacy systems evolution are
1. Extension: Adding some functionality or feature relating to changes in regulations or some emerging business needs, or new features made available by the competition.
2. Migration: Migrate the legacy system to a new platform, preserving much of the existing software.
3. Cosmetic makeover
4. Redevelopment of modules, hardware etc.
5. All of the above
It is estimated that about 80% of IT systems are running on legacy platforms. The NASA`s space shuttles still uses the 1970s technology, considering the replacement time and cost. International Data Corp. estimates that 200 billion lines of legacy code are still in use today on more than 10,000 large mainframe sites.

The table above shows the extrapolations for the number of programmers working on new projects, enhancements and repairs. In the current decade, four out of every seven programmers are working on enhancement and repair projects. The forecasts predict that by 2020 only one third of all programmers will be working on projects involving construction of new software.
The Problems Outlined
The decision to replace a legacy system is influenced by a number of factors, some of which are outlined below.
1. Legacy Data Stores: Legacy applications have their own legacy data stores with their own designs that are implemented using a variety of technologies, hence it is very difficult to link into them via other applications, or even impossible.
2. Insufficient Documentation: Lack of documentation or even non existence of the same. Usually the program understanding can take up to 50% of maintenance time.
3. Non availability of resources: It is very difficult and costly to hire programmers who are willing to work on legacy systems as they are opting to take up work on new and evolving domains.
4. Reverse engineering difficulties: Reverse engineering, when upgrading legacy system where the current system is re-documented from the code, is timely and costly.
5. Bulky code base: Improper maintenance would have left the system with code irrelevant to the existing specification.
Legacy Systems Modernization Process
1. Rational Unified Process
This process adapts the reverse- engineering concept where in the representation of the actual code is built and forward engineering concept wherein the restructuring and redevelopment on some parts of the code to adapt new requirements is done.
2. Business Process Modernisation (BPM) and Service Oriented Architectures (SOA) Approach
BPM solutions have the tools to help develop accurate models while at the same time providing the ability to make changes to the system quickly and easily. The joint use of both BPM and SOA can be efficient in order to realize the rewriting of legacy systems .While BPM provides tools for building and implementing business processes, SOA provides a standard interface that allows connecting business processes and legacy systems through Web services generated from the source code of the legacy system.

Fig: Phases of a BPM driven method
Legacy System Performance Improvement Techniques
1. Screen Scrapping
Screen scrapers, often called “front ware,” are an option when the intent is to deliver Web access on the current legacy applications without making any changes to the underlying platform. Popular screen scrapers include Star: Flashpoint, Mozart, and ESL. As they are non-intrusive, screen scrapers can be deployed in days and sometimes in hours.
2. Legacy wrapping
Legacy wrapping builds scalable APIs around legacy transactions, providing an integration point with other systems. It is often used as an integration method with Enterprise Application Integration (EAI) frameworks provided by companies such as SeeBeyond Technology, Tibco, Vitria, and WebMethods. Vendors generally offer one of the three system-wide integration architectures: hub-and-spoke, publish and subscribe, or business process automation.
3. Using Web Terminal Server: A Legacy System Management Terminal
Most of the companies look forward to leverage their legacy systems over the internet because they can re-use the existing logic supporting their various business organizations. Some of the advantages of using a Web Terminal Server are listed below.
1. It allows legacy systems to be used in a GUI (Graphical User Interface) environment.
2. It unifies multiple screens and allows screens to be moved in all directions.3. It allows multiple legacy systems to be displayed and managed on one screen.4. It allows users to access the system from cellular phones and PDA.
5. In the case of a terminal emulator, only one server is required, hence significant reduction of both costs and the complexity of software management.
6. Legacy data can be formatted as CSV data which allows users to create charts and graphs.
Techniques for improving design Flexibility in Legacy Systems
1. Eliminate Unnecessary Variables
Software program that undergo frequent maintenance suffer from variable creep. As and when new features are added to a legacy system and some other features become obsolete over the years, the unneeded variables tend to remain. If appropriately maintained the time saving done at each time when the data set is sorted would be remarkable.
2. Avoid Storing Redundant Information
3. Remove Commented-Out Code
4. Using a strong compiler for the code
There exist compiler that can check for assignments that have no effect, variables that are unused, and a host of other issues relating to the performance of the systems (Eg. Eclipse platform). Some strong compilers are good at detecting a good amount of bugs, thus easing the process of debugging and delivering more stable code base.
5. Use a Code Formatter to Reformat Your Code
6. Refractor Classes to Remove Anonymous Classes
One of the most commonly used nested classes is the anonymous class. The anonymous classes can’t be reused at all generally makes using them inconvenient. This anonymous class either needs to be converted to inner classes or implement the listener interface. Although it involves a bit of typing and cut-and-paste code, the resulting code will be easier to read and understand.
7. Replace Listeners with Weak Listeners
Certain kind of memory leak can be avoided by the use of weak references and weak listeners. Weak references are a special kind of reference that do not block garbage collection. This allows the data objects to hold references to GUI panels in their property change listeners without blocking the garbage collection of those panels.
8. Improving on User Interface and Screens
9. Avoid Hard coding Variable Information
The maintenance trap can be eliminated by a simple technique of replacing hardcoded values in the source code with a macro variable.
Conclusion
The cost of running a legacy information system can amount to millions of pounds per year. However the cost of replacing a legacy information system could total tens of millions of pounds and projects to replace such systems rarely finish on time – therefore estimated costs can often double. As organisations persist in the practice of adapting and upgrading their information systems, each new system will eventually becomes a legacy system. Unless our approach to system maintenance changes dramatically, the legacy information system will be a permanent feature of information system development. In summary, legacy information systems are found in all major organisations. Very few organisations have completely replaced their legacy information systems and those that have may simply have created a newer version of the original legacy system. The legacy system maintenance is a volume business for the service industry and service organisations has to focus more on this area to tap the tremendous opportunities.