+ All Categories
Home > Documents > Jon Sayles - Using RAAi together with RDz for Traditional z ...

Jon Sayles - Using RAAi together with RDz for Traditional z ...

Date post: 17-Jan-2015
Category:
Upload: tess98
View: 2,231 times
Download: 1 times
Share this document with a friend
Description:
 
29
® IBM Software Group © 2009 IBM Corporation RAAi and Maintaining z/OS COBOL RAAi and Maintaining z/OS COBOL Applications Applications z/OS Traditional Development – Upgraded to the 21 Upgraded to the 21 st st Century Century
Transcript
Page 1: Jon Sayles - Using RAAi together with RDz for Traditional z ...

®

IBM Software Group

© 2009 IBM Corporation

RAAi and Maintaining z/OS COBOL ApplicationsRAAi and Maintaining z/OS COBOL Applications

z/OS Traditional Development – Upgraded to the 21Upgraded to the 21stst Century Century

Page 2: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

2

Terms & Definitions- What is Software Maintenance?

Software maintenance is that Software maintenance is that collection of activities that relates to collection of activities that relates to correcting, adapting, or perfecting correcting, adapting, or perfecting software in production usesoftware in production use.

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

Once software is "in production" it rapidly evolves into "Legacy"

So, Legacy Applications are: "Applications that workApplications that work"

Page 3: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

3

Maintenance Project ProblemsMaintenance Project Problems1. Programmer Effectiveness1. Programmer Effectiveness

Almost all maintenance 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

2. Software Quality2. Software 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.

3. Machine requirements3. Machine requirements Processing costs (development MIPS costs) and LPAR availability

Page 4: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

4

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 5: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

5

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/RAAi

Work much more productively

Lower defect rate

Save MIPS

Page 6: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

6

Studying Listings What the bosses think it's like

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

What it's really like

Page 7: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

7

Optimizing MaintenanceOptimizing Maintenance Research, over the last 20 or so years in the field of z/OS

maintenance has proven the following: The needs of maintenance – for process and tools differ from development

There are specific best practices, tools and tool features that improve maintenance productivity and effectiveness. These improvements include (but are not limited to):

General tools and features:

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

2. Program navigation

3. Functionality that keeps up with developer's thought processes

Specific maintenance tools/features assistance

1. Finding semantic dependencies – in key elements within the application

2. Rendering code in a semantically meaningful way

3. Enabling optimized analysis – throughout the lifecycle

RD

RD

zzR

AR

AAA

Page 8: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

8

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 9: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

9

Rational Asset Analyzer – Application UnderstandingQuickly understand code with little or no documentation, and

relationships across the enterprise Group artifacts into user-defined groups

called Applications to limit scope to area of interest

Use various types of diagrams for understanding how the application “hangs together”

Use annotations to capture knowledge from SMEs e.g. Business function, description, etc.

Create user-defined relationships for situations where relationships cannot be determined through static analysis

Perform enterprise-level keyword searches

Page 10: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

10

RAAi – RAA/RDz integrationRAAi – RAA/RDz integration Installed on top of RDz

RAA functionality in Eclipse/RDz based interface

Seamless transition from the RDz user interface to remote RAA / WSAA for enterprise information access

Local/remote functions are independent

Local: RDz + RAAI + RAA Remote: RDz + RAAI + remote connection to:

RAA WSAA

Page 11: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

11

RAAi – RAA/RDz Functionality SummaryRAAi – RAA/RDz Functionality Summary

Scanning of files in local workspace projects into a local RAA repository.

Search for Programs and Data Elements in local and remote RAA repositories.

View local and remote programs– A tree view showing the components that make up the program broken A tree view showing the components that make up the program broken

down by component type.down by component type.

– A diagram showing the control flow of the program.A diagram showing the control flow of the program.

– A diagram showing the structure of the diagram.A diagram showing the structure of the diagram.

– A table showing information about all data elements that are in a A table showing information about all data elements that are in a program.program.

– View Dead code in Cobol programView Dead code in Cobol program

Perform impact analysis on files, programs, and data elements, and view their results.

Integration between RAA and WSAA functions and source in LPEX RDz editor window

Page 12: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

12

Demo RAAi with RDz

Integration

Views

Functionality

Reports

Access to RAA

Batch Jobs

Page 13: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

13

Net

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

Page 14: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

14

Or you can use RDz/RAAiOr you can use RDz/RAAi

Which – do you reckon:

Makes you more productive?

Nets you better quality code (fewer software defects)?

Saves MIPS, Time and Money?

Which – do you reckon:

Makes you more productive?

Nets you better quality code (fewer software defects)?

Saves MIPS, Time and Money?

Page 15: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

15

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 16: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

16

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 17: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

17

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 18: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

18

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 19: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

19

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 20: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

20

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 21: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

21

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 22: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

22

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 23: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

23

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 24: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

24

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 25: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

25

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 26: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

26

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 27: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

27

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 28: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

28

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.

Page 29: Jon Sayles - Using RAAi together with RDz for Traditional z ...

IBM Software Group | Rational software

29

Collateral list Rational Asset Analyzer

http://www-01.ibm.com/software/awdtools/raa/

http://www.ibm.com/developerworks/rational/products/raa/

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


Recommended