Modernizing Legacy Systems: A Re-Engineering Approach

Modernizing Legacy Systems: A Re-Engineering Approach

Aparna Vijaya (Vellore Institute of Technology, Chennai, India) and Neelanarayanan Venkataraman (Vellore Institute of Technology, Chennai, India)
Copyright: © 2018 |Pages: 11
DOI: 10.4018/IJWP.2018070104

Abstract

Cloud computing is a paradigm which has changed the way organizations develop, manage, and deploy their applications. Most of the resources are available at low costs in this technology and it creates new opportunities for organizations to move their existing applications to the cloud for modernization. But this modernization also comes at a price. The authors present a model-driven approach to address the challenges in application modernization and focus on the application migration to cloud. Most of the cloud applications are very specific to a particular vendor's features or services. The proposed methodology addresses the challenge of vendor lock-in also. The authors present their theoretical details and experience with two pilot projects where they have applied the proposed approach.
Article Preview

1. Introduction

Legacy systems can be defined as software systems that have been built years ago by using old technologies and methods but they are still an integral part of business. Many organizations have a lot of legacy systems up and running even today and they find it hard to update and maintain such systems. These systems have high operation cost, do not take advantage of the latest computing environments, and are difficult to maintain and modify. Literatures and even industry claim that (Cornelius, 1989; Ransom, 1998) of the most expensive and critical phase in the life cycle of a software system is its maintenance. According to a recent Standish group survey (Standish, 2010), the maintenance phase can consume upto 80% of the total cost of the development of software systems. A huge amount of effort and time has to be invested to change the legacy software systems in order to keep their core functionalities and business process intact. This process of conversion, rewriting or porting of a legacy software system to modern programming languages or new open computing environments is termed as software modernization. Hence many industry surveys (Standish, 2010) show legacy application modernization as one of the top priorities. The various challenges in maintaining a legacy software system can be summarized as follows:

  • The source code of the legacy software systems has been written years ago with some obsolete technologies and without sufficient documentations. Hence it would be a tedious task to maintain the code for which there are not much resources and eminent programmers;

  • The source code must have had a lot of bug fixes and patches associated which might not have been documented and making even minor modification would become costly in terms of risk;

  • Lack of an appropriate method for identifying the business rules from legacy system in order to modify it depending on the market needs;

  • Legacy applications are often limited to specific environments or do not provide support for the alignment with newer technologies;

  • Economical reasons (cost saving, limited internal support);

  • Any other technical reasons (optimum resource utilization, unlimited scalability of resources, less maintainability, accessibility and availability).

2. Need For Legacy System Modernization

New software technologies are entering the market every day. Even though many of the core business strategies remain the same every year the quick and emerging technology and information trends in market necessitate every organization and their products to stay up-to-date on the latest business strategies offered. Hence there is an increasing need to evolve the existing software assets in order to take advantage of the new technology. But re-developing applications to become compatible with newer technologies becomes difficult due to the time and resources required. So in order to renew a legacy system we need to understand the design of the software at the beginning. Due to incomplete or outdated documentations and reference materials, this can be a tedious and very complicated task.

Complete Article List

Search this Journal:
Reset
Open Access Articles: Forthcoming
Volume 12: 2 Issues (2020): Forthcoming, Available for Pre-Order
Volume 11: 2 Issues (2019): 1 Released, 1 Forthcoming
Volume 10: 2 Issues (2018)
Volume 9: 2 Issues (2017)
Volume 8: 1 Issue (2016)
Volume 7: 2 Issues (2015)
Volume 6: 4 Issues (2014)
Volume 5: 4 Issues (2013)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing