The main goal of this task is to move a system from one language type to another or from one language level to another. The first type may involve Assembler (ALC) to COBOL (3GL), PL/I (3GL) to C (3GL), 4th generation language (4GL) to COBOL or any similar type of physical conversion. It does not include moving a 3GL or 4GL into a CASE tool or related model based paradigm. This is a Transformation task and must be treated as such.
The second type of change involves a compiler upgrade, such as OS/VS COBOL to COBOL 370; TP monitor upgrade, such as CICS macro to command; compiler change driven by a platform change or an access method upgrade, such as BDAM to VSAM. It does not include VSAM to IMS or DB2 since this requires redesigning data relationships and therefore forces a change of functionality driven by a change in architecture. VSAM to DB2 is specifically a Transformation supported task.
In some cases, combining a language change and language upgrade into a single task is not recommended. For example, moving from UNISYS 1100 COBOL to an IBM based 4GL requires going through the process twice. The COBOL system should be moved to the IBM, validated, and then moved to a 4GL. This ensures that an audit trail is maintained. However, a conversion expert, a required role for this task, may choose to combine conversion tasks into a single step based on prior expertise.
Specific objectives for a language change/language upgrade include the following:
· Move from a proprietary or high cost platform to an open or low cost platform or environment
· Migrate from an unsupported or obsolete technology to a supported and/or more modern technology
· Stay current with the latest technological advances
· Migrate from a language that demands expensive or hard to find personnel, or draws to many resources for too little return on investment
· Establish a system that can serve as a baseline for additional Positioning and/or Transformation tasks
The entrance criteria for the language change/language upgrade task are listed below.
· Completion of interim and strategic (if appropriate) application plans from the Inventory/Analysis
Note: The conversion plan could be a component of either the interim or strategic plan.
· Technical assessment of system being converted
· Access to functional and technical SME(s) for application of interest
· Completion of application staging process for the application of interest
The personnel and skill requirements necessary to meet the language change/language upgrade task objectives are identified below.
· Language Conversion Expert
- Conversion expertise for the original and target language types and hardware/software environments
· Current Systems Expert
- Knowledge of existing system functionality and program to function relationships
· Target System Functional Expert
- Knowledge of target functional requirements
· Systems Programmer
- Security access to physical system objects
· Metric analyst
- Conversant with metric tools and interpretation for both the source and target conversion language types
The system components and related inputs required to initiate and complete the language change/language upgrade task are listed below.
· Technical assessment results for the application of interest specifically required are:
- Environmental analysis component inventory
- Process flow analysis metric (automatically generated and Comsys-TIM derived)
- Data definition analysis metrics
· Application components of interest including:
- Program/Copy source code
- Job control language & program linkage JCL
- Screen map source
- Job initiation & scheduling instructions
- Data definition language source
· Interim and strategic (if available) plans for system to be converted
· Any additional assessment results (based on completed tasks) from Inventory/Analysis
· Application staging libraries
· Migration list of run-time components created in Examine Run-Time/Execution Environment step
· Positioning work plan Form 020
· Language change/upgrade control log Form 021
· If this is a COBOL/370 upgrade project, the "IBM COBOL/370 and COBOL for MVS & VM Compiler and Run-Time Migration Guide" is required. Hereafter, this manual will be referred to as the COBOL/370 migration guide.
Technologies supporting the language change/language upgrade include data definition analyzer, environmental analyzer, language change/upgrade, static analysis, comparator, and compiler/preprocessors tools. These tools are used to represent information as required by this task.
Data definition analyzer
A data definition analyzer rapidly and automatically analyzes logical data descriptions to provide the user with information about their structure, similarities, level of redundancy and quality. Tool attributes include physical definition cross reference ability, size and data structure comparison capability, control transfer summary analysis, in-context usage analysis, redundancy analysis and selective name usage analysis. Additional requirements include the ability to link physical files and screen definitions to source code definitions.
Environmental analyzer
The environmental analyzer accepts as input system wide application libraries and analyzes them to provide information on system flows, relationships and dependencies. Key requirements include the ability to rapidly parse and cross reference system objects (i.e. JCL, Source, Load, etc.) across multiple application areas for production hardware and software platforms.
Language change/upgrade tool
The main role a language change/upgrade tool plays within this task is to automatically revise source code to comply with either the requirements of a new release or an entirely different language. This change in source language ideally would cause no corresponding change in functionality, although some small changes sometimes do occur based upon the functions and limitations of different languages.
Significant diversity marks the language change/upgrade tool category. Tools exist to change Assembler to COBOL, PL/I to COBOL, PL/I to C, COBOL to C, COBOL to FORTRAN, etc. In addition, upgrade tools exist for COBOL and CICS, among others.
Static analysis tool
The static analysis tool in this task must be able to graphically analyze code to produce information on code flaws which might be created during a language change/upgrade. The reports most of the analysts use in determining potential problems and cleaning them up include detail trace reports, problem reports and in-line cross references.
Comparator
This tool is used to validate changes made to source code or to physical data by comparing the relevant or output files and producing listings of any differences it finds.
Compiler/preprocessors
A source language compiler/preprocessor is required to parse source code and convert it into machine executable instructions. This compilation process identifies many types of errors, and requires their correction before it will complete successfully. For this task, both a source and a target system compiler/preprocessor will be required.
The language change/language upgrade task is comprised of the following task steps: