FEATURES

Improve your productivity

A complete solution for your code

Developed at Vantis Laboratory, CleanCode® is a tool that analyzes and identifies, in programs written in COBOL Language, all Dead or Unreachable Code of Business Applications of companies in the area of Banking, Insurance, Transport and Industry, which run on z/OS and iSeries (AS/400) platforms.


Environment

All CleanCode features are run out of the box from z/OS and iSeries. It will consumes no extra resources on that systems. CleanCode work is divided in the following steps:

  • Pre-compile
  • Analyze the source
  • Clean the Code based on pre-defined Recommendations list of "unreachable and dead code"
  • On z/OS as a batch job step: You can insert CleanCode as a job step on your standard COBOL compilation procedures and and doing so, its use will be completely transparent to your development team. This CleanCode step, will be responsible to read the source code, copybooks, sql DCLGENs, send-it to a remote LUW server that will make all the work and return to a cleaned code.
  • On z/OS or iSeries as a LUW app: You can open a rich graphical application on LUW environment to import source code and required files (copybooks, dclgens, etc..), analyze/clean the code, and than export it back to z/OS or AS400 system.

Remove Mode

Clean: where a new source code will be generated on base of original source code without the unused and unreachable code

Comment: where a new source code will be generated on base of original source code with unused and unreachable code lines as comments with an "*" on column 7, and a fixed string "CLEANC" on columns 1 to 6 to identify that this line has been commented by CleanCode.

(*) In both ways, all CleanCode actions are on program source code. It will never takes any action on external code resulted from a COPY or EXEC SQL INCLUDE statements.

Rules

CleanCode works based on rules, and the following rules can be enabled or disabled on a project base:

  • Remove unused independent Items: Data-items defined as independent level 77 that are not referenced in any way by the compiled program
  • Remove unused conditional items: Data items defined as 88 level that are not referenced in any way by the compiled program
  • Remove unused COPYBOOKS/SQL INCLUDES: Copy statements and SQL include statements when none of it's data-items are referenced in any way by the compiler program
  • Remove unused REDEFINES data items: Data-items and it's subordinated data-items that are unused in any way by the compiled program.
  • Dead and Unreachable Procedure statements: during analysis phase, CleanCode gets all possible paths of the compiled program, and remove any statement that is not present on any path of program flow. As an example of unreachable code you have statements after  a GOTO statement, and as DEAD CODE you have sections/paragraphs that are unreferenced in any way by the compiled program or only referenced by a unreachable code or another dead code.
  • Empty Sections/Paragraphs: Removes any Section/paragraphs that has no active statement.
  • Remove unused conditional items: Data items defined as 88 level that are not referenced in any way by the compiled program
  • Lost Period Separators: Remove any period separator that is alone in a Section/Paragraph or that is immediately followed by another period separator.

Compatibility

CleanCode is full compatible with the following:

  • z/OS Cobol:
    All versions up to "Enterprise Cobol for z/OS 6.3"
  • z/OS DB2:
    All versions up to "DB2 12 for z/OS"
  • z/OS CICS:
    All versions up to "CICS Transaction Server for z/OS 5.6"
  • iSeries ILE Cobol/DB2/CICS:
    All versions up to "IBM i 7.4"

EXPORT NEW SOURCES

CleanCode® gives you the hability to generate a new source source and send it directly to your system, using or not a new dataset.

PERFORMANCE

A set of Pre-defined Rules was developed to improve the performance of programs at runtime, which brings a significant reduction in these consumptions.


Performance recommendations

A report is generated to show you statements that are unnecessarily consuming MIPS and that can be fixed in a very simple way.
Each recommendation has a Gain Factor that shows the potential gain each time the Cobol statement is executed and a Risk level that gives you an idea about the risk involving this changes.
The risk levels are classified as:


  • Very Low

    You need only a small review on change, because it does not take a risk on this program or on any other program. Example: change a PICTURE or USAGE of a numeric 77 level item.

  • Low

    You need only a small review on change, because it does not take a risk on this program or on any other program. Example: same as above on elementary items where none of its group item is referenced or used

  • Medium

    You may need to take a look at recommendations and identify the most appropriated to your business, but the change. Example: Change on a PICTURE type from X to 9 or 9 to X.

  • High and Very High

    None of above is for items defined inside a COPYBOOK. High is for very low and low when the object of change is inside a COPYBOOK. And High is for Medium when its change object is inside a COPYBOOK

Migration Issues Report

A report is generated to show real issues on migration to latest versions on z/OS. For example: a program that has a PIC 9(n) USAGE DISPLAY as an elementary item in a item group that is initialized with spaces, will have a different behavior at runtime (no error, no abend), when compiled with OPTIMIZE(2) option on z/OS Enterprise Cobol 6.3. CleanCode will alert you of this kind of situation.