Automated COBOL to Java or C# conversion with CTU

Mainframe COBOL Refactoring

Customizable transformation solution tailored to meet customer specific best practices, maintainability, standards and requirements
Growing maintenance fees, scarcity of trained developers, expected end-of-life announcements, cumbersome deployment processes, platform dependencies – these are just a few reasons companies are migrating from legacy Mainframe COBOL applications to modern Java/C# solutions. Whether migrating management support systems, operations infrastructure or reporting applications, the COBOL to Java/C# migration process is usually highly complex, risky, expensive and time consuming.

CTU (COBOL-To-Universal) is an automated conversion tool that transforms a Mainframe-based legacy application from COBOL to Java or C#, producing object oriented code that can be easily maintainable and efficiently integrated with other Java and C# applications. CTU supports the full environment of the Mainframe-based COBOL application, including databases (e.g.,DB2, IDMS, IMS and VSAM), TP monitors (e.g., CICS), JCL, utilities (e.g., IDCAMS), and SORT. The resulting code has the exact functionality of the original legacy application and can easily be tested and implemented in production.

Modern Systems CTU Overview

COBOL-To-Universal (CTU) is a Modern Systems’ software package used to transform mainframe-based legacy applications to object-oriented Java or C#. Modern Systems’ CTU offering produces the best possible COBOL conversion, providing code that meets or exceeds your performance expectations, is easy to maintain, and extensible. It is the powerhouse behind a solution that captures the entire source base of the application and automatically migrates it to object-oriented Java or C#. The resulting code has the exact functionality of the migrated application, and can easily be tested, implemented, and integrated with other systems.

CTU supports the full environment of the Mainframe-based COBOL application, including databases (e.g.,IBM Db2, IMS, CA IDMS) and VSAM, TP monitors (e.g., CICS, IMS TM), JCL, utilities (e.g., IDCAMS, IEBGENER), and SORT. CTU is a fully automated solution that captures the entire source base of the application and automatically migrates it to object oriented Java/C#. The resulting code has the exact functionality of the original legacy application and can easily be tested and implemented in production.

Mature, proven automated COBOL conversion solution

Transforming a procedural language like COBOL to an object oriented language like Java or C# presents several challenges. We therefore designed CTU with the following objectives in mind:

  • Functional equivalence: The resulting application should work exactly the same as the original application, producing the exact same results.
  • Maintainable object oriented code:The resulting application should be maintainable and follow object oriented concepts and paradigms such as encapsulation, abstraction, modularization, loose coupling, etc.
  • Meet or exceed performance: The resulting application should perform the same or better than the original legacy solution on the open systems platform.
CTU business and technology outcomes
  • Automated migration of legacy mainframe applications in their entirety
  • Powerful and versatile automated conversion tool backed by decades of modernization experience
  • Object oriented, native code that can be maintained and fully integrated with other Java / C# applications
  • Traditional or cloud-based target environment
  • Rules-based conversion allowing customization of framework, output, and data models
  • On-demand customization and customer-driven enhancement options by project

Conversion Process

A Modern Systems COBOL Conversion has four distinct phases. The first phase, "recover", is where we gather an inventory of the legacy application elements, analyze them to identify any specific areas that may need special handling,  and prepare them for conversion. The "refactor" phase harnesses the COBOL conversion engine within COBOL-To-Universal to translate the legacy code to our proprietary intermediate language called OORules. During the "regenerate" phase, the intermediate language is converted to Java or C#. During the final phase, "refine", we leverage extensive pre-delivery testing to ensure the converted application meets all of the project goals.

The recover phase is a complete research and analysis project that outlines all conversion candidates along with other application and database components within scope.

  • Components are classified and listed in detail
  • Notes are attached to components requiring special attention during the COBOL conversion process
  • All application components are inventoried, classified by language, and cross-referenced
  • Missing components are collected and added to the inventory
  • Duplicate components residing in multiple customer repositories are eliminated from the inventory

At its core, the recover process results in a complete understanding of the current processing environment. This phase also includes discussing and reviewing the overall system test strategy and the division of the converted code into work packets.

We also define a set of topics during the recover phase that must be addressed prior to conversion. In order to speed the modernization process, these topics are typically addressed by those team members who are best suited to understand the topic, the solution options, and any changes or activities that are required to address the "Area of Concentration". Once these Areas of Concentration are identified, customer teams and Modern Systems address the areas about which they are most knowledgeable and for which they are best suited to implement a solution.

The goal of this stage is to ensure the target state works exactly like the source, performs the same or better than the original, and does so with maintainable object oriented code. We start by processing the legacy artifacts repository and transitioning the procedural language to object oriented code, producing our platform-independent language called OORules. Prior to generating the target code, the COBOL conversion engine goes through a number of processes to prepare the application structure for conversion into the final object-oriented target.

The intermediary OORules-based application is then used to generate the target Java or C#. The transformation is based on rules and code styles agreed upon in the recover phase, to a compiled state to be deployed on an application server supporting the new object-oriented code. No business logic or application functionality is changed as part of the transformation and there aren't any emulators or code containers to complicate things.

During the refine phase, we test the refactored code resulting from the COBOL conversion using a test plan with documented test scenarios provided by the customer. The tests run against the same data on the converted system, and we identify, investigate, and fix any discrepancies in the expected behavior of the modernized applications. Once testing is complete, we perform a code refresh to ensure that any changes that took place in the legacy application environment during the COBOL conversion are accounted for, transitioned into the target language and environment, and tested.

We work very closely with our customers throughout the process to ensure a smooth and error-free transition. Our teams also provide any required assistance during the warranty period following the deployment and offer post-application support of the modernized application.

Additional Resources

  • Don’t Kick The Can Down A Crumbling Road - Recently, the US Government Accountability Office (GAO) released an eye-opening report which found that roughly 75% of the government’s $80 billion IT budget goes to keep aging technology running, and the increasing cost is shortchanging modernization and causing a lot of headaches. This whitepaper explains why automated COBOL conversion is the fastest, most cost-effective, and safest way to alleviate reliance on legacy infrastructure, databases, and the application code that supports them.
  • COBOL to Java or C# Automated Conversion - This is a technical deep-dive into our COBOL Automated Conversion technology. Learn how our solution empowers companies to keep the benefits of their legacy business logic while guaranteeing a fully maintainable Java or C# end state, compatible with the database and hardware of their choice. A great way to prepare and evaluate your COBOL migration roadmap.
Case Studies
  • The Golden Goose: Taking Core Applications from COBOL to Java - AeroSoft Systems, headquartered in Mississauga, Ontario, Canada since 1997, maintains a unique position in the aircraft maintenance management software industry. CEO Thanos Kaponeridis wanted to modernize their flagship software product in a way that would be transparent to their current installed base and enable operational and business goals behind the scenes. Here's what happened.
Share This