Page tree
Skip to end of metadata
Go to start of metadata

Although this extension is officially supported by CAST, please note that it has been developed within the technical constraints of the CAST Universal Analyzer technology and to some extent adapted to meet specific customer needs. Therefore the extension may not address all of the coding techniques and patterns that exist for the target technology and may not produce the same level of analysis and precision regarding e.g. quality measurement and/or function point counts that are typically produced by other CAST AIP analyzers.

What's new?

RPG 2.0

Note that:

  • RPG 2.0.x should be installed ONLY on new CAST AIP schemas or schemas on which RPG 1.x extensions have never been installed. There is therefore no upgrade path between RPG 1.x and RPG 2.x.
  • when re-analyzing the same source code with RPG 2.x, results will differ to those produced by the RPG 1.x extensions - the results are not comparable.

RPG 2.0 is a major functional and technical improvement of the RPG extension. Many changes have been introduced in order to obtain an accurate Function Point count and better Quality/Sizing results.Below are the main changes that have been integrated into this release of the extension.

  • RPG 2.0 supports COPY Members that were previously created as RPG Programs. A specific type called "RPG400 Copy Member" is used for this object. A COPY Member:

    • Is included by an RPG Program
    • can contain all object types identical to those contained in an RPG400 Program except the "Main" object type.
    • Can contain a Procedure Prototype or a Procedure
  • The languages have been restructured to match RPG terminology. The new structure has been implemented to improve transaction resolution and obtain accurate FP count:
    • DDS400 now contains the types "DB400 Physical File" and "DB400 Logical File", the corresponding properties and the sub-object "DB400 RecordStructure"
    • DB400 is now used to represent the SQL Tables and Views when the corresponding database (DB2 UDB for ISeries SQL) is not delivered. The tables and views are created based on the "Create table" / "Create view" statement provided in *.SQL files and also with the Physical and Logical File delivered in *.PF and *.LF files. Note that the recommended process is to deliver and analyze the real DB2 UDB databases.
  • In RPG 2.0, embedded SQL is now supported, primarily to obtain Usiud links from RPG400 and CL400 objects to SQL Tables and SQL Views. The resolution of these link types requires that the database (DB2 UDB) is delivered and analyzed, however, the DB400 extractor can be used to simulate this database.
    • The following source code is considered as embedded SQL:
      • For RPG400: C/EXEC SQL … C/END-EXEC
      • For RPG Free Format: EXEC SQL … ;
      • For CL: RUNSQL(…)
    • Dynamic execution is not supported.
  • RPG 2.0 provides a first level of support for Free Format
  • RPG 2.0 does not support CTDATA structure 
  • RPG 2.0 supports CL400 Subroutines. Previously only CL400 Programs were supported.  RPG 2.0 identifies CL400 Subroutines defined inside CL400 Programs. 
  • RPG 2.0 provides a better count of comment lines for RPG And CL objects. 
  • RPG 2.0 has specific pre-processors for each language: the preprocessor per language only considers the files with the expected extensions. This change will significantly improve the performance of the automatic preprocessing step (see RPG 2.0 - Analysis Configuration).

RPG 2.0.1

RPG 2.0.2

  • In this version, we provide a more accurate counting of the number of code lines: blank lines are now correctly identified and counted. They are included in the number of comment lines.
  • Bug fixing - see RPG 2.0 - Bug Fix List

RPG 2.0.3

RPG 2.0.4

Log improvements for the RPG Preprocessor

  • Improvements have been introduced with regard to the log files that are produced during an analysis of RPG code with the extension. Specifically, the logs produced by the RPG Preprocessor have been improved in this release of the extension. You can find out more information in RPG 2.0 - Analysis Configuration.

Quality Rule changes

The following changes have been introduced in this release:

  • Avoid Procedures with more than X lines of code (RPG400) - 1008122: The default parameter used to determine the number of lines of code has been changed to 500, i.e. violations will only occur where the line of code value is above 500.
  • Avoid Procedures with more than X lines of code (RPG400) - 1008120: The default parameter used to determine the number of lines of code has been changed to 500, i.e. violations will only occur where the line of code value is above 500.
  • Avoid Programs with more than X lines of code (RPG400) - 1008118: The default parameter used to determine the number of lines of code has been changed to 2000, i.e. violations will only occur where the line of code value is above 2000.
  • Specify Error Subroutine for File Exception Handling (RPG400) - 1008074: The Quality Rule has been updated as follows and violations should now occur in the following situations:
    • if the file has file specification (INFSR)
      • and it does not have an include link to a copybook which has a routine named '*pssr'
      • and if it itself does not have routine named '*pssr'
  • Avoid Logical File without associated Physical File (DDS400) - 1011010: The Quality Rule has been updated to consider the DB400 record and table if the corresponding Physical File file is not present in the analysis. Additional links are also created in this scenario:

    • DDS400 RecordStructureLF ==== referLink ===> DB400 Table

    • DDS400 RecordStructureLF ==== callLink ===> DB400 Record

Note that after installing this release of the extension and the generation of a post upgrade snapshot on the same source code, results may differ for the above Quality Rules: i.e. more or less violations may be reported depending on the changes introduced.

Bug fixing

Function Point, Quality and Sizing support

This extension provides the following support:

  • Function Points (transactions): a green tick indicates that OMG Function Point counting and Transaction Risk Index are supported
  • Quality and Sizing: a green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist
Function Points
(transactions)
Quality and Sizing
(tick)(tick)

CAST AIP compatibility

CAST recommends that you always install the latest release of an extension.

AIP 8.0.xAIP 8.1.xAIP 8.2.x
(tick)(tick)(tick)

Supported DBMS servers

DBMSSupported
CSS2(tick)
Oracle(error)
Microsoft SQL Server(error)

Supported Versions of RPG

This version of the extension provides partial support for the following RPG versions:

  • RPG III
  • RPG IV

Partial support is also provided for the code generated for these versions by:

  • ADELIA
  • SYNON

Please note that this extension supports RPG in the following formats:

  • AS400
  • ILE format
  • Free-Format (note that support is "partial")

RPG MetaModel

Below you can find a description of the RPG MetaModel, please click the image to download a full scale PDF version:

Objects List 

The following objects are displayed in CAST Enlighten:

MENU 

 IconObject Name
1
 MENU Bar
2
 MENU Item
3
MENU Project

CL400 

 IconObject Name
1
CL400 Program
2
CL400 Project
3
CL400 Subroutine

DB400

 IconObject Name
1
DB400 Project
2
DB400 Physical File
3
DB400 Logical File
4
DB400 Table
5
DB400 view
6
DB400 index

DD400

 IconObject Name
1
 DDS400 Project
2
DDS400 Section
3
DDS400 PRTF File
4
DDS400 DSPF File
5
DDS400 Physical File
6
DDS400 Logical File
7
DDS400 RecordstructureLF
8
DDS400 RecordstructurePF
9
DDS400 Joinstructure

RPG 300

 IconObject Name
1
RPG/300 Project
2
RPG/300 Program
3
RPG/300 MainSubroutine
4
RPG/300 Subroutine
5
RPG/300 File Printer
6
RPG/300 File Disk
7
RPG/300 File Workstn
8
RPG/300 File Special
9
RPG/300 File Seq
10
RPG/300 Rule
11
RPG/300 Copy Member
12
RPG/300 File Disk Record
13
RPG/300 SQL Statement/Structure
14
RPG/300 Data Structure
15
RPG/300 Procedure
16
RPG/300 Local Record Structure

RPG 400

 IconObject Name
1
RPG/400 Project
2
RPG/400 Program
3
RPG/400 MainSubroutine
4
RPG/400 Subroutine
5
RPG/400 Subroutine FreeFormat
6
RPG/400 File Printer
7
RPG/400 File Disk
8
RPG/400 File Workstn
9
RPG/400 File Special
10
RPG/400 File Seq
11
RPG/400 Procedure
12
RPG/400 Procedure FreeFormat
13
RPG/400 Procedure Prototype
14
RPG/400 Bound Service Program
15
RPG/400 Copy Member
16
RPG/400 Rule
17
RPG400 Data Structure
18
RPG/400 Module
19
RPG/400 File Disk Record
20
RPG/400 Local Record Structure
21
RPG/400 SQL Structure

Documentation of RPG Quality Rules and Metrics

Documentation of all CAST Metrics and Quality Rules specific to the extension is delivered via a compiled HTML Help file (CHM). Please ensure that once the CHM has been downloaded you right-click on the CHM file in Windows Explorer and choose Properties > Unblock. This will ensure that the CHM is readable on your own PC.

VersionCHM
2.0.xDownload CHM
  • No labels