Glossary
COBOL to DMN, defined precisely.
The vocabulary of legacy modernization: mainframe constructs, Java EE and .NET frameworks, program analysis, and the open standards PYD ENTERPRISES exports. Link to any term with #slug, or search with ?q=.
56 terms, A to Z
#
- 88-level condition name
A level-88 entry that associates a name with one or more values or ranges of its parent field, such as
88 TIER-BASIC VALUE 'B'. The name is used as a boolean condition (IF TIER-BASIC) and set withSET TIER-BASIC TO TRUE, which makes it a natural source of DMN input values.Related:COBOLDecision table
A
- Abstract syntax tree (AST)
A tree representation of a program's syntactic structure produced by a parser, with nodes for declarations, statements and expressions and without layout details such as column positions or comments. It is the base structure for symbol resolution and every later analysis.
- Air-gapped deployment
Running software in a network with no route to the internet, so installation, licensing and updates must work from media moved across the gap. For code analysis it means source and results never leave the customer's environment.
Related:z/OS
- ALTER
A COBOL statement that changes, at runtime, the target of a
GO TOin another paragraph. It was declared obsolete in COBOL-85 and removed from the COBOL 2002 standard, but survives in production code; static analysis has to treat the altered jump as having several possible targets.- Apache Struts
A Java MVC web framework. Struts 1 routes requests to
Actionclasses withActionFormbeans configured instruts-config.xmland reached end of life in 2013; Struts 2 is a separate design based on WebWork, with actions and interceptor stacks.- AsyncAPI
A specification for describing message-driven APIs, covering channels, messages and the operations that publish or subscribe to them over protocols such as Kafka, AMQP and MQTT. It is the event-driven counterpart to OpenAPI.
Related:OpenAPIJSON Schema
B
- Behavioral equivalence testing
Running the legacy and modern implementations of a behavior on the same inputs and comparing outputs, to show that in-scope behaviors match and that every difference was decided on purpose. Fixtures are most effective when generated from the branch conditions of extracted rules.
- BMS
Basic Mapping Support, the CICS facility for 3270 screen layouts. Maps are defined with the
DFHMSD,DFHMDIandDFHMDFassembler macros, which generate a physical map and a symbolic map copybook the program uses withSEND MAPandRECEIVE MAP.- Business rule extraction
Identifying the statements in legacy code that implement business policy (calculations, eligibility, pricing, validation) and separating them from plumbing such as I/O, logging and error handling. The output is a reviewable inventory of rules, each linked to its source lines.
Related:Program slicingDecision tableDMN (Decision Model and Notation)
C
- Characterization test
A test that records what existing code actually does, rather than what it is supposed to do, so that later changes can be checked against current behavior. Michael Feathers popularized the term for working safely with legacy code.
- CICS
Customer Information Control System, IBM's online transaction processing monitor for z/OS. Application programs call it through
EXEC CICScommands for terminal I/O, file and queue access, program linking and transaction control.Related:COMMAREABMSPseudo-conversational
- COBOL
Common Business-Oriented Language, a procedural language first specified by CODASYL in 1959 for business data processing. It is built around fixed-point decimal arithmetic, record-oriented file handling and a strict split between the DATA DIVISION and the PROCEDURE DIVISION. Production dialects include IBM Enterprise COBOL for z/OS and Micro Focus COBOL.
- COMMAREA
The communication area passed between CICS programs on
LINKandXCTL, or carried across tasks byRETURN TRANSID. The receiving program addresses it asDFHCOMMAREAin the LINKAGE SECTION, finds its length inEIBCALEN, and is limited to roughly 32 KB; larger payloads use channels and containers.Related:CICSPseudo-conversationalOpenAPI
- COMP-3 (packed decimal)
A COBOL numeric usage that stores two decimal digits per byte with the sign in the final nibble (
Cpositive,Dnegative,Funsigned). A field takes (digits + 1) / 2 bytes rounded up, soPIC S9(7)V99 COMP-3occupies 5 bytes; the implied decimal pointVtakes no storage.- Contract testing
Testing that a service provider and its consumers agree on an interface contract, with each side verified independently against the shared contract rather than in a full end-to-end environment. Consumer-driven contracts are a common variant.
- Control-flow graph (CFG)
A directed graph whose nodes are basic blocks (straight-line runs of statements) and whose edges are the possible transfers of control between them. In COBOL it must model PERFORM ranges, fall-through between paragraphs and computed or altered jumps.
Related:Abstract syntax tree (AST)Dataflow analysisPERFORM THRU
- Copybook
A source member included into a COBOL program at compile time with the
COPYstatement, most often holding record layouts shared by every program that reads a file or COMMAREA. TheREPLACINGphrase can rename text on inclusion, so the same copybook can produce different field names in different programs.
D
- Data lineage
The record of where a data element comes from, which programs, jobs or procedures transform it, and where it ends up. Column- or field-level lineage across COBOL, JCL, stored procedures and triggers shows the true blast radius of changing a field.
Related:Dataflow analysisJCLPL/SQL
- Dataflow analysis
A family of static analyses that compute facts about values at each program point by propagating information along the control-flow graph, such as reaching definitions, live variables and constant values. It answers questions like which assignments can supply the value read here.
- DB2 embedded SQL
SQL statements written inside COBOL or PL/I source between
EXEC SQLandEND-EXEC, translated by a precompiler or the integrated coprocessor into calls to DB2 for z/OS. Host variables are referenced with a leading colon and declared in the DATA DIVISION.Related:COBOLData lineage
- Dead code
Code that can never execute (unreachable code) or whose results never influence any output (useless code). Distinguishing the two matters during modernization: unreachable branches can be dropped, while code that runs but has no visible effect deserves a reviewer's look before removal.
- Decision requirements diagram (DRD)
The DMN diagram showing how decisions depend on input data, on other decisions and on business knowledge models, with knowledge sources for authority. A rating or eligibility model is typically a DRD with decision tables at the leaves and a formula at the top.
- Decision table
A tabular representation of a decision in which each row is a rule pairing input conditions with output values, and a hit policy resolves overlaps. It is the most reviewable form for business rules extracted from nested IF and EVALUATE logic.
Related:Hit policyDMN (Decision Model and Notation)88-level condition name
- DMN (Decision Model and Notation)
An Object Management Group standard for modeling and executing business decisions, combining decision requirements diagrams, decision tables and the FEEL expression language. Version 1.5 is the current release and is implemented by engines such as Camunda and Drools.
Related:Decision tableFEELHit policyDecision requirements diagram (DRD)
E
- EBCDIC
Extended Binary Coded Decimal Interchange Code, the 8-bit character encoding family used on z/OS, with code pages such as 037 and 1140. Its collating order (lowercase, then uppercase, then digits) differs from ASCII, so sorts and range comparisons can change meaning when data moves off the mainframe.
Related:z/OSCOMP-3 (packed decimal)
- EJB (Enterprise JavaBeans)
The server-side component model of Java EE. EJB 2.x components require home and remote or local interfaces and use entity beans for persistence; EJB 3.x replaced most of that with annotated plain Java classes and JPA entities.
- Endevor
A mainframe software change and configuration management product, now from Broadcom, that moves source elements through environments and stages and runs processors to compile and link them. Its inventory is often the most reliable record of which source version is in production.
Related:PDS (partitioned data set)z/OS
F
- FEEL
Friendly Enough Expression Language, the expression language defined by DMN. It covers unary tests used in decision table cells (
< 21,[21..25),"B","P"), arithmetic, contexts, lists, built-in functions and a three-valued logic withnull.
G
- GO TO DEPENDING ON
A COBOL computed jump:
GO TO P1 P2 P3 DEPENDING ON WS-IDXtransfers control to the nth listed paragraph when the index equals n, and falls through to the next statement when the index is out of range.
H
- Hit policy
The indicator on a DMN decision table that defines the result when more than one rule matches. Single-hit policies are Unique, Any, Priority and First (U, A, P, F); multiple-hit policies are Collect, Rule order and Output order (C, R, O), and Collect may aggregate with sum, min, max or count.
I
- IMS DB
IBM's hierarchical database manager. Data is stored as segments arranged in parent-child trees, and programs navigate it with DL/I calls such as
GU,GN,GNP,ISRT,REPLandDLET, qualified by segment search arguments.Related:z/OSData lineage
J
- JCL
Job Control Language, the z/OS language that describes batch jobs: which programs run (
EXECsteps), which datasets they read and write (DDstatements) and under what conditions later steps run (CONDparameters orIF/THEN/ELSEon return codes). Cataloged procedures (PROCs) let many jobs share step definitions.- JSON Schema
A vocabulary for describing and validating the structure of JSON documents, with keywords such as
type,properties,required,patternandoneOf. Draft 2020-12 is the version OpenAPI 3.1 builds on.
O
- OCCURS DEPENDING ON
A COBOL clause declaring a variable-length table whose current number of entries is held in another field at runtime. Because the table's length changes, the offsets of any items that follow it in the record change too, which any byte-level layout analysis must account for.
- OpenAPI
The OpenAPI Specification, a vendor-neutral format for describing HTTP APIs: paths, operations, parameters, request and response bodies and security. Version 3.1 aligns its schema objects fully with JSON Schema 2020-12.
P
- PDS (partitioned data set)
A z/OS dataset divided into named members, used like a directory for source programs, copybooks, JCL and load modules. PDSE is the extended format with better space management; source exports from PDS libraries are a common input to code analysis.
- PERFORM THRU
A COBOL statement that executes a range of paragraphs in physical source order, from the first named paragraph to the end of the last, then returns to the statement after the PERFORM. Code inside the range can leave it with
GO TO, in which case the PERFORM does not return along that path.- PL/SQL
Oracle's procedural extension to SQL, organized into packages, procedures, functions and triggers stored in the database. Cursors, package-level state, autonomous transactions and
EXECUTE IMMEDIATEdynamic SQL are common places for business logic and side effects to hide.- Program slicing
A technique, introduced by Mark Weiser in 1981, that computes the subset of a program's statements that can affect a chosen variable at a chosen point (a backward slice) or be affected by it (a forward slice). Slicing from an output field isolates the code that implements one business calculation.
Related:Dataflow analysisControl-flow graph (CFG)Business rule extraction
- Pseudo-conversational
A CICS design in which a program sends a screen and ends its task with
RETURN TRANSID, so no resources are held while the user reads. When the user responds, a new task starts and restores its state from the COMMAREA or a temporary storage queue.
R
- REDEFINES
A COBOL DATA DIVISION clause that gives a second description to the same storage as a preceding item at the same level. It is used for alternate record layouts selected by a type code and for reinterpreting bytes, so two names can alias the same memory without any tag recording which view is valid.
- Refactoring
Restructuring code without changing its externally observable behavior, to make it easier to understand and modify. In modernization it is usually done in small steps protected by characterization or equivalence tests.
- Rehosting
Moving an application to new infrastructure with minimal code change, often called lift and shift, for example recompiling COBOL to run on a mainframe emulation platform in a cloud. It lowers infrastructure cost without making the business logic easier to understand or change.
- Replatforming
Moving an application to a new platform with targeted changes, such as a different database or a managed runtime, while keeping its overall architecture. It sits between rehosting and a full rewrite in cost and risk.
Related:RehostingRefactoring
S
- Spring XML configuration
The original way of wiring Spring applications, declaring beans, dependencies, transactions and AOP advice in XML files. Behavior configured there, such as an interceptor applied by pointcut, is invisible when reading the Java classes alone.
- Stored procedure
A named program stored and executed inside a database server. In many legacy estates stored procedures and the triggers they fire hold core business rules, so replacing only the application tier leaves those rules behind.
Related:PL/SQLT-SQLData lineage
- Strangler fig pattern
An incremental replacement strategy, named by Martin Fowler, in which new components take over functionality piece by piece behind a routing facade until the old system can be retired. It depends on knowing the legacy system's interfaces and data ownership well enough to cut it at clean seams.
Related:RefactoringRehostingOpenAPI
- Symbol table
The structure that maps every declared name to its declaration, scope, type and storage. For COBOL it also records qualification (
OFandIN), the copybook each name came from and byte offsets, so aliases created by REDEFINES can be detected.
T
- T-SQL
Transact-SQL, the SQL dialect of Microsoft SQL Server (and, historically, Sybase). It adds variables, control flow, temporary tables,
TRY...CATCHand dynamic SQL throughsp_executesqlto standard SQL.Related:PL/SQLStored procedure
- Technical debt
The future cost of rework created by expedient design and implementation choices, a metaphor introduced by Ward Cunningham in 1992. In legacy estates it accumulates as undocumented rules, duplicated logic across copybooks and programs, and knowledge held by a shrinking number of people.
Related:RefactoringDead code
- Transpilation
Automated source-to-source translation, for example converting COBOL to Java statement by statement. It preserves the original structure, including GO TO logic and packed-decimal emulation, so the output usually runs but remains hard for engineers in the target language to maintain.
V
- VB6
Visual Basic 6.0, Microsoft's 1998 COM-based language and IDE for Windows desktop applications. Error handling with
On Error Resume Nextand shared state in global modules make its control and data flow hard to follow without analysis.- ViewState
The ASP.NET WebForms mechanism that serializes page and control state into a hidden
__VIEWSTATEform field and restores it on postback. Business state stored there survives between requests without appearing in any database or service contract.- VSAM
Virtual Storage Access Method, IBM's record-level file access method on z/OS. Its dataset types are key-sequenced (KSDS), entry-sequenced (ESDS), relative-record (RRDS) and linear (LDS); alternate indexes add secondary keys over a KSDS or ESDS.
Related:COBOLCopybookData lineage
W
- WCF
Windows Communication Foundation, the .NET Framework service framework. Contracts are declared with
[ServiceContract],[OperationContract]and[DataContract]attributes and exposed through bindings such asbasicHttpBindingandnetTcpBinding; server-side WCF was not carried into .NET Core, where the community CoreWCF project continues it.
Z
- z/OS
IBM's 64-bit operating system for IBM Z mainframes. It hosts CICS and IMS transaction workloads, DB2 for z/OS and batch processing scheduled through JES and described in JCL.
Looking for how a construct behaves during migration rather than what it means? The anti-patterns catalog covers detection and modern mappings, and the DMN guide goes deeper on hit policies and FEEL.
Stop spending six months reading legacy code by hand.
Run PYD ENTERPRISES on 100,000 lines of COBOL or Java in your private VPC and review OpenAPI specs and DMN tables tomorrow.