COBOL-To-Universal is a software package that Modern Systems uses when transforming mainframe-based legacy applications to object-oriented java or C#. It was developed in-house and is always being honed and polished to produce the best possible COBOL conversion that is maintainable, meeting or exceeding performance expectations, and is easily 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 modern systems.
The COBOL 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.
COBOL conversions are complicated, to help ease the process we put together a plethora of resources to provide as much information as possible to set proper expectations with our customers and to provide technical insight: