Source Scanner for IBM Enterprise COBOL

Source Scanner for IBM Enterprise COBOL


XML Elements

This document describes the XML entities and relations the COBOL scanner creates on encountering various COBOL code constructs.

CA_Repository_COBOL_Model

XML document root element. Attributes:

id - Unique element identifier.
application - Contains the value of the DMS_CASCANNER_APPLICATION environment variable. This value is normally set before running the scanner to identify the application for the program that is being processed.

COMPILATION_UNIT

Represents the top level of analysis performed by the scanner. Attributes:

id - Unique element identifier.
name - The full file name of the main program file.

PROGRAM

Represents an instance of a PROGRAM-ID clause. Attributes:

id - Unique element identifier.
name - The name of the program from the PROGRAM-ID clause.

COPYBOOK

Represents an instance of a COPY statement in the compilation unit. Attributes:

id - Unique element identifier.
name - The full file name of the copy book.

ENTRY

Represents an instance of an ENTRY statement in the compilation unit. Attributes:

id - Unique element identifier.
name - The name of the entry from the ENTRY statement.

FILE

Represent an SELECT statement in the compilation unit. Attributes:

id - Unique element identifier.
name - The name assigned by the SELECT statement to a FD (File Descriptor)

METRICS (assorted)

Attributes:

NAME - The name of the program from the PROGRAM-ID clause.
TOTALFILES - The total number of files in this compilation unit (source file plus all included copy libraries.
TOTALCODELINES - The total lines of code without comments and blank lines for all files in the compilation unit.
TOTALCOMMENTLINES - Total number of comment lines without blank lines.
TOTALLINES - The total number of lines in all files for the compilation unit.
CONDITIONALS - The total number of conditional statements.
CYCLOMATICCOMPLEX - A measure of the complexity of the program's control flow graph.
DECISIONDENSITY - The cyclomatic complexity divided by the total number of lines in the program.

H_OPERATOROCC - The number of operator occurences in the compilation unit. H_OPERANDOCC - The number of operand occurences in the compilation unit. H_UNOPERATORS - The number of distinct operators in the compilation unit. H_UNOPERANDS - The number of distinct operands in the compilation unit.
MAXCNDP - Maximum conditional nesting depth of the compilation unit.
MAXLPDP - Maximum loop nesting depth of the compilation unit.
H_PGMLENGTH - Halstead Program Length: N = H_OPERATOROCC+H_OPERANDOCC H_PGMVOCABULARY - Halstead Program Vocabulary: n = H_UNOPERATORS+H_UNOPERANDS
H_PGMVOLUME - Halstead Program Volume: V = N x log2(n)
H_PGMDIFFICULTY - Halstead Program Difficulty: D = (H_UNOPERATORS/2) x (H_OPERATORCC/H_UNOPERATORS)
H_PGMEFFORT - Halstead Program Effort: E = D x V;
H_BUGPREDICTION - Halstead Bug Prediction: B = (H_OPERATOROCC+H_OPERANDOCC) x log2(H_UNOPERATORS+H_UNOPERANDS) / 3000.
SEIMAINTAINABILITY - SEI Maintainablity index
MEANCYCLOMATICCOMP - Mean cyclomatic complexity of the paragraphs in the compilation unit.
MEDIANCYCLOMATICCO - Median cyclomatic complexity of the paragraphs in the compilation unit.


RECORD

Represents a top level 01 or 77 level element in a defined in the compilation unit. The record may or may not have GROUPS or ELEMENTS.

Attributes:

id - Unique element identifier.
name - The name of the file descriptor from the FD statement.
mentioned - The count of the number of times the record name was used in the compilation unit.


GROUP

Represents a subelement of a RECORD definition that has subelements.

Attributes:

id - Unique element identifier.
name – The name of the file descriptor from the FD statement.
mentioned - The count of the number of times the group name was used in the compilation unit.


ELEMENT

Represents a subelement of a RECORD or GROUP. An element does not have subelements and will always have a PICTURE.

Attributes:

id - Unique element identifier.
name - The name of the file descriptor from the FD statement.
length - The number of bytes of memory that the ELEMENT requires for storage. mentioned - The count of the number of times the element name was used in the compilation unit.

data type - A DB2 compatible data type for the ELEMENT.

CHAR - Character data of COBOL type DISPLAY or DISPLAY-1
SMALLINT - A binary number that requires two or fewer bytes. Corresponds to small COBOL values of type INDEX, POINTER, BINARY, COMP, COMP-4, and COMP-5.
INTEGER - A binary number that requires more than two bytes. Corresponds to small COBOL values of type INDEX, POINTER, BINARY, COMP, COMP-4, and COMP-5.
NUMERIC - COBOL values of type COMP-1 or COMP-2.
DECIMAL - COBOL values of type PACKED-DECIMAL or COMP-3.


VALUE

Represents a level 88 item (CONDITION NAMES) in the compilation unit.

Attributes:

id - Unique element identifier.
name - The name of the file descriptor from the FD statement.
value - A representation of the VALUE clause of the element.


COPY_REC

Indicates the RECORD elements that were defined in a copy library.

Attributes:

id - Unique element identifier.
source - The id of the COPYBOOK element.

target - The id of the RECORD element.


PRG_DATA

Represents a data item (RECORD, GROUP, ELEMENT) that was mentioned in the compilation unit.

Attributes:

id - Unique element identifier.
source - The id of the PROGRAM element.
target - The id of the RECORD/GROUP/ELEMENT element.


PRG_FILE

Associates an ASSIGNED NAME to a FD (File Descriptor)

Attributes:

id - Unique element identifier.
name - The name of the FD assigned to by the target FILE element
use - Indicates the file's usage: R (READ) or O (WRITE, UPDATE, SORT).
source - The id of the PROGRAM element.
target - The id of the corresponding FILE element.


REC_PRGF

Associates a PRG_FILE (FD/SELECT) to a RECORD.

Attributes:

id - Unique element identifier.
source - The id of the RECORD element.
target - The id of the corresponding PRG_FILE element.


PRG_LINK

Represents a call between two PROGRAM elements.

Attributes:

id - Unique element identifier.
source - The id of the calling PROGRAM element.
target - The id of PROGRAM element being called.


USG_DATA

Represents the arguments of a called subprogram.

Attributes:

id - Unique element identifier.
source - The id of the called PROGRAM element.
target - The id of RECORD/GROUP/ELEMENT element argument to the call