Software modernization

Legacy modernization, or software modernization, refers to the conversion, rewriting or porting of a legacy system to a modern computer programming language, software libraries, protocols, or hardware platform. Legacy transformation aims to retain and extend the value of the legacy investment through migration to new platforms.[1]

Strategies

Legacy system modernization is often a large, multi-year project. Because these legacy systems are often critical in the operations of most enterprises, deploying the modernized system all at once introduces an unacceptable level of operational risk. As a result, legacy systems are typically modernized incrementally. Initially, the system consists completely of legacy code. As each increment is completed, the percentage of legacy code decreases. Eventually, the system is completely modernized. A migration strategy must ensure that the system remains fully functional during the modernization effort.

Making of software modernization decisions is a process within some organizational context. “Real world” decision making in business organizations often has to be made based on “bounded rationality”.[2] Besides that, there exist multiple (and possibly conflicting) decision criteria; the certainty, completeness, and availability of useful information (as a basis for the decision) is often limited.

Modernization strategies and benefits[3]

Modernization risk management

Modernization costs

Challenges in legacy modernization

Primary issues with a legacy system include very old systems with lack of documentation, lack of SMEs/ knowledge on the legacy systems and dearth of technology skills in which the legacy systems have been implemented. Typical legacy systems have been in existence for more than two decades. Migrating is fraught with challenges:

Last but not the least, there is no one stop solution-fits all kind of option in modernization. With a multitude of commercial and bespoke options available for modernization, it’s critical for the customers, the sellers and the executors to understand the intricacies of various modernization techniques, their best applicable implementations, suitability in a particular context, and the best practices to follow before selecting the right modernization approach.

Modernization options

Over the years, several different options have come into being for legacy modernization – each of them met with varying success and adoption. Even now, there is a range of possibilities, as explained below, and there is no “the option” for all legacy transformation initiatives.

A legacy code is any application based on older technologies and hardware, such as mainframes, that continues to provide core services to an organization. Legacy applications are frequently large and difficult to modify, and scrapping or replacing them often means re-engineering an organization’s business processes as well. However, more and more applications that were written in so called modern languages like java are becoming legacy. Whereas 'legacy' languages such as COBOL are top on the list for what would be considered legacy, software written in newer languages can be just as monolithic, hard to modify, and thus, be candidates of modernization projects.

Re-implementing applications on new platforms in this way can reduce operational costs, and the additional capabilities of new technologies can provide access to functions such as web services and integrated development environments.[6] Once transformation is complete and functional equivalence has been reached the applications can be aligned more closely to current and future business needs through the addition of new functionality to the transformed application. The recent development of new technologies such as program transformation by software modernization enterprises have made the legacy transformation process a cost-effective and accurate way to preserve legacy investments and thereby avoid the costs and business impact of migration to entirely new software.

The goal of legacy transformation is to retain the value of the legacy asset on the new platform. In practice this transformation can take several forms. For example, it might involve translation of the source code, or some level of re-use of existing code plus a Web-to-host capability to provide the customer access required by the business. If a rewrite is necessary, then the existing business rules can be extracted to form part of the statement of requirements for a rewrite.

Software migration

Software migration is the process of moving from the use of one operating environment to another operating environment that is, in most cases, is thought to be a better one. For example, moving from Windows NT Server to Windows 2000 Server would usually be considered a migration because it involves making sure that new features are exploited, old settings do not require changing, and taking steps to ensure that current applications continue to work in the new environment. Migration could also mean moving from Windows NT to a UNIX-based operating system (or the reverse). Migration can involve moving to new hardware, new software, or both. Migration can be small-scale, such as migrating a single system, or large-scale, involving many systems, new applications, or a redesigned network.[15]

One can migrate data from one kind of database to another kind of database. This usually requires the data into some common format that can be output from the old database and input into the new database. Since the new database may be organized differently, it may be necessary to write a program that can process the migrating files.

When a software migration reaches functional equivalence, the migrated application can be aligned more closely to current and future business needs through the addition of new functionality to the transformed application.

The migration of installed software from an old PC to a new PC can be done with a software migration tool. Migration is also used to refer simply to the process of moving data from one storage device to another.

Articles, papers and books

Creating reusable software

Due to the evolution of technology today some companies or groups of people don’t know the importance of legacy systems. Some of their functions are too important to be left unused, and too expensive to reproduce again. The software industry and researchers have recently paid more attention towards component-based software development to enhance productivity and accelerate time to market.[16]

Risk-managed modernization

In general, three classes of information system technology are of interest in legacy system modernization: Technologies used to construct the legacy systems, including the languages and database systems. Modern technologies, which often represent nirvana to those mired in decades-old technology and which hold (the often unfulfilled) promise of powerful, effective, easily maintained enterprise information systems. Technologies offered by the legacy system vendors – These technologies provide an upgrade path for those too timid or wise to jump head-first into the latest wave of IT offerings. Legacy system vendors offer these technologies for one simple reason: to provide an upgrade path for system modernization that does not necessitate leaving the comfort of the “mainframe womb.” Although these technologies can provide a smoother road toward a modern system, they often result in an acceptable solution that falls short of the ideal.[17]

See also

Available Tools

References

  1. Gardner, D: "Not just a nip and tuck, application modernization extends the lifecycle of legacy code assets", ZDNet, October 24, 2006
  2. Simon’s Bounded Rationality. Origins and use in Economic Theory
  3. Jussi Koskinen, Jarmo Ahonen, Heikki Lintinen, Henna Sivula, Tero Tilus. "Estimation of the Business Value of Software Modernizations".
  4. Izzet Sahin,Fatemeh ‘Mariam’ Zahedi (2001). "Policy analysis for warranty, maintenance, and upgrade of software systems". Journal of Software Maintenance: Research and Practice 13: 469–493. doi:10.1002/smr.242.
  5. 1 2 ARTIST Methodology and Framework: A Novel Approach for the Migration of Legacy Software on the Cloud, 15th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), IEEE, 2013, pp. 424–431, doi:10.1109/SYNASC.2013.62
  6. 1 2 Software modernization and cloudification using the ARTIST migration methodology and framework 15, Scalable Computing: Practice and Experience (SCPE), 2014, doi:10.12694/scpe.v15i2.980
  7. The ARTIST research project
  8. Ian Warren, Jane Ransom (2002). "Renaissance: A Method to Support Software System Evolution". 26th Annual International Computer Software and Applications Conference. p. 415. doi:10.1109/CMPSAC.2002.1045037.
  9. G. Visaggio (2000). "Value-Based Decision Model for Renewal Processes in Software Maintenance". Annals of Software Engineering 9: 215–233. doi:10.1023/A:1018980809600.
  10. Andrea De Lucia, Eugenio Pompella, and Silvio Stefanucci (July 2002). "Effort Estimation for Corrective Software Maintenance" (PDF). SEKE '02 Ischia, Italy. doi:10.1145/568760.568831.
  11. De Lucia, A., Fasolino, A., and Pompella, E. A (2001). "Decisional Framework for Legacy System Management". IEEE CS Press (Florence, Italy): 642–651.
  12. Koskinen, Jussi; Lintinen, Heikki; Sivula, Henna; Tilus, Tero. "Evaluation of Software Modernization Estimation Methods Using NIMSAD Meta Framework" (PDF). Publications of the Information Technology Research Institute. CiteSeerX: 10.1.1.106.2633.
  13. Santhosh G. Ramakrishna, V. V. (May 2007). "Logistics Legacy Modernization" (PDF). Infosys Technologies Limited.
  14. Series, A. S. (ISO 9001:2008). Legacy Modernization – Transformation into an Agile Enterprise. A whitepaper on Legacy Modernization
  15. SearchCIO.com
  16. S.K. Mishra, D.S. Kushwaha, A.K. Misra (July–August 2009). "Creating Reusable Software Component from Object-Oriented Legacy System through Reverse Engineering". The Journal of Object Technology (ETH Zurich) 8 (5): 133–152. doi:10.5381/jot.2009.8.5.a3.
  17. Moltke, H. v. (Wednesday, January 22, 2003 9:55 PM). Risk-Managed Modernization. Jawaharlal Nehru, Speech to Parliament New Delhi,: Seacord.book.
This article is issued from Wikipedia - version of the Thursday, April 07, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.