Mainframes: Analyzing IBM legacy systems

To maintain, migrate or rewrite existing legacy system one needs to understand their structure and functionality. Gathering in-depth knowledge on existing complex, potentially undocumented code takes time without proper tools. This article presents two tools, RIPPLE-TRAC and Visustin, that can be helpful in providing in-depth knowledge of existing legacy code.

Have you ever inherited a large mess of code? There's no documentation and the people who built the system left the company 10 years ago? Not a problem. You just need proper tools to understand the system and do your job. To understand the structure and functionality of existing code you need diagramming and analysis tools that help you dig all relevant information and business rules from the system.

RIPPLE-TRAC™ and Visustin are tools to analyze legacy code. Be the code in COBOL, Assembler, PL/I, JCL, SQL or XML, these tools help in analyzing old IBM mainframe systems.

Why analyze legacy systems?

Legacy code analysis helps answering the following needs:

  • Document the undocumented. A large number of systems are inadequately documented. There are no comments, diagrams or reports. If there are, they are outdated and incorrect. To understand what the program really does, in-depth analysis is required to document its operation. Manually documenting everything is a large operation. Tools are required to help.
  • Maintain old systems. One shouldn't service a legacy application before really understanding what it does. A simple change can easily lead to new errors and devastating results. New errors can emerge somewhere else in the program. Analysis tools help locating dependencies effects before they result in nasty bugs.
  • Reuse or migrate existing code. Analyze the code to see if parts of it can be modernized or reused as a part of a newer system.
  • Understand business rules. You should document the actual business logic as opposed to the business rules believed to be in place. This way you know what is running in production instead of relying on what one thinks is running in production. Easier said than done, isn't it? This really is where you benefit from using good tools.
  • Manage the ripple effect. Seemingly small software modifications can ripple throughout a system that can cause major unintended consequences and impacts other parts of the system. This is known as the ripple effect. To manage the ripple effect in complex systems one can use specialized tools.

RIPPLE-TRAC™

RIPPLE_TRACPopup link is a technology for assessing, managing and modernizing enterprise systems hosted on the IBM mainframe. It allows of the integration of legacy systems with current interest such as SOA and BPM. RIPPLE-TRAC promises to simplify the maintenance process, increase reliability, and improve the quality and satisfaction of supporting legacy systems. It can also bind, feed, or integrate into language modernization projects and data warehouse consolidation projects.

RIPPLE-TRAC runs on any IBM 64-bit operating system. It is z/OS and backward compatible to all earlier predecessors, i.e. 360 systems. It supports COBOL, Assembler, PL/1 as well as JCL, SQL, XML and any other 80-byte PDS files including sorts, sort offsets, bind parameters, and BMC utilities. RIPPLE-TRAC is a product of Logic OnLine, Inc. We at Aivosto are not involved in its development or marketing.

Business logic

With RIPPLE-TRAC you can highlight and identify business rules implemented in the code. Code can be extracted or flowcharted. Complexity of the code can be determined and evaluated. You can assign metadata to components and present Data Modeler with RIPPLE-TRAC table result set for the modeling tool and production DDL updates. You can also isolate business rules established in predicate or search conditions.

RIPPLE-TRAC examples

Let's see a few examples of what RIPPLE-TRAC can do for COBOL code.

RIPPLE-TRAC sample session
Source code multi level explosion by module

In addition to the above examples, RIPPLE-TRAC can do "whereused" reports by copy/include, by project, by module, by field and by table.

For SOA (Service Oriented Architect) you can find and list SOA method names. In addition, you can list where the method is used.

For DB2 performance assessment and tuning, you can search up to 500 predicate string arguments simultaneously. You can track any instruction via an external argument table. You can track where tables and field names are being used and retrieve metadata such as table names and description. In addition, you can examine DB physical layer, indexes, buffer pools and data definitions.


Visustin, a flow chart generator

Visustin is a Windows tool that creates flow charts from raw source code. You load your code in the tool and press a button to view it in flow chart format. The flow charts can be printed or saved as program documentation. There is even a flow chart editor for manual flowcharting and an option for automated batch processing.

Visustin supports a large number of mainframe languages such as COBOL, JCL, Fortran, PL/I and Rexx. It is not limited to legacy languages, though. The support covers tens of languages from widely used languages such as C/C++ or Java to specialized ones such as SAS or Matlab. As opposed to RIPPLE-TRAC, Visustin is our own product.

With Visustin you document implemented business rules as a flow chart. You can also edit the rules graphically in flow chart mode. Flow charts are readily understandable by people who are not fluent in the target language. This means that business logic can be examined without first gaining significant experience with the environment.

Flow charts allow for visual comparison of two functions. Existing logic can be verified and new logic can be compared to an older version. In a migration project one can verify that the old and new version of an algorithm are similar, even when they are written in different languages.

Visustin is useful even in a mixed language environment where programmers need to understand several languages, even though they may not be able to write code in all of them.

Visustin samples

Let's have a look at some COBOL flow chart samples.

Flow chart 1
Flow chart 2

Sample 1 is the same code snippet as in "RIPPLE-TRAC sample session" above. You can see how Visustin and RIPPLE-TRAC complement each other in documenting the code.

©Aivosto Oy -