Top Banner
® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Using RDz for z/OS Traditional Maintenance and Support Maintenance and Support Jonathan Sayles – [email protected]
80

® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – [email protected]@us.ibm.com.

Mar 26, 2015

Download

Documents

Noah McNulty
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

®

IBM Software Group

© 2008 IBM Corporation

Using RDz for z/OS Traditional Maintenance and Using RDz for z/OS Traditional Maintenance and SupportSupport

Jonathan Sayles – [email protected]

Page 2: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

2

IBM Trademarks and Copyrights © Copyright IBM Corporation 2007,2008, 2009. All rights reserved.

The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates.

This information is based on current IBM product plans and strategy, which are subject to change by IBM without notice. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way.

IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other IBM Rational products and services are trademarks or registered trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.

"All performance data contained in this publication was obtained in the specific operating environment and under the conditions described in this white paper and is presented as an illustration only.

Performance obtained in other operating environments may vary and customers should conduct their own

testing".

Page 3: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

3

z/OS Legacy Systems – Scale and Scopez/OS Legacy Systems – Scale and Scope Think … big

Okay, now think way bigger

A famous automaker, runs 50,000 COBOL batch jobs every night Each batch job is composed of between 1 and 20 (or more) job steps

(Average: 10 steps)

Each job step executes 1 to 1,000 programs in a load library

(Average: 20 programs)

– Each program is between 1,000 and 100,000 lines of source code

(Average: 2,000 lines)

– Go ahead, take the averages above, and do the math – every night there are:

50,000 jobs running 400,000 lines of code each, or50,000 jobs running 400,000 lines of code each, or

20,000,000,00020,000,000,000 – twenty billion lines of COBOL code – twenty billion lines of COBOL code

50,000 jobs running 400,000 lines of code each, or50,000 jobs running 400,000 lines of code each, or

20,000,000,00020,000,000,000 – twenty billion lines of COBOL code – twenty billion lines of COBOL code

That's just nightly batch, in addition this shop runs: Online transactions

End of period processing (year/month/week/quarter)

"One-off" jobs – for any number of reasons (utilities, event-driven reports, etc.)

Page 4: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

4

Terms & Definitions- What is Software Maintenance?

Software maintenance is that collection of activities that relates to correcting, adapting, or perfecting software in production use. "Software" includes not only program code, but also the data, designs and

documentation concerning the program code.

"Correcting" software means removing functional errors

This is called "Production Support"

"Adapting" software means installing enhancements.

Enterprise Modernization projects fall under this heading

"Perfecting" software means improving processing efficiency or performance, or restructuring the software to improve service-ability (improve maintain-ability)

"in production use" means the software has been formally accepted and put into use by its users

Page 5: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

5

Types of Software Maintenance ProjectsTypes of Software Maintenance Projects Emergency:Emergency: 10%

Processing fault

Corrective:Corrective: 20% Processing failure,

Performance failure,

Implementation failure

Adaptive:Adaptive: 54% Business Enhancements

Change in environment

Application modernization

Perfective:Perfective: 16% Processing/Performance/Maintainability enhancements

% of maintenance projects by subcategory

Source: Industry Research

Page 6: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

6

If software maintenance was your car… Emergency:Emergency:

You spun out on the freeway and totaled your vehicle…

On the way to work

And you're meeting your boss's boss – who's bringing along key clients

Whom you're presenting to

In about an hour

Page 7: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

7

If software maintenance was your car… Corrective:Corrective:

You have an emissions inspection this month, and so decide to get a tune-up

Page 8: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

8

If software maintenance was your car… Adaptive:Adaptive:

You're adding after-market parts to totally "trick out" your ride

Page 9: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

9

If software maintenance was your car… Perfective:Perfective:

You DON'TDON'T have an inspection coming up, and you're tuning up your care

(After all – it's the responsible thing to do!)

Page 10: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

10

Elements of Software Maintenance ProjectsElements of Software Maintenance Projects

PeoplePeople z/OS Legacy Programmers

Traditionally? Junior developers

Often under-trained

Usually inexperienced

ToolsTools Compile listings/ISPF

IDE (RDz+RAA)

Some shops own static code analysis tools used during one phase of the lifecycle

ProcessProcess Many shops do not have a formal Software Maintenance lifecycle

Existing Code-BaseExisting Code-Base z/OS Legacy

(if not sunset) 4GL applications: PowerBuilder, Visual Basic, Easytrieve, Model 204

C/C++

Java

Page 11: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

11

Maintenance Projects - ExamplesMaintenance Projects - Examples CorrectiveCorrective

Data center ABEND condition

A batch job run is halted by z/OS and the problem must be fixed and job re-run due to:– Batch window cycle time constraints

– Output file and database dependencies in the batch schedule – or even online

Data center "out of balance" condition

Egregious performance problem for online application

AdaptiveAdaptive Required:

Add Home Health and Skilled Nursing Facilities as Medicare providers

Y2K remediation (the "mother of all Adaptive Maintenance Projects")

Business-driven

Company acquisition - Bank merger, consolidate code-base

Offload a z/OS application on to an AIX or z/Linux platform

Technology-driven

Enterprise Modernization

PreventativePreventative Evaluate SQL or COBOL (!) – looking for ways to improve run-time performance

See Backup Slides forSee Backup Slides for

additional examplesadditional examples

Page 12: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

12

Software Maintenance Project LifecycleSoftware Maintenance Project Lifecycle This is an industry-standard break-out of the steps and sub-processes in a typical

z/OS Software Maintenance Lifecycle Note that there have been additional refactoring and extending many of these steps/stages,

breaking them down into additional lifecycle steps

Start Here…

Page 13: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

13

Software Maintenance Lifecycle – and IBM/Rational ToolsSoftware Maintenance Lifecycle – and IBM/Rational Tools

Debug ToolFault Analyzer

Debug ToolFault Analyzer

Debug ToolFault Analyzer

Team

Collab

ora

tio

n

IDE

Work

ben

ch

Start Here…

IBM/Rational solutions which automate the stages of the Software Maintenance LifecycleIBM/Rational solutions which automate the stages of the Software Maintenance Lifecycle IBM/Rational solutions which automate the stages of the Software Maintenance LifecycleIBM/Rational solutions which automate the stages of the Software Maintenance Lifecycle

Note: RTCz/RDz enable allall lifecycle stages

RationalSoftwareArchitect

Page 14: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

14

Maintenance Project Problem AreasMaintenance Project Problem Areas Programmer EffectivenessProgrammer Effectiveness

Almost all maintenance (2010 and beyond) is done by programmers who did NOT write the code they're maintaining:

Gaining a complete and thorough understanding of the application semantics of a single legacy program, much less an entire system is incredibly challenging

Much maintenance is done by programmers who do not have the depth of experience necessary to understand:

z/OS-specific technical issues and problems

Complexities introduced by large-scale application scope

Software QualitySoftware Quality Making matters worse, z/OS "Legacy Applications" – which is the stuff of z/OS Maintenance

Projects – have become over the decades:

"Brittle" – and easily broken because of short-term "patches" applied over the years

Complex – due to the number of different coding styles that have revised the logic

With useless documentation and embedded program comments

– Op Ed – luckily, z/OS Legacy Applications were written primarily in COBOL which is self-documenting. Imagine 20,000,000 lines of C code

Machine requirementsMachine requirements Processing costs (development MIPS costs) and LPAR availability

Page 15: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

15

The Need for Automated Maintenance SolutionsThe Need for Automated Maintenance Solutions

"[The] current practice of documentation and coding does not encourage efficient understanding as it compartmentalizes knowledge by type of document and rarely provides the cross references that are needed to support programmers’ cognitive needs." A. von Mayrhauser, Senior Member, IEEE, and A.M. Vans, Colorado State U.

Translation: Application understanding, or "gaining intellectual control" (Larry England/IBM) over the code

you're about to change is the crux of software maintenance

And almost all maintenance is done by individuals who did NOT write the original code

Programmers use a multilevel approach to application understanding (building cognitive procedural models of the semantics):

Top down

Bottom up

And frequently switch between program/situation (bottom-up), and domain (top-down) models.

Without automated solutions you have two alternatives for

ISPF

Studying compile listings

Page 16: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

16

Why Automated Maintenance Solutions?Why Automated Maintenance Solutions?

Same basic functionality since the Same basic functionality since the late 1970's late 1970's

Same basic functionality since the Same basic functionality since the late 1970's late 1970's

With RDz/RAA and the PD Tools

Work much more productively

Lower defect rate

Save MIPS

Page 17: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

17

Studying Listings What the bosses think it's like

Manual process dates back to Grace Hopper and the first generation of business programmers building the first generation of production source code

What it's really like

Page 18: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

18

Optimizing MaintenanceOptimizing Maintenance Research, over the last 20 or so years in the field of z/OS maintenance has proven that there

are specific needs of maintenance work – for process and tools that differ from development – and that there are specific best practices, tools and tool features that improve maintenance productivity and effectiveness

These improvements include (but are not limited to):

General features:1. The ability to view the application landscape, to see/analyzesee/analyze as much code at-a-

glance as possible– In order to grasp and learn an applications semantics, prior to making logic changes

– Particularly important due to the size and intrinsic complexity of legacy z/OS applications

2. Program navigation– Simple, "Built-ins" for targeting common areas of interest

3. Functionality that keeps up with developer's thought processes– A development environment that allows you to effectively multi-task with tools that scale to

the complexity of the work you do

Specific maintenance tools/features assistance– Finding semantic dependencies – in key elements throughout your application

– Rendering code in a semantically meaningful way

– Verifying the effect of a maintenance change

Page 19: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

19

RDz/RAA/PD Tools – Project/Work CoverageRDz/RAA/PD Tools – Project/Work Coverage

z/OS Application z/OS Application Production SupportProduction Support

SOA/XMLSOA/XMLWeb ServicesWeb ServicesModernizationModernization

Traditional z/OS Maintenance and EnhancementsTraditional z/OS Maintenance and EnhancementsCOBOL, PL/I, AssemblerCOBOL, PL/I, Assembler

CICS, IMS, DB2CICS, IMS, DB2

UIUIModernizationModernization

Traditional z/OS DevelopmentTraditional z/OS DevelopmentCOBOL, PL/I, HLASMCOBOL, PL/I, HLASM

CICS, IMS, DB2CICS, IMS, DB2

Rational Developer for System zRational Developer for System zRational Asset AnalyzerRational Asset Analyzer

Problem Determination ToolsProblem Determination Tools

Page 20: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

20

RDz/RAA/PD Tools – Integrated Lifecycle CoverageRDz/RAA/PD Tools – Integrated Lifecycle Coverage

Edit – Compile – Unit TestEdit – Compile – Unit TestRational Developer for System zRational Developer for System z

Problem Determination ToolsProblem Determination Tools

Integration TestIntegration TestRational Developer for System zRational Developer for System z

Problem Determination ToolsProblem Determination Tools

Project and Program Analysis, Scoping, UnderstandingProject and Program Analysis, Scoping, UnderstandingRational Asset Analyzer/Rational Developer for System zRational Asset Analyzer/Rational Developer for System z

Build ProcessBuild Process• Rational Team ConcertRational Team Concert• ClearCase for zClearCase for z

System, QASystem, QAAcceptanceAcceptance

TestTest

• PD Tools - Code Coverage PD Tools - Code Coverage • Rational Function Tester for zRational Function Tester for z• Rational Performance Tester for zRational Performance Tester for z

Build Build Process**Process**

z/OS Basedz/OS Based

MixedMixedz/OS Basedz/OS BasedWorkstationWorkstation

BasedBased

Workstation Workstation BasedBased

Page 21: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

21

RAA and z/OS Traditional MaintenanceRAA and z/OS Traditional MaintenanceRAA reveals the procedural semantics buried within an application's source code.

It catalogs all elements andand all of the RELATIONSHIPS among the application elements.

RAA presents these elements and their relationships in simple, visual, hyper-linked and easily consumed reports and graphics

It is the shortest path to grasping an application – It is the shortest path to grasping an application – gaining top-down and bottom-up gaining top-down and bottom-up

"intellectual control""intellectual control"

Page 22: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

22

Collateral list z/OS Programmers – Book Excerpt from Capers Jones

http://www-949.ibm.com/software/rational/cafe/thread/2274?tstart=15

z/OS Terms and Concepts: http://www-949.ibm.com/software/rational/cafe/docs/DOC-3129

COBOL's future: http://answers.google.com/answers/threadview/id/328090.html

Page 23: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

®

IBM Software Group

© 2008 IBM Corporation

RDz Q1 Online User GroupRDz Q1 Online User Group

Tools for z/OS Maintenance and Support – ISPF and RDz

Page 24: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

24

Optimizing MaintenanceOptimizing Maintenance

Recall from a previous slide that there are decided areas in which software products save time and money: General tool features:

1. The ability to explore the application code-base, to view/analyzeview/analyze as much code at-a-glance as possible– In order to grasp and learn an applications semantics, prior to making logic changesIn order to grasp and learn an applications semantics, prior to making logic changes

– Particularly important due to the size of legacy z/OS applicationsParticularly important due to the size of legacy z/OS applications

2. Program navigation– How programmers studystudy code

3. Functionality that keeps up with developer thought processes

– Real-time/Event-driven/Hyper-linked analysis

Specific maintenance tools/features assistance Finding semantic dependencies – in key elements throughout your

application

Rendering code in a semantically meaningful way

Verifying the effect of a maintenance change

Page 25: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

25

Traditionally by studying compile listings (green bar printout) – or using ISPF

With compile listings you get to see more code – a necessity when the program you're trying to learn has 12,000 lines of Procedure Division With ISPF you get to see a lot less at-a-glance

Most z/OS traditional developers use: 24/80 screen size24/80 screen size

How Do You Learn/Explore an Application Prior to Changing it?How Do You Learn/Explore an Application Prior to Changing it?

Page 26: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

26

Hmm…. that's not very much – can't you split the screen?Hmm…. that's not very much – can't you split the screen?

Sure… if you want. But now you're down four and five lines per… Note can use PFSHOWPFSHOW toggles to display two more lines total

Let's try 32/80 screen size…

Page 27: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

27

32/80 with Split Screen32/80 with Split Screen Better, but still only ~nine lines per screen?

You cancan split so that one screen has 17 lines – and you can use PF9 to swap

However, you can only be in EDIT within one session (within the same file)

Page 28: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

28

43 X 80 Screen Size43 X 80 Screen Size Now you're talking! A colossal 36 lines of code at-a-glance – not even 1/2 a page of

green-bar. And even then, the characters seem, umm… Salvador Dali-esque?

Page 29: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

29

Making Things Clear – with RDzMaking Things Clear – with RDz

Learn and work with programs 90 lines at a time Learn and work with programs 90 lines at a time (Editable and all tools available, in both views)(Editable and all tools available, in both views)

Learn and work with programs 90 lines at a time Learn and work with programs 90 lines at a time (Editable and all tools available, in both views)(Editable and all tools available, in both views)

Page 30: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

30

A "BIGGER PICTURE" – Explore/Learn viewing 174 Lines of source code A "BIGGER PICTURE" – Explore/Learn viewing 174 Lines of source code – Fully edit-able and tooling-enabled – Fully edit-able and tooling-enabled

fdfds

RDz's COBOL Editor – with three open programsRDz's COBOL Editor – with three open programs

Fonts actually are legible (the size green-bar printout)Fonts actually are legible (the size green-bar printout)

RDz's COBOL Editor – with three open programsRDz's COBOL Editor – with three open programs

Fonts actually are legible (the size green-bar printout)Fonts actually are legible (the size green-bar printout)

Page 31: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

31

What can you do with all that "real estate"?What can you do with all that "real estate"?

Examine and analyze the program Examine and analyze the program logic that does screen handling…logic that does screen handling…

While you're reviewing the screens I/O While you're reviewing the screens I/O area definitions… area definitions…

Correlating with the actual screen Correlating with the actual screen layout (source or design views)layout (source or design views)

Examine and analyze the program Examine and analyze the program logic that does screen handling…logic that does screen handling…

While you're reviewing the screens I/O While you're reviewing the screens I/O area definitions… area definitions…

Correlating with the actual screen Correlating with the actual screen layout (source or design views)layout (source or design views)

What What if I if I want biggerwant bigger fontsfonts??What What if I if I want biggerwant bigger fontsfonts??

Page 32: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

32

It's Windows, right? (You can scale the fonts and screens to any It's Windows, right? (You can scale the fonts and screens to any resolution you want)resolution you want)

What else can I do with all this visual real estate?

Page 33: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

33

What else can you do with additional Real Estate?What else can you do with additional Real Estate?

Use Case – Database Applications:Use Case – Database Applications:

1. Copy/Paste your SQL Declare into a SQL Script and run it – verify results

2. Without doing any other navigation open a test table, and edit row values – or modify the statement (or both)

3. Re-run the SQL Script – verify results

4. Return to step 2 – repeat until satisfied with functionality

Page 34: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

34

Edit a program and edit its copybooks (all at the same time)Edit a program and edit its copybooks (all at the same time)

Page 35: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

35

Edit large data files – with long record lengthsEdit large data files – with long record lengths

This is File Manager/RDz integration – with filtered data (shown as gray rows)

This is File Manager/RDz integration – with filtered data (shown as gray rows)

Page 36: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

36

More Ideas (on what do with all that screen real estate) Reconcile record layout and picture clause mismatches

Page 37: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

37

Source Code Application/Code ViewingSource Code Application/Code Viewing ISPFISPF

17 43 lines of source

Split screen allows edit in one frame only – when editing a single dataset

Horizontal screen split only

RDzRDz 46 174 lines of code

Any number of additional eclipse views open and sized

Horizontal or vertical screen split Better use of real estateBetter use of real estate

Windows-based/Eclipse-based Scale fonts/screen resolution to tasteScale fonts/screen resolution to taste

Scale any specific window to sizeScale any specific window to size

Full edit capabilities in all split source views

Full product tooling in all source views

Can open multiple tools and work on related application elements simultaneously – examples:

Edit program source + modify DB2 Edit program source + modify DB2 values – or QSAM/VSAM test data values – or QSAM/VSAM test data record values simultaneouslyrecord values simultaneously

Edit screen I-O areas + procedural Edit screen I-O areas + procedural logic and view/edit screens logic and view/edit screens simultaneouslysimultaneously

Page 38: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

38

Isolating Code Elements – ISPF Isolating Code Elements – ISPF

ISPF 3.4

Split Screen

Excluding lines – usually combined with: Find

commands

Exclude lines (optional)

Along with viewing the most code at-a-glance as possible, often you must isolate key elements within a program, and filter out the distracting non-essential information

ISPF options include:ISPF options include:

Page 39: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

39

Isolating Code Elements – RDzIsolating Code Elements – RDz

Double-click (to select)

Right-click Context menu option

for filtering/isolating

Bookmark, and/or Expand & Collapse code details

Page 40: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

40

Isolating Code Elements – RDz Additional OptionsIsolating Code Elements – RDz Additional Options Filter view context menu

Find with All option Automatically collapses search

results

Page 41: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

41

Isolating Code – ISPF versus RDzIsolating Code – ISPF versus RDz

ISPF Manual – all typing

Multiple step operation

– Combination of primary and line commands

Limited functionality

Find Text + X nnn

RDz Mouse-driven

Option for typing

Single operation

Filtering for:

Any element within your source

Divisions

Only Code

Only Comments

I-O Statements

Errors

Program Divisions

Outlined source

Find text

Collapse/Expand

Page 42: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

42

Summary – Code Analysis/Viewing the Application Summary – Code Analysis/Viewing the Application Landscape – ISPF versus RDzLandscape – ISPF versus RDz ISPF: Limited by 3270 technology and 30 year-old functionality

RDz: Enhanced through state-of-the-art windows/IBM technology: LPEX, Eclipse

Put another way… Would you return to this:

When you can see and do this?

Page 43: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

43

Viewed another way…Viewed another way…

You can use green screen technologyYou can use green screen technology

Or you can Or you can

use RDzuse RDz

Page 44: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

44

Navigating – ISPFNavigating – ISPF

Besides being able see as much code at-a-glance as possible, maintaining an application requires that developers be able to navigate easily and quickly to precise "points of interest" within the source code.

In ISPF this is done by pressing PF-Keys: F7/F8/F10/F11F7/F8/F10/F11

Often combined with

Primary edit commands

– FINDFIND … F5F5

– Locate …Locate …

And custom scroll settings

Page 45: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

45

Limitations of ISPF Navigation

Minimal navigation functionality Options are:

Locate <line-number>

Find 'text'

– Additional sub-options

F7/F8/F10/F11

Relatively clumsy at aligning on/display a specific set of statements or lines

Particularly insufficient when combined with limited screen sizes

No application run-time or language-understanding built-in to ISPF functionality

Keyboard only for primary edit navigation commands

Every single Enter and PF-Key pressed is a CPU-interrupt (becomes a data center "charge back" and increases MIPS usage)

Page 46: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

46

Navigating – Navigating – RDzRDz Scroll bars

Up/Down

Right/Left

Outline View Two-way

synchronize

Standard windows keys:

PgUp

PgDn

Ctrl/Home

Ctrl/End

Arrow keys: Up Down Right Left

PF Keys F7/F8

Commands:

Line#

Page 47: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

47

Additional RDz Additional RDz Navigation FeaturesNavigation Features BookmarksBookmarks

Perform HierarchyPerform Hierarchy

Perform HierarchyPerform Hierarchy

Hover – reveals paragraph Hover – reveals paragraph and variable declarationand variable declaration

Open DeclarationOpen Declaration

… … Forward/BackwardForward/Backward

Page 48: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

48

RDz Source Search RDz Source Search and Navigationand Navigation Rich search options - Rich search options - All

ISPF search options + Additional capabilities

Across different platforms

Can Mix & match PDS Can Mix & match PDS types types (JCL, COBOL, COPY, BMS, CLIST, etc.) in single search operation

Search results:Search results: PersistPersist

Within a session

Between sessions

Are hyperlinkedAre hyperlinked

Can be scrolled Can be scrolled sequentially by clickingsequentially by clicking Backward

Forward

Which act as navigation "place-holders"

Page 49: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

49

RAAi Control RAAi Control Flow ModelFlow Model Graphically reveals

program's procedural structure

Can click a paragraph name and source code within the LPEX editor aligns

Provides unbeatable combination of "top-down" and "bottom-up" code learning model

Page 50: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

50

RAAi – Search for Variables References RAAi – Search for Variables References and Modificationsand Modifications

Show sorted X-Ref of program variables

When found can use to answer critical and important Maintenance Questions

Page 51: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

51

Source Code Navigation – ISPF versus RDzSource Code Navigation – ISPF versus RDz ISPF

Manual – all typing

Multiple step operation

– Combination of primary and line commands

Limited functionality

Simple Find/Repeat Find

RDz Mouse-driven

Option for typing

Too many options to recite here, but: Outline view

Perform Hierarchy

Hover

Open Declaration

– Forward / Backward arrows

Scroll bars (Vertical/Horizontal)

PC keys

– PgUp/PgDn/Ctrl-Home/Ctrl-End

Arrow keys

PF Keys

– F7/F8/F10/F11

Command line

RAAi – hyperlinked:

– Control flow model

– Variable cross-reference

– Where Reference/Modified

– Impact analysis report

Search:

– Wildcard text/Regular expressions

– Across different PDS types on the host

– Found items:

– Persist

– Are hyperlinked

Page 52: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

52

And Perhaps Best of ALL?Essentially zero MIPS consumedEssentially zero MIPS consumed - with RDz/RAA code navigation and analysis

$$$$$$

Page 53: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

53

Summary Summary How often do you use DOS

Edit for creating formal text documents

Versus using Windows technology

Page 54: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

57

SummarySummary Green-screen tools are general-purpose, technology-independent product:

Excellent for coding/creating new programs and applications from scratchnew programs and applications from scratch

With next to nothing specific, in the way of assistance for maintenance/support tasks

Although obviously individuals have used ISPF with immense manual work effort to maintain and support production applications for decades Using

"Head's down" studying of compile listings, using paper clips and sticky pads

Handwritten notes to cross-reference impacted statements (often in the hundreds)

Green-Screen/

Error-prone and time-consuming (aka – "expensive")

Taxes developer experience and expertise

There are much better solutions to employ for doing maintenance and support, at this point, which: Accelerate results

Reduce costly errors, rework and refactoring

Improve productivity

Lower machine costs through: Offloaded development and reduced compiles and test cycles

Page 55: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

58

Net

You can continue to maintain z/OS applications the way developers did in the 1970s

Page 56: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

59

Or you can use RDz/RAAi and the PD ToolsOr you can use RDz/RAAi and the PD Tools

Which:

Makes your developers more productive?

Nets you better quality code (fewer software defects)?

Saves MIPS/Time and Money?

Which:

Makes your developers more productive?

Nets you better quality code (fewer software defects)?

Saves MIPS/Time and Money?

Page 57: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

60

Principles of Better MaintenancePrinciples of Better Maintenance Determining Dependencies:

Data Dependencies

Impact Analysis

– A data dependence exists when one statement provides a value subsequently used by another statement either directly or through a chain of data definitions and references.

Data flow diagram

Procedural Dependencies

Paragraph level – see Flowchart/Visualization

– A statement in a procedure is syntactically dependent on another statement of the procedure if there is a chain of control and data dependences between the two statements.

Module level – see Run unit and Batch Diagram

Specialty functions for maintenance: Functions that assist maintenance

Functions that are only for maintenance

Where used

Where changed

Impact analysisFrom white paper on z/OS Maintenance

http://www-949.ibm.com/software/rational/cafe/docs/DOC-3298

Page 58: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

61

Optimizing Maintenance – Static Code Analysis Tool FeaturesOptimizing Maintenance – Static Code Analysis Tool Features

Combination Combination of:of: RDz

Rational Asset Analyzer

Page 59: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

62

Optimizing Maintenance – Dynamic Code Analysis Tool Optimizing Maintenance – Dynamic Code Analysis Tool FeaturesFeatures

Combination of:Combination of: RDz

Problem Determination Tools

CICS Interdependency Analyzer

Rational Asset Analyzer

Page 60: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

63

Course

Principles of z/OS MaintenancePrinciples of z/OS Maintenance

Backup slidesBackup slides

Units:Units:

RDz v7.6 RDz v7.6 Technical TrainingTechnical Training

Page 61: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

64

RDz – Mainframe Comparison Chart ("Cheat Sheet")RDz – Mainframe Comparison Chart ("Cheat Sheet")TSO/ISPFTSO/ISPF RDz – Integrated Development EnvironmentRDz – Integrated Development Environment

Mainframe – z/OSMainframe – z/OS PC – Windows – where the code is being developedPC – Windows – where the code is being developed

JCLJCL JCL. If doing offloading from z/OS, shell scripts – on AIX machinesJCL. If doing offloading from z/OS, shell scripts – on AIX machines

Manually analyze codeManually analyze code RAA iRAA i

Edit Code - ISPFEdit Code - ISPF LPEX or ISPF mode editorLPEX or ISPF mode editor

Compile/Compiler OptionsCompile/Compiler Options Syntax Check – and/or Build Application – Compiler options under RDzSyntax Check – and/or Build Application – Compiler options under RDz

Submit JobSubmit Job Edit JCL and submit job, or just use the Context menu and SubmitEdit JCL and submit job, or just use the Context menu and Submit

Unit Test – DISPLAY/READY Trace, XpeditorUnit Test – DISPLAY/READY Trace, Xpeditor Debug Perspective – Local ProjectDebug Perspective – Local Project

Integration Test – XpeditorIntegration Test – Xpeditor Remote Systems – z/OS Debug Tool IntegrationRemote Systems – z/OS Debug Tool Integration

QA – Regression Test - WinRunnerQA – Regression Test - WinRunner Remote Systems Testing – and utilizing Rational Function TesterRemote Systems Testing – and utilizing Rational Function Tester

ABEND-AID/IBM Fault AnalyzerABEND-AID/IBM Fault Analyzer RDz – Integrated Fault AnalyzerRDz – Integrated Fault Analyzer

File-Aid/IBM File ManagerFile-Aid/IBM File Manager RDz – Integrated File ManagerRDz – Integrated File Manager

PDS (library)PDS (library) Project – or Folder SetProject – or Folder Set

JESJES Remote System / JES Remote System / JES

Endevor/ChangeMan – or Your SCLMEndevor/ChangeMan – or Your SCLM 3rd Party SCM utilizing RDz's CARMA feature; ClearCase utilizing native integration; SCLM utilizing the 3rd Party SCM utilizing RDz's CARMA feature; ClearCase utilizing native integration; SCLM utilizing the SCLM DT Perspective and/or Local HistorySCLM DT Perspective and/or Local History

ISPF Option 0ISPF Option 0 PreferencesPreferences

ISPF Option 1 and Option 2ISPF Option 1 and Option 2 LPEX EditorLPEX Editor

ISPF Option 3.1 (Library Utilities)ISPF Option 3.1 (Library Utilities) Project Explorer and Context Menu in Remote Systems ExploreProject Explorer and Context Menu in Remote Systems Explore

ISPF Option 3.2 (Dataset Utilities)ISPF Option 3.2 (Dataset Utilities) Project Explorer and Context Menu in Remote Systems ExplorerProject Explorer and Context Menu in Remote Systems Explorer

ISPF Option 3.3 (Move and Copy)ISPF Option 3.3 (Move and Copy) Project Explorer and Context Menu in Remote Systems ExplorerProject Explorer and Context Menu in Remote Systems Explorer

ISPF Option 3.4 (DSList)ISPF Option 3.4 (DSList) Project Explorer and Filters and Context Menu in Remote Systems Explorer and LPEX EditorProject Explorer and Filters and Context Menu in Remote Systems Explorer and LPEX Editor

ISPF Option 3.8 (Outlist)ISPF Option 3.8 (Outlist) Remote Explorer – JES – My JobsRemote Explorer – JES – My Jobs

ISPF Option 3.11 ISPF Option 3.11 3.15 (Extended Search) 3.15 (Extended Search) Search menuSearch menu

ISPF Option 4 (Foreground)ISPF Option 4 (Foreground) Run Run

ISPF Option 6ISPF Option 6 TSO Command Shell – with some functional limitations (e.g. cannot issue Host Execs)TSO Command Shell – with some functional limitations (e.g. cannot issue Host Execs)

ISHELLISHELL Remote Systems Explorer - USS files/filters + Context menuRemote Systems Explorer - USS files/filters + Context menu

OMVSOMVS USS Command ShellUSS Command Shell

SPUFI/QMFSPUFI/QMF Data PerspectiveData Perspective

Page 62: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

65

RDz – ISPF Comparison Chart – PF-Keys

ISPF EditorISPF Editor LPEX EditorLPEX EditorPF 1 = Help PF 1 = Help F1, Help Menu*** See slide notesF1, Help Menu*** See slide notes

PF 2 = Split: Split the session (lets you use two functions of PF 2 = Split: Split the session (lets you use two functions of TSO at the same time.) TSO at the same time.)

Ctrl/2 or Context Menu – Open New View – can open unlimited # Ctrl/2 or Context Menu – Open New View – can open unlimited # of viewsof views

PF 3 = End PF 3 = End Ctrl+F4 / Ctrl + 0, or close the Content AreaCtrl+F4 / Ctrl + 0, or close the Content Area

PF 4 = Return PF 4 = Return Close the Content AreaClose the Content Area

PF 5 = RFind (repeat last find ) PF 5 = RFind (repeat last find ) Ctrl/F – and /<text> from LPEX commandCtrl/F – and /<text> from LPEX command

PF = 6 RChange (repeat lst change) PF = 6 RChange (repeat lst change) Ctrl/NCtrl/N

PF = 7 Move Backward PF = 7 Move Backward PgUp key – or slider in windowPgUp key – or slider in window

PF = 8 Move forward PF = 8 Move forward PgDn key – or slider in windowPgDn key – or slider in window

PF = 9 Switch between screens during a split session; goes PF = 9 Switch between screens during a split session; goes with PF 2 with PF 2

Mouse – or Alt + Shift + Right/LeftMouse – or Alt + Shift + Right/Left

PF = 10 Move left PF = 10 Move left Home key, or slider in windowHome key, or slider in window

PF = 11 Move right PF = 11 Move right End key, or slider in WindowEnd key, or slider in Window

PF 12 Retrieve PF 12 Retrieve For LPEX commands, the Up ArrowFor LPEX commands, the Up Arrow

Use ISPF Option 0 to customize PF-KeysUse ISPF Option 0 to customize PF-Keys Use Preferences to customize and extend Function key Use Preferences to customize and extend Function key behaviorbehavior

The LPEX Context Menu can be accessed from the Right-mouse button – and from the Windows Menu key (on the keyboard between the right Alt & Ctrl keys)

It should be noted that with the LPEX editor, it is not necessary for most of the above functions to actually press Ctrl/Key combinations, as It should be noted that with the LPEX editor, it is not necessary for most of the above functions to actually press Ctrl/Key combinations, as the functionality is available from a context menu (right-mouse)the functionality is available from a context menu (right-mouse)

Page 63: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

66

RDz – ISPF Comparison Chart – Primary Edit Commands

ISPF EditorISPF Editor LPEX EditorLPEX EditorHome key – Jump to the Command LineHome key – Jump to the Command Line Escape key – jumps to the LPEX command lineEscape key – jumps to the LPEX command line

AUTOSAVE/RECAUTOSAVE/REC Prompt for Save on exit, and Autosave (Preferences), and the asterisk – next to unsaved file namesPrompt for Save on exit, and Autosave (Preferences), and the asterisk – next to unsaved file names

BOTtomBOTtom LPEX command: bottom / Ctrl+EndLPEX command: bottom / Ctrl+End

CANcelCANcel If have not saved, Close Content Area w/Save noIf have not saved, Close Content Area w/Save no

CHANGE – All – NEXT, CHARS, X, ALL PREFIX, FIRST, SUFFIX, LAST, WORD, PREV, CHANGE – All – NEXT, CHARS, X, ALL PREFIX, FIRST, SUFFIX, LAST, WORD, PREV, [col-1] [col-2][col-1] [col-2]

Supported using replaceText, Ctrl+F or the Search window: Change All, Next, PREV, Prefix and Suffix (with wildcards), Supported using replaceText, Ctrl+F or the Search window: Change All, Next, PREV, Prefix and Suffix (with wildcards), Prev, Word, [col-1][col-2], PPrev, Word, [col-1][col-2], P

Not supported: First, LastNot supported: First, Last

Copy Member NameCopy Member Name LPEX command: LPEX command: Get filenameGet filename

CREATECREATE Save file as…, or use Snippets ViewSave file as…, or use Snippets View

FIND – NEXT, CHARS, X, ALL PREFIX, FIRST, SUFFIX, LAST, WORD, PREV, [col-1] FIND – NEXT, CHARS, X, ALL PREFIX, FIRST, SUFFIX, LAST, WORD, PREV, [col-1] [col-2][col-2]

http://www.felgall.com/tso2.htm http://www.felgall.com/tso2.htm

Supported using Supported using findTextfindText, Ctrl+F, or the Search window: Find All, Next, PREV, Prefix and Suffix (with wildcards), Prev, , Ctrl+F, or the Search window: Find All, Next, PREV, Prefix and Suffix (with wildcards), Prev, Word, [col-1][col-2], PWord, [col-1][col-2], P

Not supported: First, LastNot supported: First, Last

HEX – Displays all lines in HexadecimalHEX – Displays all lines in Hexadecimal Display one individual lines in HexDisplay one individual lines in Hex

ISPF MacrosISPF Macros Not available – but can be re-written using Java for LPEX. Also, note that with the LPEX functionality some of the Macro Not available – but can be re-written using Java for LPEX. Also, note that with the LPEX functionality some of the Macro functionality may not be necessaryfunctionality may not be necessary

LOCATELOCATE Ctrl+L, or use the Outline ViewCtrl+L, or use the Outline View

MODELMODEL Snippets and Templates (both options)Snippets and Templates (both options)

MOVE Member NameMOVE Member Name LPEX Get command, in a different way, the Snippets ViewLPEX Get command, in a different way, the Snippets View

NUMBERNUMBER LPEX command: number std (columns 73LPEX command: number std (columns 7380), or number cob80), or number cob

PRINT – from ISPF 3.4PRINT – from ISPF 3.4 LPEX command: print, or Ctrl+PLPEX command: print, or Ctrl+P

PROFILE – are the changes made to your profile PROFILE – are the changes made to your profile PreferencesPreferences

Replace Member NameReplace Member Name Snippets functionalitySnippets functionality

RESetRESet LPEX command: expandAll, or: action showAll, or Ctrl+WLPEX command: expandAll, or: action showAll, or Ctrl+W

SaveSave Ctrl/S or LPEX Save commandCtrl/S or LPEX Save command

SortSort LPEX command: sortLPEX command: sort

STATS – updates statisticsSTATS – updates statistics Windows updates file statisticsautomaticallyWindows updates file statisticsautomatically

SUBmitSUBmit LPEX command: Submit, or edit JCL/Context Menu/Submit, or use Context Menu/Submit optionLPEX command: Submit, or edit JCL/Context Menu/Submit, or use Context Menu/Submit option

TABSTABS Can set margins in PreferencesCan set margins in Preferences

TOPTOP LPEX command: top / Ctrl+HomeLPEX command: top / Ctrl+Home

TSO SUBTSO SUB LPEX command: submit, and edit JCL/Context Menu/Submit, or use Context Menu/Submit optionLPEX command: submit, and edit JCL/Context Menu/Submit, or use Context Menu/Submit option

UNNUMUNNUM LPEX command: unnumLPEX command: unnum

Page 64: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

67

RDz – ISPF Comparison Chart – Primary Edit Commands – Picture Strings

ISPF EditorISPF Editor LPEX EditorLPEX EditorSimple StringSimple String YY

Previous StringPrevious String N/AN/A

Delimited StringDelimited String YY

Text stringText string YY

Picture StringPicture String PartialPartial

Picture Strings – special charactersPicture Strings – special characters Y – with regular expressionsY – with regular expressions

P'=' – any characterP'=' – any character YY

P'-' – any non-blank characterP'-' – any non-blank character Y – with regular expressionsY – with regular expressions

P'.' – any non-displayable characterP'.' – any non-displayable character Y – with regular expressionsY – with regular expressions

P'#' – any numeric characterP'#' – any numeric character Y – with regular expressionsY – with regular expressions

P'-' – any non-numeric characterP'-' – any non-numeric character Y – with regular expressionsY – with regular expressions

P'@' – any alphabetic characterP'@' – any alphabetic character Y – with regular expressionsY – with regular expressions

P'<' – any lower-case characterP'<' – any lower-case character Y – with regular expressionsY – with regular expressions

P'>' any upper-case alphabetic characterP'>' any upper-case alphabetic character Y – with regular expressionsY – with regular expressions

P'$' – any special character (not alphanumeric)P'$' – any special character (not alphanumeric) Y – with regular expressionsY – with regular expressions

Page 65: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

68

RDz – ISPF Comparison Chart – Edit Line Commands

ISPF EditorISPF Editor LPEX Editor – ISPF ModeLPEX Editor – ISPF Mode LPEX Editor – lpex ModeLPEX Editor – lpex Mode

A, An – AfterA, An – After A, AnA, An Context menu Context menu

B, Bn – BeforeB, Bn – Before B, BnB, Bn Context menuContext menu

COLS – show columnsCOLS – show columns Columns always shownColumns always shown Columns always shownColumns always shown

C, Cn, CC – CopyC, Cn, CC – Copy C, Cn, CCC, Cn, CC Context menuContext menu

D, Dn, DDD, Dn, DD D, Dn, DDD, Dn, DD Context menu or Ctrl+BackspaceContext menu or Ctrl+Backspace

F, Fn – First (used with eXclude)F, Fn – First (used with eXclude) F, F, N - Find excludes lines of codeN - Find excludes lines of code

I, In – Insert linesI, In – Insert lines I, InI, In Press <Enter>, or Press <Enter>, or

LPEX command: insertLPEX command: insert

LPEX command: addLPEX command: add

L, Ln – Last (used with eXclude)L, Ln – Last (used with eXclude) N - Find excludes lines of codeN - Find excludes lines of code N - Find excludes lines of codeN - Find excludes lines of code

M, Mn, MM – MoveM, Mn, MM – Move Context menuContext menu Context menuContext menu

R, Rn, RR, RRn – Repeat linesR, Rn, RR, RRn – Repeat lines Context menuContext menu Context menu – or Ctrl+DContext menu – or Ctrl+D

S, Sn – Show (used with eXclude)S, Sn – Show (used with eXclude) FilterFilter FilterFilter

TABS – used with TAB OnTABS – used with TAB On Set with PreferencesSet with Preferences Set with PreferencesSet with Preferences

X, Xn, XX eXcludeX, Xn, XX eXclude X, Xn, XXX, Xn, XX FilterFilter

O, On, OO – OverlayO, On, OO – Overlay O, On, OOO, On, OO Use Rectangle Copy/PasteUse Rectangle Copy/Paste

TS, TSn – Text SplitTS, TSn – Text Split Ctrl+<Enter>Ctrl+<Enter> <Enter><Enter>

<, <n, <<N Shift Data Left<, <n, <<N Shift Data Left <, <n, <<n<, <n, <<n Use Rectangle Select – shiftUse Rectangle Select – shift

>, >n, >>n Shift Data right>, >n, >>n Shift Data right >, >n, >>n>, >n, >>n Use Rectangle Select – shiftUse Rectangle Select – shift

(, (n, ((, ((N – columns left – Used with (, (n, ((, ((N – columns left – Used with COBOLCOBOL

(, (n, ((n(, (n, ((n Use Rectangle Select – shiftUse Rectangle Select – shift

), )n, )), ))n – Columns Right), )n, )), ))n – Columns Right ), )n, ))n), )n, ))n Use Rectangle Select – shiftUse Rectangle Select – shift

Page 66: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

69

RDz – ISPF Comparison ChartRDz – ISPF Comparison Chart – – LPEXLPEX Editing Operations – 1 of 2 Editing Operations – 1 of 2LPEX EditorLPEX Editor ISPF EditorISPF EditorRefactor – Remove Noise Words: - IS, THEN, PROCEED TORefactor – Remove Noise Words: - IS, THEN, PROCEED TO N/AN/A

Multiple Line Comment/UncommentMultiple Line Comment/Uncomment N/AN/A

Virtual margins – in the editorVirtual margins – in the editor N/AN/A

Code completion (Content Assist)Code completion (Content Assist) N/AN/A

Open CopybookOpen Copybook N/AN/A

Open Declaration – of variable or PERFORM'd paragraph from anywhere in the Procedure DivisionOpen Declaration – of variable or PERFORM'd paragraph from anywhere in the Procedure Division N/AN/A

Perform HierarchyPerform Hierarchy N/AN/A

Refactor – wizard for intelligent variable name changesRefactor – wizard for intelligent variable name changes N/AN/A

Outline ViewOutline View N/AN/A

Filter View – Show only Divisions, SQL,CICS,DL/I, Comments (no code), Code (no comments), etc.Filter View – Show only Divisions, SQL,CICS,DL/I, Comments (no code), Code (no comments), etc. N/AN/A

COBOL, PL/I and HLASM keyword / language help COBOL, PL/I and HLASM keyword / language help N/AN/A

Show lines that have been changed during edit (before save)Show lines that have been changed during edit (before save) N/AN/A

Find and Change against multiple file typesFind and Change against multiple file types N/AN/A

Block Marking (Ctrl+Down, Ctrl+Up, Ctrl+Home, Ctrl+End)Block Marking (Ctrl+Down, Ctrl+Up, Ctrl+Home, Ctrl+End) N/AN/A

Virtual 'A' and 'B' Column lines in the source code – as visible markers/reminders for syntaxVirtual 'A' and 'B' Column lines in the source code – as visible markers/reminders for syntax N/AN/A

Allocate LikeAllocate Like N/AN/A

Remote System FiltersRemote System Filters N/AN/A

Side-by-side Compare and/or Restore from Local HistorySide-by-side Compare and/or Restore from Local History N/AN/A

Close all split screens in one operation (context menu)Close all split screens in one operation (context menu) N/AN/A

See file attributes and statistics at all times (in a View)See file attributes and statistics at all times (in a View) N/AN/A

Page 67: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

70

RDz – ISPF Comparison Chart – RDz – ISPF Comparison Chart – LPEXLPEX Editing Editing OperationsOperationsLPEX EditorLPEX Editor ISPF EditorISPF EditorSee file attributes and statistics at all times (in a View)See file attributes and statistics at all times (in a View) N/AN/A

Wizard-driven approach to creating Web Services (WSDL files) from: CICS and IMS TM applicationsWizard-driven approach to creating Web Services (WSDL files) from: CICS and IMS TM applications N/AN/A

Wizard-driven approach to creating, testing and deploying DB2 Stored ProceduresWizard-driven approach to creating, testing and deploying DB2 Stored Procedures N/AN/A

Copy files from one LPAR to anotherCopy files from one LPAR to another N/AN/A

Edit/Compile/Unit Test if the mainframe is offlineEdit/Compile/Unit Test if the mainframe is offline N/AN/A

Syntax error – automatically select line with problemSyntax error – automatically select line with problem N/AN/A

See 90 See 90 180 lines of source at once - clearly 180 lines of source at once - clearly N/AN/A

COBOL Keyword context-sensitive syntax HELP (F1 over any reserved word)COBOL Keyword context-sensitive syntax HELP (F1 over any reserved word) N/AN/A

Regular expression searches – including across Filtered files of different file typesRegular expression searches – including across Filtered files of different file types N/AN/A

Keystroke recorder (useful for repetitive tasks and online testing)Keystroke recorder (useful for repetitive tasks and online testing) N/AN/A

Bookmark and Tasks (both lines of source and filtered views, capturing annotations, prioritization, etc.)Bookmark and Tasks (both lines of source and filtered views, capturing annotations, prioritization, etc.) N/AN/A

Find "Last Changed" line of source code / Ctrl+JFind "Last Changed" line of source code / Ctrl+J N/AN/A

Hover over variable and PERFORM statement reveals variable declaration and Paragraph/SectionHover over variable and PERFORM statement reveals variable declaration and Paragraph/Section N/AN/A

Return to previous edit OR browsed source position (backwards and forwards) during your sessionReturn to previous edit OR browsed source position (backwards and forwards) during your session N/AN/A

Validated syntax errors as you type – including variable referencesValidated syntax errors as you type – including variable references N/AN/A

Syntax check including EXEC SQL and EXEC CICS in the editorSyntax check including EXEC SQL and EXEC CICS in the editor N/AN/A

Page 68: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

71

Standard ISPF – versus RDz – Application Development and Maintenance Standard ISPF – versus RDz – Application Development and Maintenance FunctionalityFunctionality

Use Case ScenariosUse Case Scenarios TSO/ISPFTSO/ISPF RDzRDz

Reduce MIP consumption for mainframe development Cannot reduce MIP consumption with mainframe tools Significant MIPS reduction possible (between 40% and 70%)

Reduce MIP consumption for mainframe run-time environment Cannot reduce MIP consumption with mainframe run-time Can offload significant operational sub-systems on to: AIX, System P

Create Web Interfaces to existing COBOL/CICS/IMS applications Requires Java Developers with separate tools working with COBOL developers

One language – one IDE - one toolset – used by either COBOL or Java developers

Create Web 2.0 (Rich Internet Application) interfaces to existing COBOL/CICS/IMS applications Requires Java Developers with separate tools working with COBOL developers

One language – one IDE - one toolset – used by either COBOL or Web 2.0 developers

Use ONE common development environment, and IDE for:Traditional mainframe COBOL/PL1/CICS/IMS/DB2 developmentJava/J2EE modeling, development and maintenanceWeb 2.0 (Rich Internet Application) Development

Y

Cannot be done with ISPF

Cannot be done with ISPF

Cannot be done with ISPF

One language – one IDE - one toolset – used by either COBOL/PL/I, CICS/IMS, Java or Web 2.0

developers

Edit/Compile/Debug/IDE Integration:Line-by-line stepMonitor and Watch ListsModify variable and even register values dynamicallyLocal Debug and/or Remote DebugEnd-to-end debug between mainframe and WebSphere Java/J2EE applications

Only available with ISPF + CompuWare products + extremely TSO-cycle intensive

Local Debug not available

Not available

RDz + Debug Tool

Local

Host-based

Intuitive, integrated, easy to use

Language-specific editors and tools (COBOL, PL/I, Assembler, Java, EXEC SQL/CICS, etc.) Not available COBOL, PL/I, Assembler, Java, CICS, SQL, C

UML COBOL model transformation Not available Automated, Wizard-driven process

Create “top-down”, “bottom-up”, and “meet-in-the-middle” Web Services from existing :CICS/COBOL/PL1IMS/COBOL/PL1

Manual costly and time-consuming ISPF coding and testing process

Automated, Wizard-driven process

Generate using wizards, and debug DB2/COBOL/PL1 Stored Procedures Manual costly and time-consuming ISPF coding and testing process

Automated, Wizard-driven process – available from Workstation

Integrate the IDE and source editor with ABEND resolution software (click on the ABENDing line, and go directly to the COBOL source line where the instruction error occurred)

No software integration. Only available with PD Tools

RDz + Fault Analyzer Perspective. More seamlessly integrated tools

z/OS Batch Jobs (Submit, Monitor and View) Y Y

Generate complete CRUD/DB2 Application – call-able through Web Services Not available Y

Launch a z/OS session – Example CICS, IMS TM, or logon to TSO Y Y

Submit a batch z/OS Job. Monitor the job and view the output in JES Y Y

Integrated Source level Debug and RUN Available only through batch job PD Tools RDz + Mainframe Debug. More seamlessly integrated tools

"Paint" using Drag & Drop CICS and IMS Screens. Generate BMS/MFS + JCL for assembling Not available Y

Local oror system print capabilities N - Only system print Y – both

Generate JCL for compiling, linking and map editing Can be done with additional custom REXX and TSO Edit macros (and file tailoring)

Y – built in to product features

Page 69: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

72

ISPF – versus RDz Basic File, Database and Data Set Manipulation ISPF – versus RDz Basic File, Database and Data Set Manipulation FunctionalityFunctionality

Use Case ScenariosUse Case Scenarios TSO/ISPFTSO/ISPF RDzRDz

Work with DB2 tables, views, stored procedures, DDL, Extract and LoadRun coded SQL Statements interactivelySave SQL statement run-results for unit-test compare purposesGenerate SQL Statements with wizardGenerate DB2 Stored Procedures using a wizardFrom a single login, work with multiple databases or work with databases on different subsystems or LPARsEdit a table or view directly (like an Excel spreadsheet) modify/add/delete rows, etc.Load a table from a comma-delimited fileUnload a table into a comma-delimited file

Y

N

N

N

N

N

N

N

Y

Y

Y

Y

Y

Y

Y

Y

Work with CICS View and navigate resource definitions Define Resources

From scratch

From existing production resource tables Run locally (offload mainframe test cycles)BMS Map Editing and assembling

N

N

N

N

N

Partial – using SDF II

Y

Y

Y

Y

Y

Y

Work with IMS DL/I View and hierarchy map generation Navigate SYSGEN resource definitions MFS Map Editing

N

N

N

Y

Y

Y

Work with large, complex QSAM (sequential) datasetsDirect file editing format through a COPYBOOKSpecify selection for VSAM file sub-setting

Partial

Only available with CompuWare File-Aid

Y

Integrated RDz + File Manager

Work with VSAM (indexed sequential or relative record) datasetsDirect file editing format through a COPYBOOKSpecify selection for VSAM file sub-setting

Partial

Only available with CompuWare File-Aid

Y

Integrated RDz + File Manager

Work with datasets, PDS/PDSE and PDS members Allocate, compress, copy, move, migrate, compress with backup datasets Copy files between local (PC) and remote (mainframe) systems Copy files and datasets between LPARs

Y

N

N

Y

Y

Y

Page 70: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

73

Standard ISPF Facilities – versus RDz for Data Source EditingStandard ISPF Facilities – versus RDz for Data Source Editing

FunctionalityFunctionality TSO/ISPFTSO/ISPF RDzRDz

Single line edit commands (Insert/Delete/Copy/Move, Exclude, Copy with Overlay, Shift) YY Y – ISPF mode or GUI Edit ModeY – ISPF mode or GUI Edit Mode

Block (multi-line) editing (Insert/Delete/Copy/Move, Exclude, Copy with Overlay, Shift) YY Y – ISPF mode or GUI Edit ModeY – ISPF mode or GUI Edit Mode

Customize Key Mapping – change to editor best suited to the task Partial - limited to PF-Key customizationPartial - limited to PF-Key customization Y – all keysY – all keys

Commenting/un-commenting executable lines in one operation NN YY

Block Source Editing (copy rectangular block of code) NN YY

Find/Change – Global/Discretionary – repeat Find/Change, and w/in columns YY YY

Find/Change across multiple file types NN YY

Refactor (modify) Paragraph and variable names NN YY

Split Screen – vertical or horizontal. View and work in (edit in) > 2 splits at once Limited # of vertical-only views – Editing in oneLimited # of vertical-only views – Editing in one Y – unlimited use of editable viewsY – unlimited use of editable views

Comprehensive/Expansive source view (how many lines code can you see at once?) 17 lines (Default )17 lines (Default ) 46 46 76 76 lines of source (editing fonts) lines of source (editing fonts)

Collapse/Expand source view - show only 01, Paragraphs, SQL, CICS, etc. or detail code NN YY

Outline (hierarchical) view of COBOL program- Paragraphs and Copybook records NN YY

Content Assist – build COBOL statements dynamically from data elements and paragraphs (provides serious productivity improvements and fewer compile errors)

NN YY

Syntax Check Dynamically as you type (syntax validation without compilation) NN YY

Templatized COBOL and PL/I program and JCL file create process and code Snippets NN YY

Show lines that have been changed during Edit before Save NN YY

Bookmarks (create and save between edit sessions) and Bookmark views Partial – Cannot Save BookmarksPartial – Cannot Save Bookmarks YY

Interactive Compile (Syntax Check) for COBOL N – Must submit Batch z/OS JobN – Must submit Batch z/OS Job Y – Local or RemoteY – Local or Remote

Interactive JCL Scan (Syntax Check) for JCL run-stream and Procs N – Must submit Batch z/OS JobN – Must submit Batch z/OS Job Y – Local or RemoteY – Local or Remote

Syntax/Compiler Error Automatic Statement Selection NN YY

Local History for Edit Compare, or for undo of saved changes by timestamp NN YY

COBOL Keyword and Language syntax HELP NN Y – available with F1 over keywordY – available with F1 over keyword

COBOL Perform Hierarchy View (shows nesting of Perform chains) NN YY

Source File Electronic Compare Partial – can use SuperCPartial – can use SuperC YY

Filtering data sets into logical folders (for find/change) NN YY

Copybook expansion NN YY

Issue TSO commands and other TSO and custom REXX Editing Macros and CLISTS YY Partial – Most but not all functionalityPartial – Most but not all functionality

Open declaration on Selection NN YY

Hex EDIT YY YY

Page 71: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

74

TSO/ISPF – versus RDz + COBOL Analytics Tools – For DevelopmentTSO/ISPF – versus RDz + COBOL Analytics Tools – For Development

Use Case ScenariosUse Case Scenarios TSO/ISPFTSO/ISPF RDz + RAARDz + RAA

We need to ensure that the unit and integration test data beds have sufficient Code Coverage Analysis before moving the application into production

Virtually impossible to achieve with ISPF search techniques

Debug Tool

We would like to document the following for all new applications:JCL run-stream jobs, Procs and Parmlib dataData Flow Diagram – all QSAM/VSAM files, DL/I databases and DB2 Tables/ViewsA process flow diagram – all of the programs in each jobA list of all programs in the application. For each program:

A graphical/hierarchical structure chart of the flow of control

A list of all files accessed

A list of all copybooksIf online program:

Show the transaction flow – front-to-back

List associated system resources (CICS/IMS table gens)

List online screens – and which programs send and receive themJava / JavaScript web pages that access the application’s:

Process (COMMAREA or LINKAGE)

DataA set of analysis metrics – that calculate overall code complexity

Manual, iterative, costly, error-prone and time-consuming ISPF:

SearchEdit – document with comments

Note graphical documentation is (for all practical purposes) not supported

RAA Reports

We’re planning on transforming several key VSAM and QSAM files into DB2 tables. In order to cost and scope this effort, we need to know:

What JCL will have to be changedHow many temporary (&&Temp and SortWork) files are affected (for QSAM)All areas of the COBOL programs that access the VSAM file that will have to be re-writtenFDsCopybooks and all other related WORKING STORAGE structures and variablesLinkage SectionPROCEDURE DIVISION paragraphsAll calls to sub-routines passing values

Manual, iterative, costly, error-prone and time-consuming ISPF:

SearchEdit – document with comments

Standard (in-the-box) RAA reports

During the development of this app, the users realized they forgot about a key piece of information that will be added to a DB2 table. We need to know what COBOL/PL1 programs and Java entities (Servlets, JSPs and EJBs) reference this table – as they will more than likely need process the information in the new table/column

Standard (in-the-box) RAA reports

Debug an error that occurred during application development unit-test – including but not limited to:Data exceptionOperation exceptionArithmetic exceptionDivide By ZeroJob Cancelled/Timeout (infinite loop)Module Not Found IMS Database Error or VSAM File Error Condition (invalid status code)DB2 / SQL Error Condition Incorrect Output (No ABEND Code – just incorrect results)

Manual, iterative, costly, error-prone and time-consuming ISPF – and can only answer the question: “What Happened”

Search Edit/Compile/Retest May require additional tools:

ABEND-AID

File-AID

All integrated tooling – and allows you to answer the critical questions: “Where, What, Why and How” did this problem happen:

RDzPD ToolsRAA

Page 72: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

75

TSO/ISPF versus RDz + COBOL Analytics Tools For Maintenance – 1 of 2TSO/ISPF versus RDz + COBOL Analytics Tools For Maintenance – 1 of 2

Use Case ScenariosUse Case Scenarios TSO/ISPFTSO/ISPF RDz + RAARDz + RAA

We need to ensure that the unit and integration test data beds have sufficient Code Coverage Analysis before moving the application into production

Virtually impossible to achieve with ISPF search techniques

Included in the product functionality

We need to change a file’s LRECL. What other jobs and COBOL programs will be affected? Manual, iterative, costly and time-consuming ISPF searches

Included in the product functionality

Should we keep investing in maintenance or redesign this application (how complex is it)? Subjective opinion Built-in code metrics reports

Is this application a good candidate for outsourcing? Subjective opinion Built-in code metrics reports

What is the risk that this application will have performance issues in the near future? Subjective opinion Built-in code metrics reports

Find COPYBOOKS that are no longer used Manual, iterative, costly and time-consuming ISPF searches

Included in the product functionality

Find dead (un-executed) code in any program in an application Very costly and difficult to achieve – error-prone Included in the product functionality

List the programs called by a particular program & List the programs that call a particular program Manual, iterative, costly and time-consuming ISPF searches

Included in the product functionality

List the programs that use a data element of a particular name Manual, iterative, costly and time-consuming ISPF searches

Included in the product functionality

We need to enlarge a DB2 table column, list the DB2 affected artifacts, COBOL copybooks, WORKING-STORAGE and LINKAGE SECTION fields, program literals, Files – including JCL DD card (LRECL/BLKSIZE) parameters (for the file itself and affected files (GDGs, &&TEMP and SORTWRK), print files, online screen macros, online system table and including: XML files, WSDL definitions, EJBs, Property Files, Java Servlets & JSP and any HTML pages that have to be changed

Manual, iterative, costly and time-consuming ISPF searches

Included in the product functionality

Bill and Julia are retiring next month (they’ve each worked here for 35+ years – and are mainly responsible for the maintenance and support of 7 mission critical systems. We have hired and trained new COBOL developers, but how can they grasp the:

Programs in an online transactionKey data flows throughout the system (both in batch and online transactions)Flow of control (both the batch and online transaction parts of these applications)Job sequence and the JCL run-stream/Proc datasetsInter and Intra-program dependencies and data relationshipsPrograms’ structure and relationships

Manual iterative, costly and time-consuming ISPF searches – more likely combined with green-bar listing/printout study

Included in the product functionality

We would like to statically analyze the program’s execution path (both forwards and backwards) in order to determine how a particular routine ended up being invoked (we’re looking for fall-through logic)

Very costly and difficult to achieve – error-prone Included in the product functionality

Find INSERTS into a VSAM file Manual, iterative, costly and time-consuming ISPF searches

Included in the product functionality

Lately a certain batch job is taking too long to finish. We need to find out data sets and tables are being accessed in order to determine if there are contention issues

Manual, iterative, costly and time-consuming ISPF searches

Included in the product functionality

We just bought a new SORT package and want to change all of the JCL in our shop to reference the new product Manual, iterative, costly and time-consuming ISPF searches

Included in the product functionality

A key algorithm (that’s hard-coded in several modules in a large application) for computing tax and revenue has changed, and we want to:

Create a reusable sub-routine for this algorithm

Find all of the modules that contain the codeReplace the existing hard-coded logic with a call to the sub-routineUnderstand what applications paths must be tested

Manual, iterative, costly and time-consuming ISPF searches – by expert shop developers

Included in the product functionality

Page 73: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

76

TSO/ISPF versus RDz + COBOL Analytics Tools For Maintenance – 2 of 2TSO/ISPF versus RDz + COBOL Analytics Tools For Maintenance – 2 of 2

Use Case ScenariosUse Case Scenarios TSO/ISPFTSO/ISPF RDz + RAARDz + RAA

We need to change a date parm for batch streams, from USA format to ISO. Identify all of the batch streams that will be affected.

Virtually impossible to achieve with ISPF search techniques

Available queries against the RAA catalog

The users have decided to change a screen. Provide an initial estimate (scoping) of the amount of effort required by listing all transactions and programs that will be impacted by this.

Manual, iterative, costly and time-consuming ISPF searches

Available queries against the RAA catalog

We are trying to reengineer a large COBOL application. In the initial data analysis phase we need to remove homonyms from the code. List all copybooks with the same name as other copybooks.

Manual, iterative, costly and time-consuming ISPF searches

Available queries against the RAA catalog

We are trying to recover disk space. List all QSAM and VSAM datasets that are not used (referenced) in either the Batch or Online application systems

Subjective opinion Available queries against the RAA catalog

A production proc needs to be changed. List all of the datasets referenced. Subjective opinion Built-in code metrics reports

We want to change the over-night batch cycle, but are worried about contention issues. List all of the common datasets between two applications (not Procs, not JCL entire applications)

Manual, iterative, costly and time-consuming ISPF searches

Included in the product functionality

Create a sorted list of all COBOL literals used in the PROCEDURE DIVISION. Very costly and difficult to achieve – error-prone Included in the product functionality

We plan to reengineer a QSAM file to DB2. List all of the CRUD operations against it, in order to begin the analysis and cost estimates.

Manual, iterative, costly and time-consuming ISPF searches

Included in the product functionality

We want to migrate a COBOL program from z/OS to AIX COBOL - What percentage of the code is platform-specific

Make a list of all unused Copybooks (see above, reclaiming disk space) Manual, iterative, costly and time-consuming ISPF searches

Included in the product functionality

Page 74: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

77

TSO/ISPF – versus RDz + COBOL Analytics Tools – For ABEND Resolution and TSO/ISPF – versus RDz + COBOL Analytics Tools – For ABEND Resolution and Production SupportProduction Support

Use Case ScenariosUse Case Scenarios TSO/ISPFTSO/ISPF RDz + RAARDz + RAA

Debug a data exception S0C7 – Essentially it’s necessary to perform a usage (intelligent-reference) analysis of what data has overlaid the contents of

Manual, iterative costly, error-prone and time-consuming ISPF searches – working backward in the source code, often across multiple jobs, attempting to follow the instruction set that wrote invalid (non-numeric) data into storage.

By using RAA the developer will be able to understand the context of the problem (What, Where, How, When and most-importantly Why) some of these problems happen

Debug a Data Set type of exception 001002013813 (file open error)B37 (out of space condition)

Manual, iterative costly, error-prone and time-consuming ISPF searches – working backward in the source code, often across multiple jobs, attempting to follow the instruction set that wrote invalid (non-numeric) data into storage.

Use RAA automatic system tracing functionality – which provides Data Flow analysis, and spans variables, modules, jobs data files/databases and transactions.

May also need Impact Analysis – also built-in to the product

Debug an Operation Exception0C10C4

Manual, iterative costly, error-prone and time-consuming ISPF searches – working backward in the source code, often across multiple jobs, attempting to follow the instruction set that wrote invalid (non-numeric) data into storage.

Use RAA automatic impact analysis functionality – which spans variables, modules, jobs data files/databases and transactions

Arithmetic Exception0C80CA0CB (Divide By Zero)

Manual, iterative costly, error-prone and time-consuming ISPF searches – working backward in the source code, often across multiple jobs, attempting to follow the instruction set that wrote invalid (non-numeric) data into storage.

Use RAA automatic impact analysis functionality – which spans variables, modules, jobs data files/databases and transactions

Job Cancelled / Timeout condition122/222/322

Manual, iterative costly, error-prone and time-consuming ISPF searches – working backward in the source code, often across multiple jobs, attempting to follow the instruction set that wrote invalid (non-numeric) data into storage.

Use RAA code understanding schematics to grasp the logic leading to (typically) an infinite loop.

Module Not Found806

Manual, iterative costly, error-prone and time-consuming ISPF searches – working backward in the source code, often across multiple jobs, attempting to follow the instruction set that wrote invalid (non-numeric) data into storage.

Use RAA automatic impact analysis functionality – which spans variables, modules, jobs data files/databases and transactions

IMS Database Error Condition Invalid or unexpected PCB status codes

Manual, iterative costly, error-prone and time-consuming ISPF searches – working backward in the source code, often across multiple jobs, attempting to follow the instruction set that wrote invalid (non-numeric) data into storage.

Use RAA reports to verify the logic sequencing, that caused the invalid DL/I Return Code. Or, if some other DL/I error use Impact Analysis tracing to find out the cause of the problem.

DB2 / SQL Error ConditionInvalid or unexpected SQLCodes (Referential integrity problem, -811, Duplicate Primary key, etc.)

Manual, iterative costly, error-prone and time-consuming ISPF searches – working backward in the source code, often across multiple jobs, attempting to follow the instruction set that wrote invalid (non-numeric) data into storage.

Use RAA reports to verify the logic sequencing, that caused an R.I. problem during INSERT. Or, if some other SQL error use Impact Analysis tracing to find out the cause of the problem.

VSAM File Error Condition Manual, iterative costly, error-prone and time-consuming ISPF searches – working backward in the source code, often across multiple jobs, attempting to follow the instruction set that wrote invalid (non-numeric) data into storage.

Depending on the type of error, use either the file/program dependency reports, or impact analysis to track backwards from the error to the source

Incorrect OutputNo ABEND Condition

Manual, iterative costly, error-prone and time-consuming ISPF searches – working backward in the source code, often across multiple jobs, attempting to follow the instruction set that wrote invalid (non-numeric) data into storage.

Use RAA automatic impact analysis functionality, on incorrect values to reverse trace variables, modules, jobs data files/databases etc. in the transaction or unit of work

Page 75: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

78

TSO/ISPF – versus RDz + COBOL Analytics Tools – For SOATSO/ISPF – versus RDz + COBOL Analytics Tools – For SOA

FunctionalityFunctionality TSO/ISPFTSO/ISPF RDz + RAARDz + RAA

List most frequently called (hub) programs (identify as good candidate for SOA) Manual, iterative, costly, error-prone and time-consuming ISPF searches

RAA standard reports and functionality included in the tools

List programs that are doing persistence or presentation functionality Manual iterative, costly and time-consuming ISPF searches

Should we keep investing in maintenance or redesign this application (how complex is it)? Manual iterative, costly and time-consuming ISPF searches

Identifying data validation assumptions from screen interactions, and ensuring that the data validation is done somewhere, potentially as part of the contract with the calling service

Manual iterative, costly and time-consuming ISPF searches

Separating the business logic that you want to reuse from what is not relevant. Manual iterative, costly and time-consuming ISPF searches

Which variables in the programs we want to SOA-enable represent business entities? Manual iterative, costly and time-consuming ISPF searches

"

Which statements in the program describe business rules Manual iterative, costly and time-consuming ISPF searches

"

We need to change a web service. Find all programs, applications and Java Classes that use a particular WSDL Manual iterative, costly and time-consuming ISPF – and probably PC-file searches

Custom Queries from the RAA Catalog

Removing screen calls down in a call chain and replacing this with error return codes. Manual iterative, costly and time-consuming ISPF searches

Page 76: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

79

TSO/ISPF – versus RDz + COBOL Analytics Tools – For TestingTSO/ISPF – versus RDz + COBOL Analytics Tools – For Testing

FunctionalityFunctionality TSO/ISPFTSO/ISPF RDz + RAARDz + RAA

I've changed a particular program, sub-routine, field or copybook – identify all the places it is used – across the enterprise - so I can build quality test cases

Manual, iterative, costly, error-prone and time-consuming ISPF searches

RAA standard reports and functionality included in the tools + custom SQL queries against meta-data stored in the catalog

Identify the screen and data resources that are needed to do testing: files, databases, etc. Manual iterative, costly and time-consuming ISPF searches

We are making a change that impacts a very large # of jobs across the enterprise, identify all of the input files (and not temporary inter-job files/output files) by using the job-step sequence in the JCL procs

Manual iterative, costly and time-consuming ISPF searches

"

Validate the code-coverage of our existing test-plan – down to the field level of affected variables due to a modification of a file copybook

Manual iterative, costly and time-consuming ISPF searches

Separating the business logic that you want to reuse from what is not relevant. Manual iterative, costly and time-consuming ISPF searches

Removing screen calls down in a call chain and replacing this with error return codes. Manual iterative, costly and time-consuming ISPF searches

Page 77: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

80

TSO/ISPF – versus RDz + COBOL Analytics Tools – For Data Analysis and TSO/ISPF – versus RDz + COBOL Analytics Tools – For Data Analysis and Database WorkDatabase Work

FunctionalityFunctionality TSO/ISPFTSO/ISPF RDz + RAARDz + RAA

Find inefficient SQL Queries Manual, iterative costly, error-prone and time-consuming ISPF searches

RDz/Explain Tool – and SQL Best Practices queries.

Added an index – Packages/Plans to re-bind. List programs to re-analyze Manual, iterative costly, error-prone and time-consuming ISPF searches

RAA Custom reports

We need to further normalize a table design. What programs and DCLGENs are affected Manual, iterative costly, error-prone and time-consuming ISPF searches

RAA Custom reports and meta-dictionary lookups

What columns are good candidates for indexes (based on source reference/usage model) Manual, iterative costly, error-prone and time-consuming ISPF searches “

We would like to offer 24/7 batch update support. What table and index combinations are candidates for locking and contention issues?

Manual, iterative costly, error-prone and time-consuming ISPF searches “

What tables are accessed online? Batch? Both? Also list the report by Job Stream and by Transaction Manual, iterative costly, error-prone and time-consuming ISPF searches “

What tables are frequently (or almost always) used together? We may want to de-normalize the design. Manual, iterative costly, error-prone and time-consuming ISPF searches “

Lately a certain batch job is taking too long to finish. What data resources – including QSAM, VSAM files and DB2 tables does it access?

Manual, iterative costly, error-prone and time-consuming ISPF searches “

We would like to partition our largest and most heavily used tables to support CPU and I/O access parallelism. What are the best candidates? And what’s a good clustering key for partitioning?

Manual, iterative costly, error-prone and time-consuming ISPF searches “

We are designing new tables, and need to understand the application data access model (Select …vs… Update, Delete, Insert) in order to find the best performance-oriented and clustering index combinations

Manual, iterative costly, error-prone and time-consuming ISPF searches “

We have just upgraded our DASD and need to re-visit the blocking factor (BLKSIZE) for the QSAM files on a given LPAR. Manual, iterative costly, error-prone and time-consuming ISPF searches

RAA Standard reports

We would like to build a CRUD matrix against our DB2 tables, Views and VSAM files Manual, iterative costly, error-prone and time-consuming ISPF searches

RAA Custom reports and meta-dictionary lookups

Our current Data Center manager believes heavily in Stored Procedures. What are the best candidates for DB2 Stored Procedures among our existing static plans?

Manual, iterative costly, error-prone and time-consuming ISPF searches “

List any SQL statements that join “large” tables without indexes on their foreign keys Manual, iterative costly, error-prone and time-consuming ISPF searches “

Need to rename or modify the datatype of a column in a table – Show all impacts:IndexesViewsApplication program copybooks – and all associated WORKING-STORAGE fields that are associated with the changed copybook field(s)SQL StatementsJava/J2EE web pages

Manual, iterative costly, error-prone and time-consuming ISPF searches

RAA Standard product Impact analysis tracing process

We would like to explore the use in our shop of DB2 “outer joins”, as they are potential performance problems – where can we get a list of them?

Manual, iterative costly, error-prone and time-consuming ISPF searches

RAA Custom reports and meta-dictionary lookups

Page 78: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

81

Note – the above static system documentation Note – the above static system documentation would be used to complement standard SMF would be used to complement standard SMF data and Tivoli/OMEGAMON output analysisdata and Tivoli/OMEGAMON output analysis

Note – the above static system documentation Note – the above static system documentation would be used to complement standard SMF would be used to complement standard SMF data and Tivoli/OMEGAMON output analysisdata and Tivoli/OMEGAMON output analysis

TSO/ISPF – versus RDz + COBOL Analytics Tools, For Capacity TSO/ISPF – versus RDz + COBOL Analytics Tools, For Capacity Planning/System TuningPlanning/System Tuning

FunctionalityFunctionality TSO/ISPFTSO/ISPF RDz + RAARDz + RAA

DB2 sort pool sizing Limited to traditional manual and ISPF multi-search methods

Custom catalog queries on SQL statements that incur DB2 sort

DB2 Buffer Pool Allocation Limited to traditional manual and ISPF multi-search methods

Standard reports with SQL output

Do I have enough resource (CPU, I/O, Storage,..) to do the job today? Limited to traditional manual and ISPF multi-search methods

RAA cumulative reports of batch and online system resources

How do I size a new application? RAA standard reports on resources

How do I establish my growth? Custom catalog reports on JCL dataset extents over time captured in the database

If I add these 4 new batch jobs, what will the affect be on:CPU UtilizationI/O Storage

RAA standard reports on new application resources:

Program modules + online screens

I/O statements & SQL activity

How can I more accurately model my current workload? “

The business side is predicting a 15% up-tick in growth and numbers of concurrent users. What effect will the associated increase in CICS/DB2 traffic be on our network, production and testing sub-systems?

RAA cumulative reports in the meta-model on system resources

What is the combined VSAM file allocation currently required by a given application? RAA standard reports

Page 79: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

82

TSO/ISPF – versus RDz + COBOL Analytics Tools – For Project Management and TSO/ISPF – versus RDz + COBOL Analytics Tools – For Project Management and Outsourcing GovernanceOutsourcing Governance

FunctionalityFunctionality TSO/ISPFTSO/ISPF RDz + RAARDz + RAA

Lower the cost and length of the bidding process Discuss with application Subject Matter Experts

Manual iterative costly and time-consuming ISPF searches

Read through existing documentation

RAA Standard reports and metrics – showing application size, scale, dependencies, data flow, and complexity metrics

Improve year-on-year ROI for both supplier and client Limited to traditional manual and verbal methods RAA Standard reports and metrics

Bring new consultants up to speed with client code far faster Y – but limited to PF-Keys RAA Standard reports and metrics – and code visualization

Generate core systems documentation in minutes, providing factual backup to strategic decisions and aiding application understanding for future projects

No generation capabilities, only expensive and time-consuming manual methods

RAA Standard reports and metrics

Improve client audit compliance through management information and status reporting Limited to traditional manual and verbal methods RAA coding best practices reports

Support consistent delivery of high-quality projects through fully automated, easily repeated assessments across the entire core system landscape

Limited to traditional manual and verbal methods RAA coding best practices reports

Reduce dependency on a client's time and expertise by automating application intelligence N - Limited to traditional manual and verbal methods RAA Standard reports and code visualization

Lower the cost and length of the bidding process N - Limited to traditional manual and verbal methods RAA Standard reports and metrics

Page 80: ® IBM Software Group © 2008 IBM Corporation Using RDz for z/OS Traditional Maintenance and Support Jonathan Sayles – jsayles@us.ibm.comjsayles@us.ibm.com.

IBM Software Group | Rational software

83

TSO/ISPF – versus RDz + COBOL Analytics Tools – Enlarge a DB2 Column (Just TSO/ISPF – versus RDz + COBOL Analytics Tools – Enlarge a DB2 Column (Just Application Work – not DBA portion)Application Work – not DBA portion)

TSO/ISPFTSO/ISPF RAARAA

1. Use a 3rd Party tool to determine what DB2 PLANS reference the table. Or using SPUFI/QMF, write and execute a number of DB2/DBA-level System Catalog queries – referenced catalog tables include (but are not limited to): SYSPLANS, SYSPLANDEP, SYSPACKAGES, SYSDBRMS, SYSTMT & Stored Procedure tables (if they are used)

2. Save the DB2/SQL Statement results to a TSO file – or printout. On an average large-scale z/OS production system, this could be well over 100 entries.

3. For each SQL Statement (for each of the (average) over 100 results listed in step 2)

Open and browse in the COBOL source

Find the statement

Find the host variable for the column to be enlarged

Note the DCLGEN record name (will have to be re-created)

(The hard part) Do iterative, recursive, discrete and explicit TSO text searches, to list all COBOL variables that this field interacts with (essentially, all COBOL "data manipulation" and "data comparison" statements) that will need to be modified. Here is a partial list of explicit keywords, each if found factors into the recursive search:

MOVE MOVE – and all variations of MOVE MOVE such as MOVE CORRESPONDING MOVE CORRESPONDING – which means you now must trace GROUP moves, not just the individual field itself (if a numeric field) ADD, SUBTRACT, DIVIDE, MULTIPLY, COMPUTE, SET IF, EVALUATE, INSPECT (WHEN clause) Literals that will need to be changed – esp. if part of comparisons STRING, UNSTRING STRING, UNSTRING and Reference Modification statements CALL USING/ENTRY USINGCALL USING/ENTRY USING WRITE, READWRITE, READ A host of LE calls and COBOL intrinsic functions PERFORM UNTILPERFORM UNTIL loops with (if a variable is part of PERFORM USING)

… moreDisregard all hits (false-positives) in * comment lines

Repeat the above for each field affected (all fields related to any changed field become part of a linked list or, "association chainassociation chain").

Be careful not miss any fields – anywhere in the association chain – this gets very difficult, when fields are externalized – see steps, 4 9 below)

List all of the Records affected in the FILE SECTION, or DL/I segments, or other DB2 DCLGENs

Look for QSAM – VSAM file - DL/I database and DB2 table write operationsCreate a list or printout of all affected fields and records

4. For all File Records found in step three affected Look for QSAM – VSAM file - DL/I database and DB2 table write operations

If DB2 Table SQL statement – return to Step 1

If any records are QSAM/VSAM files – including SORT/MERGE, &&TEMP files, SYSOUT, potentially log files:

Find all JCL associated with the files The LRECL and BLKSIZE Parameters – that will need modification. SPACE parameter might need to be recalculated and extents If they are VSAM files or IMS databases built on VSAM files:

– you will need to modify the IDCAMS utility JCL used to DELETE/DEFINE the datasets If there are DL/I databases, you will have to change the DBD and modify the DL/I database – deleting and reloading (let's hope not)

5. If the field is passed from one program to another in CALL … USING/ENTRY USING

Repeat steps 3,4 and this step 5 – for all affected programs

6. If the field – or any associated field anywhere in the chain participates in printed reports:

Recalculate print columns to line up the fields according to the required report output

7. If the field – or any associated field anywhere in the chain is used in a CICS or IMS TM application

Recreate the screen UI – modify the BMS or MFS macros

Modify all COBOL variables affected by changes to the screen I/O

For CICS, you will have to factor in changes to the TS QUEUEs and Transaction Work Areas

For older IMS conversational programs, you will have to factor in changes for the IMS SPA definitions in the SYSGEN

8. (And here's the killer)(And here's the killer) For every file that any field in the chain is written to, you will need to trace each file through every JCL job stream and:

Repeat steps 3, 4, 5, 6, 7 and 8 for every program/file/field combination - and every new association chain producedRepeat steps 3, 4, 5, 6, 7 and 8 for every program/file/field combination - and every new association chain produced

Run RAA Standard impact analysis reports.