37
Converting to the latest COBOL Compiler made simple with the right tools Session: 6036 Russell Courtney Technical Leader IBM [email protected]

Converting to the latest COBOL Compiler made simple with the right tools

Embed Size (px)

Citation preview

Converting to the latest COBOL Compiler made simple with the right tools Session: 6036 Russell Courtney

Technical Leader

IBM

[email protected]

Please Note:

2

• IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion.

• Information regarding potential future products is intended to outline our general product direction and it should not be relied on in

making a purchasing decision. • The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to

deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. • The development, release, and timing of any future features or functionality described for our products remains at our sole

discretion. • Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual

throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.

Being Agile and Responsive to Business Priorities

Rapid iterations

Develop Build Test Deploy Production

API Catalog

Develop Build Test Deploy

Slower iterations

Production

Systems of Interaction

Digital Applications

Enterprise Applications Systems

of Record Bottleneck!

Variable Speed IT – many factors slow down development of Systems of Record applications.

DevOps outlines key areas for improving Agility and Speed of software delivery involving Process, People and Tools.

Typical challenges for COBOL application owners: How to cope with the increased volume of

transactions while maintaining overall cost of ownership as well as response time required?

How to make enhancements to complex

COBOL/mainframe applications built on decades of incremental enhancements while ensuring their QoS remains the same?

Why IBM Compilers?

Reduce CPU utilization by improving performance of applications Exploitation of z/Architecture Advanced Optimization

Support next-generation Applications

Work with latest IBM Middleware (CICS, IMS, DB2…)

Modernize business critical applications to support new applications (e.g. web and mobile applications)

Improve Productivity New programming features New problem determination features

Increased # of processor cores and reliance on parallel processing technology to improve overall performance. Need new compiler technology to take advantage of new hardware instructions!

Success Story: Humana takes CICS to the next level Background: Modernization of Claims System - Large batch and online environment which served its purpose well for 30+ years and remains a strategic solution to take Humana forward. Challenges: With current business growth, changes are required for High availability Handle greater volume More responsive and flexible to business

changes Create a dynamic infrastructure Maintaining focus on efficiency Solution: Multi-phase modernization project with tangible benefits along the way.

COBOL Compiler Highlights: • Selected as the first step in multi-phase project. • Significant performance improvement:

# of transaction processed – Before: 18,471 After: 28,799 (56% improvement) CPU time – Before: 0.0283 After 0.0249 (12% improvement)

Risk/Complexity/Benefit Matrix

Source: Humana’s presentation at 2015 InterConnect conference

Usage of the latest compiler is considered low risk, low complexity, and high benefit.

Agile and Lean Software Development 101

In the context of z/OS application development, the guiding principle for Agile and Lean Software development is exactly the same as any other platforms. They are: 1. Iterative & incremental changes delivered quickly.

2. Build quality in.

3. Short feedback loop.

The question is … Do you have the right tools to help you practice those?

1. Iterative & incremental changes delivered quickly

Problem: Frequent build & test are the essential practice of Agile Software

Development methodology which results in “Shift-Left” behaviour where defects are discovered earlier in development cycle.

More frequent build of COBOL programs may result in increased peak workload which increases the cost of software license cost.

Solution: Enterprise COBOL Value Unit Edition for z/OS V1.0 minimises the risk of

increased software license cost by leveraging zCap software pricing. Rather than continuing with existing MLC payment option, you can purchase

OTC version of Enterprise COBOL V5.2 compiler which gives 10x headroom for future growth as part of the initial software license fees.

Build & Test frequently

Leverage optimization

Improved Agility

1. Iterative & incremental changes delivered quickly

Problem: COBOL programs are complex built on decades

of incremental enhancements. Multiple developers were involved and not easy to comprehend them and fully understand the potential impact of the changes.

Solution: The Program Control Flow view provides

alternate view of complex COBOL programs. In addition to smart COBOL editor with many

features such as real-time syntax check and auto complete features, the Program Control Flow visualize the logical control flow of the selected program.

Smart navigation is available in the Program Control Flow view such as: Search Zoom-in / zoom-out Show from to & from from the selection.

Problem: Some statements are obsolete or no longer supported. # of parameters don’t match between calling & called programs. Solution: Use code rules for identifying obsolete and unsupported

statements. For selected files, Scan for Compatibility allows detection of

problems when # of parameters don’t match.

1. Iterative & incremental changes delivered quickly

Problem: COBOL compiler enhancements (eg ARCH and OPT options) are not

supported by legacy problem diagnosis tools. COBOL compiler enhancements for developer productivity improvement

(eg. DWARF side file format) are not supported by legacy problem diagnosis tools.

Solution: IBM tools ensure Day-1 exploitation of latest COBOL compiler as well

as hardware, compilers & middleware advancements. For example, IBM Debug Tool allows interactive debugging of programs compiled with the optimization option..

IBM tools take advantage of the new DWARF side file format to discover diagnostic information they need without relying on users to specify the location of compiler side files. One less step for end users as well as avoiding the common side file mismatch problem.

Source

Load module

Compiler listing/sys

debug

Compiler

PD Tools

Source

Compiler

PD Tools DWARF

Load module

Before

COBOL V5 or V6

1. Iterative & incremental changes delivered quickly

2. Build quality in

Problem: Lack of tools to assist developers in writing code to perform

repeatable, self-checking unit tests. Reliance on testers to perform testing means longer testing

cycle as well as bigger code change to validate. xUnit framework is popular & available on other

platforms/environments.

Solution: zUnit is an xUnit instance for z/OS applications. zUnit allows developers to write code to perform repeatable,

self-checking unit tests. Since they are developed by developers, it enables testing of

unit of code at much lower level than testers can perform. Unit tests can be executed to ensure no regression but also

used in conjunction with Code Coverage feature to ensure adequate level of unit test cases are written to cover the modified program.

TESTCASE1(...)

ADDTESTS2(...)

TEST0012(...)

TESTnnn2(...)

SETUP2(...)

TEARDOWN 2(...)

. . .

ZXUTCINI(...)

ZXUTCADD(...)

ZXUASTFM(...)

ZXUASTFA(...)

USER.ZUNIT(TESTCASE)

zUnit Test Runner API

Invoking the assertion APIs in the SETUP, TEARDOWN, or active TEST entry will fail the current Test.

1Language-specific details: In COBOL, this is the first program appearing in the Test Case source file and it will be invoked by the Test Runner for Test Case initialization.In PL/I, the is the procedure declared with option(fetchable) in the Test Case source file and it will be invoked by the Test Runner for Test Case initialization.

2Language-specific details:In COBOL, these are expected to be subprograms (non-nested and therefore compatible with FUNCTION-POINTER).In PL/I, these are expected to be internal procedures that are declared at the package level (non-nested).

2. Build quality in Problem: Difficult to understand coverage of regression tests. Unsure if newly created unit tests adequately covers

the section of code modified as well as affected dependent areas.

Relies on testers’ experience to perform sanity tests. Otherwise full regression test is required to feel confidence in promoting change sets.

Solution: The code coverage report shows the % of a program

being executed during a test run as well as exact lines which were executed.

By looking at the report, it is simple for developers to aim for 100% coverage for the section of code being modified during enhancement/bug fixes.

The code coverage report can be exported as a PDF document or reported in a browser to enable quality champion to examine the adequacy of test coverage.

2. Build quality in Problem: Preparation of test data is often difficult especially when

data is packed into complex data structure. Sensitive information must be protected when choosing

to create test data from production system’s data. Moving data between Dev/Test/Prod systems can be

error prone and time consuming.

DB2

IMS

Data Sets HFS

MQ

CICS

SMF data Hogan data

3. Selective copy

2. Reformat copy

COPY types

1. Simple copy

(scramble)

(scramble)

(scramble)

or

DB2

IMS

Data Sets HFS

MQ

CICS

SMF data Hogan data

Source data Scrambled data

Solution: Protect sensitive information by scrambling production data

using random, repeatable, or translate algorithm provided. Or extend the base function by writing your own algorithm or take advantage of Optim Data Privacy Provider (ODPP) APIs.

Copy data between systems interactively or in batch by simply specifying the remote system IP address and user credentials.

Scramble data, select subset of data, or reformat data layout all in one step while copying data.

2. Build quality in

Problem: Any resource consumption increase by z/OS applications can

make a significant impact on monthly operational cost especially true in high transaction volume environments.

Identification of performance problems is often left until too late in production systems which leads to system downtime or increased cost.

Solution: As part of ongoing enhancement of a program, performance

characteristics of the program should be measured and compared against historical data.

The variance report allows you to compare the difference of two separate performance measurements and reports the difference in resource consumption such as CPU time and EXCP requests.

Remember: small % increase can mean a significant increase in a high volume transaction environment.

3. Short feedback loop

Problem: Analysis of failing complex COBOL programs is not a

simple task especially for millennium developers. Analysis of failing z/OS programs is increasingly more

complex due to mixture of legacy programs and new Java workload even for most experience developers.

Re-creating a failure in test environment is difficult. The relevant problem analysis information must be captured at the time of failure in production system.

Solution: Use low overhead problem analysis tool to capture failures.

The tool provides you with synopsis to pinpoint the root cause of failure at application source code level.

Free developers from dealing with dumps, compiler side files, various subsystem logs, and Java Virtual Machine related diagnosis.

The same application failure analysis tool should be used during development/test as well as failures in production system to minimize the training required for developers.

3. Short feedback loop

Problem: Takes too long to analyze problems in production systems. The tool for analyzing application failure is different from the tool used

by developers to step through the code. The problem analysis tools do not allow specification of debugger

breakpoints for interactive analysis later. Solution: “Deferred breakpoints” allows a developer to specify breakpoints in

programs without necessarily starting a debug session for the programs.

This features allows the developer to keep track of relevant sections in programs to step through for detailed analysis of problem root cause analysis.

Fault Analyzer report is enhanced so that deferred breakpoints can be set directly while reading the analysis of application failures.

While a developer is analyzing the hot spots of a program, the developer is able to set breakpoints in procedures/functions where they are most commonly executed during the observation.

Analyse

Develop /Fix

Unit Test

Observe

Do you need assistance with COBOL compiler migration?

Typical workflow for compiler migration

1. CCCA – migrate old source

2. RDz – complete migration

3. Ensure no regression!

Avoid manual conversion!

COBOL and CICS Command Level Conversion Aid for OS/390 & MVS & (CCCA) helps you convert old COBOL 68 Standard and COBOL 74 Standard language in source programs and copy books to COBOL 85 Standard language.

Using CCCA tool, you can avoid manual migration steps using various compiler options as shown on the workflow diagram.

Use RDz to complete source migration step when CCCA tool cannot complete the migration.

Use PD Tools which provides Day-1 exploitation of new compilers ensuring you can diagnose problems which you encounter during the migration.

Enterprise COBOL Suite for z/OS provides comprehensive tools for migrating old COBOL programs

Summary IBM Enterprise COBOL Value Unit Edition for z/OS V1.0 (5697-ECV) and IBM

Enterprise COBOL Suite for z/OS V1.0 (5697-CDT) provide a comprehensive solution for: Migrating legacy COBOL programs to take advantage of latest hardware and

optimization technology enhancements. Assists developers to comprehend complex COBOL programs built on decades of

incremental enhancements. Assists developers to feel confidence in making enhancements to existing COBOL

programs while ensuring adequate level of testing is performed. Problems are analyzed more efficiently using the same developer friendly tools during

development & test as well as problem analysis of failing applications in production systems.

These products are essential for organizations who are looking to improve Business Agility

and discover increased value from their existing z Systems investment.

COBOL Suite for z/OS includes: Application Performance Analyzer for z/OS V13.1 Debug Tool for z/OS V13.1 Fault Analyzer for z/OS V13.1 File Manager for z/OS V13.1 Rational Developer for z Systems V9.5

Control/DCD – Control/SE Enterprise COBOL Migration

Joel R. Banner

President

Marble Computer, Inc.

February 23, 2016

Control/DCD For Enterprise COBOL

20

• Control/DCD is a useful software tool for the Migration of existing COBOL applications to the new Enterprise COBOL compilers.

• Control/DCD is the latest Version of the DCD product that was originally developed in 1975.

• Control/DCD runs in batch for one or all programs in a COBOL application.

Control/SE For Enterprise COBOL

21

• Control/SE is a useful software tool for the Migration of existing COBOL applications to the new Enterprise COBOL compilers.

• Control/SE is an interactive subset of Control/DCD that process one program at a time.

• It utilized the ISPF FIND Command.

The Case For Control/DCD/SE

22

• For many large organizations the continued use of the Mainframe platform and COBOL are justified as a focal point of their computing environment.

• Based on several studies, including from IBM, there are 250-350 Billion lines of Mainframe COBOL code worldwide.

• Mainframes account for more than 70% of the worldwide online transactions – MicroFocus. • We find Mainframes still processing large batch jobs utilizing COBOL code that goes back

40-50 years. However the “Tribal Knowledge” is long gone.

The Case For Control/DCD/SE

23

• There are several obstacles in a migration because one cannot assume that a recompilation of a program is going to be a one for one conversion.

• Recompiling an old COBOL program without the proper documentation can cause logic errors in the business rules, as well as re-open old coding errors.

• Many large organizations outsource their COBOL development and maintenance to outside contactors, mostly offshore.

• Studies show that the code coming back from offshore may be more CPU intensive than before mediation. This can reduce some of the economic benefit of Enterprise COBOL.

The Case For Control/DCD/SE

24

• Both Control/DCD/SE provide a precompile analysis of the code. Therefore the extra CPU time (3-12X) and CPU Memory (200M) needed to compile under COBOL 5.2 is bypassed.

• Both Control/DCD/SE produce an Alternate Compile Listing for the COBOL program which can than edited.

• The ACL has a Data and Procedure Division Narrative.

• Control/DCD/SE provides for complete Perform Error checks as well as Perform Logic Error.

• Control/DCD/SE can diagnose potential data errors as well as highlight unused code.

The Case For Control/DCD/SE

25

• Utilizing Millennium Language Extensions?

• Older COBOL Syntax errors are highlighted.

• Some Data Formats not supported.

• VS COBOL II requires a lot of source code changes.

• LABEL Declaratives

• XML Parse

• For more details go to:

• file:///C:/Users/ADR3D/Downloads/COBOL%20V5%20Migration.pdf

• Tom Ross – Share (Boston) March 13, 2014.

Control/SE For Enterprise COBOL

26

• Control/SE Utilizes the Most Used Mainframe Editor: ISPF

• Control/SE Adds the & character when doing a FIND to activate it’s Key Words and produce a program Narrative.

• Utilizes a Unique Set of Easy To Use Macro Operands.

• Returns COBOL errors in 80 Character format for easy screen viewing.

• Is fast and Efficient versus Compiling with COBOL 5.2.

The Case For Control/DCD

27

• Control/DCD is a batch COBOL Analyzer that can be used for multi- program analysis, JCL processing and Data Field analysis.

• A tried and true product for regression testing and going forward for maintenance.

1. Control/DCD is a new version of our widely used DCD IV Software program

designed for Enterprise COBOL migrations. 2. Control/DCD has all new ISPF viewing and editing capabilities. 3. Produces Program Narratives and Data Analysis as well as Management Reports. 4. Produces the Alternative Compile Listing with it’s own pre-compiler. 5. Highlights Enterprise COBOL syntax errors. 6. Easy to learn and use. If you know COBOL you know Control/DCD.

The Case For Control/SE

28

• Entry Level Version of Control/DCD • Interactive for a single COBOL Program

• Simple to Learn - Uses ISPF’s FIND Command. • The Control/SE Format is: Find &[Operand]. • Operands are Macros That Analyze COBOL Code. • Provides For Management Reports.

The Case For Control/SE

29

• A Few of the ISPF Interface Commands: • Find &(PERFORM-ANALYSIS) • Find &(FIELD-NAME) • Find &(PERFORM-ERRORS) • Find &(CODE-NOT-USED) • Find &(FORWARD-TRACING) • Find &(HELP)

The Case For Control/SE

30

Find &DATA-FIELD

The Case For Control/SE

31

Find &CODE-NOT-FOUND

The Case For Control/SE

32

Find &FORWARD-TRACING

The Case For Control/SE

33

Find &PERFORM-ANALYSIS

The Case For Control/DCD/SE

34

• Error Prone versus Error Free

• Reduces Migration Project Time. • Does Not Require the Enterprise COBOL Compiler. • An Active Quick Solution For Fixing Regression Testing Errors. • Helps Clean Up Old and Unused Code. • Finds Hidden Error – Logic as Well as Data. • Highlights Syntactical Problems. • Batch or Online – Process an Entire Application in One Job.

Notices and Disclaimers

35

Copyright © 2016 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM.

U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.

Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided.

Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.

Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary.

References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business.

Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation.

It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law

Notices and Disclaimers Con’t.

36

Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

The provision of the information contained h erein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right.

IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™, FASP®, FileNet®, Global Business Services ®, Global Technology Services ®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli®, Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.

Thank You Your Feedback is Important!

Access the InterConnect 2016 Conference Attendee Portal to complete your session surveys from your

smartphone, laptop or conference kiosk.