NOMAD - 1.1
Description
If your Mainframe application contains NOMAD source code and you want to view these object types and their links with other objects/applications, then you should install this extension.
The extension provides NOMAD programs, the calls between them and to programs of other languages, the calls from COBOL programs and JCL steps, and the code and comment line counts.
Download and installation instructions
The extension will be automatically downloaded and installed when any of the file types listed below are delivered in the source code. It can be managed through the Application → Extensions interface.
Supported file types
| Code type | Supported file extension | Required? | Comments |
|---|---|---|---|
| NOMAD programs | *.nomad |
✅ | 1 program per file |
File extensions are case insensitive: *.NOMAD files are analyzed too.
Transactions
Transaction support is derived from metamodel concepts used to build CAST Imaging Blueprint and structural transaction flows. Entry Points start transactions; Exit Points include both output/boundary concepts and Data Entities manipulated by transactions.
| Role | Support | Breakdown |
|---|---|---|
| Entry Point | No direct concept type details | |
| Exit Point | No direct concept type details |
Data version: 1.1.0-beta1
ISO 5055 Structural Rules
Quality support is based on ISO 5055 structural rules available for the selected extension version.
| Reliability | Maintainability | Security | Performance Efficiency |
|---|---|---|---|
Data version: 1.1.0-beta1
What results can you expect?
Programs and calls
Each source file is a NOMAD Program, named after the file name up to its first dot: ACCTXTR.NOMAD gives the program ACCTXTR. An empty source gives no program.
The CALL name, CALL PROGRAM name and XFR name statements create a call link from the program, one for each statement. Keywords are case insensitive, and the name can be quoted (CALL 'OVRDLTR'). The target is found as follows:
- The analyzed NOMAD programs with this name, whatever its case. All of them are linked when several programs have this name.
- When the name matches no analyzed NOMAD program, a NOMAD Call to Program object is created under the calling program, one per called name. It can be linked to programs of other languages (see Calls to other languages).
For example, in the file MONTHEND.nomad below, the four XFR statements create call links to the NOMAD programs FEECALC, CUSTUPDT, HIGHTXN and ACCTXTR, analyzed with it:
...
/* 1. CHARGE THE MONTHLY FEES */
XFR FEECALC;
/* 2. CLOSE DORMANT ACCOUNTS */
XFR CUSTUPDT;
/* 3. AUDIT REPORT AND COBOL EXTRACT */
XFR HIGHTXN;
XFR ACCTXTR;
...
In the file ACCTXTR.NOMAD, no NOMAD program is named OVRDLTR: the statement below creates the NOMAD Call to Program OVRDLTR under the program ACCTXTR, and a call link to it. The Universal Linker then links it to the COBOL program OVRDLTR, when it is analyzed.
CALL PROGRAM OVRDLTR USING &EXTRACT_DSN;
Calls to other languages
NOMAD programs are linked to and from programs written in other languages (COBOL, PL/I, Assembler, …) by the Universal Linker extension (1.7.51 or later):
- A NOMAD Call to Program is linked to the program of any language with the same name.
- A COBOL Program Prototype is linked to the NOMAD Program with the same name. The prototype is created by the Mainframe Analyzer for a program that is not a COBOL program, called by a COBOL
CALLor run by a JCL step withEXEC PGM=name. This is how a JCL step withEXEC PGM=namereaches the NOMAD program: JCL Step → COBOL Program Prototype → NOMAD Program.
Metrics
The extension computes, for each NOMAD Program, the number of code lines and of comment lines, and saves the comments. The source file gets the same line counts. A line with code and a comment counts as a code line and as a comment line.
Objects
Links
NOMAD links — Analysis level (intra-technology)
NOMAD links — Application level (cross-technology)
Quality rules
None on NOMAD language.
Known limitations
- Statements: only
CALL,CALL PROGRAMandXFRare analyzed. The other statements, such as the database statements (LIST,CHANGE,FOR EACH, …), create no object and no link. - Calls: a called name held in a variable (
CALL &PGM,XFR &PROC) creates no object and no link. - Other technologies:
- From JCL, a step is linked to a NOMAD program only when it runs it with
EXEC PGM=name, through the COBOL Program Prototype (see Calls to other languages). - A NOMAD Call to Program is resolved by the Universal Linker by name only: it is linked to every program of another language with this name, whatever its technology.
- From JCL, a step is linked to a NOMAD program only when it runs it with
- Metrics: no cyclomatic complexity is computed.