Software modernization
Encyclopedia
Legacy Modernization, or Software modernization, refers to the conversion, rewriting or porting
Porting
In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed...

 of a legacy system
Legacy system
A legacy system is an old method, technology, computer system, or application program that continues to be used, typically because it still functions for the users' needs, even though newer technology or more efficient methods of performing a task are now available...

 to a modern computer programming
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

 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.

Strategies

Legacy system modernization is often a large, multiyear 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 have to be made based on “bounded rationality”. Besides that there exists 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

  • ADM (Architecture Driven Modernization
    Architecture Driven Modernization
    Architecture-driven modernization is the name of the initiative of the Object Management Group related to building and promoting standards that can be applied to modernize legacy systems...

    ) is the initiaive to standarize views of the existing systems in order to enable common modernization activities like code analysis and comprehension, and software transformation.

  • WMU (Warrants, Maintenance, Upgrade) is a model for choosing appropriate maintenance strategies based on aspired customer satisfaction level and their effects on it. Sahin & Zahedi (2001).

  • SABA (Bennett et al., 1999), is a high-level framework for planning the evolution and migration of legacy systems taking into account both organizational and technical issues.

  • Renaissance (Warren & Ransom, 2002) Method for iteratively evaluating legacy systems, from technical, business, and organizational perspectives.
  • - Aversano at al. (2004) Measurement framework based on GQM (Goal-Question-Metrics) paradigm.
  • VDM (Visaggio’s Decision Model) Visaggio (2000) Method and decision model for determining suitable software renewal processes at component-level based on the technical and economic qualities of those components.
  • SRRT (Economic Model to Software Rewriting and Replacement Times), Chan et al. (1996), Formal model for determining optimal software rewrite and replacement timings based on versatile metrics data.
  • RPP (Reengineering Planning Process), Sneed (1995), Process model for estimating costs and benefits of reengineering.

Modernization Risk Management

  • RPFA (Reengineering Project Failure Analysis, Bergey et al., 1999) is basically a check-list of potential problems related to reengineering projects, and of the corresponding appropriate technical and other means to react to the situation.

  • RMM (Risk-Managed Modernization, Seacord et al., 2003) is a new, general software modernization management approach taking risks (and both technological and business objectives) explicitly into account.

Modernization Costs

  • Softcalc (Sneed, 1995a) is a model and tool for estimating costs of incoming maintenance requests, developed based on COCOMO and FPA.

  • EMEE (Early Maintenance Effort Estimation, De Lucia et al., 2002;2001) is a new approach for quick maintenance effort estimation before starting the actual maintenance.

  • RENAISSANCE: A method to support system evolution by first recovering a stable basis using reengineering, and subsequently continuously improving the system by a stream of incremental changes. The approach integrates successfully with different project management processes

Challenges in Legacy Modernization

Typical legacy systems have been in existence for more than two decades. Migrating is fraught with challenges:

Organizational change management – Users must be re-trained and equipped to use and understand the new applications and platforms effectively.

Coexistence of legacy and new systems – Organizations with a large footprint of legacy systems cannot migrate at once. A phased modernization approach needs to be adopted. However, this brings its own set of challenges like providing complete business coverage with well understood and implemented overlapping functionality, data duplication; throw away systems to bridge legacy and new systems needed during the interim phases.

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 are a range of possibilities, as explained below, and there is no “the option” for all legacy transformation initiatives.

Migration: Migration of languages (3GL or 4GL), databases (legacy to RDBMS, and one RDBMS to another), platform (from one OS to another OS), often using automated parsers and converters for high efficiency. This is quick and cost-effective way of transforming legacy systems.

Re-engineering: A technique to rebuild legacy applications in a new technology or platform, with same or enhanced functionality – usually by adopting Services Oriented Architecture (SOA). This is the most efficient and agile way of transforming legacy applications.

Re-hosting: Running the legacy applications, with no major changes, on a different platform. This is often used as an intermediate step to eliminate legacy and expensive hardware. Most common examples include mainframe applications being rehosted on UNIX or Wintel platform.

Package Implementation: Replacement of legacy applications, in whole or part, with off-the-shelf software (COTS) such as ERP, CRM, SCM, Billing software etc.[4]

A legacy code is any application
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...

 based on older technologies and hardware
Hardware
Hardware is a general term for equipment such as keys, locks, hinges, latches, handles, wire, chains, plumbing supplies, tools, utensils, cutlery and machine parts. Household hardware is typically sold in hardware stores....

, such as mainframes, that continues to provide core services to an organization. Legacy
Legacy
-Comics:* Legacy , an alias used by Genis-Vell, better known as Captain Marvel* "Batman: Legacy", a 1996 Batman storyline* Star Wars: Legacy, a 2006 series from Dark Horse* X-Men: Legacy, a 1991 series from Marvel Comics...

 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
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 are becoming legacy. Whereas 'legacy' languages such as Cobol
COBOL
COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....

 are top on the list for what would be considered legacy, 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. 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
Program transformation
A program transformation is any operation that takes a computer program and generates another program. In many cases the transformed program is required to be semantically equivalent to the original, relative to a particular formal semantics and in fewer cases the transformations result in programs...

 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
Rewrite (programming)
A rewrite in computer programming is the act or result of re-implementing a large portion of existing functionality without re-use of its source code. When the rewrite is not using existing code at all, it is common to speak of a rewrite from scratch...

 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
Windows NT
Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was intended to complement...

 to Windows 2000 Server
Windows 2000
Windows 2000 is a line of operating systems produced by Microsoft for use on personal computers, business desktops, laptops, and servers. Windows 2000 was released to manufacturing on 15 December 1999 and launched to retail on 17 February 2000. It is the successor to Windows NT 4.0, and is the...

 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
PC migration
PC migration is the process of transferring the entire user environment between two computer systems. The migration problem is often associated with the concept of Total Cost of Ownership where the requirement to migrate information is considered a "cost" in purchasing a new PC, similar...

 could also mean moving from Windows NT
Windows NT
Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was intended to complement...

 to a UNIX-based
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 operating system (or the reverse). Migration can involve moving to new hardware, new software, or both. Migration
System migration
System migration involves moving a set of instructions or programs, e.g., PLC programs, from one platform to another, minimizing reengineering....

 can be small-scale, such as migrating a single system, or large-scale, involving many systems, new applications, or a redesigned network.

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.

Application Modernization Software

The following software packages facilitate legacy application modernization—generally from hosted or client/server architectures to new Web based interfaces:

Creating Reusable Software

Due to the evolution of technology today some companies or group of people don’t know the importance of legacy system.
Because 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 the component based software development to enhance the productivity and accelerate time to market[5]

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.[2]
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK