Comprendre un projet COBOL existant : lire, déchiffrer, commenter

Dans l’écosystème des grandes entreprises, le COBOL reste au cœur de systèmes critiques. Malgré son âge, ce langage continue de faire tourner des applications vitales dans la banque, l’assurance ou l’administration. Et quand il s’agit de reprendre un projet COBOL existant, la tâche peut vite devenir intimidante.

Lire un programme COBOL, c’est comme entrer dans une vieille machine encore en marche : il faut comprendre sa logique, ses branchements, ses règles tacites. Ce n’est pas une opération de relecture classique : c’est une enquête technique. Et elle commence par les bases.

Décoder la structure du programme

Un projet COBOL est rarement un simple fichier à dérouler. Il faut d’abord identifier la structure du code et les points d’entrée métier.

Prenons un exemple typique avec accès base de données DB2 :

  • Le programme COBOL contient la logique métier.

  • Le DBRM (Database Request Module) compile les instructions SQL.

  • Le plan d’exécution fait le lien entre les deux.

L’objectif ? Repérer les divisions, comprendre la hiérarchie des PERFORM, et visualiser la séparation entre logique métier, accès base et gestion des fichiers.


PROCEDURE DIVISION.
MAIN-PROCEDURE.
    PERFORM INITIALIZE-PROGRAM
    PERFORM PROCESS-CUSTOMERS
    PERFORM CLEANUP-PROGRAM
    STOP RUN.

Ici, le code est clair : une procédure principale, trois blocs bien délimités, une structure lisible et maintenable. Pour aller plus loin sur ces fondations, lisez Les patterns COBOL durables, ceux qui résistent à l’épreuve du temps.

 

Compilation, plan et DBRM : comprendre le processus complet

Un projet COBOL, ce n’est pas juste du texte compilé. Le processus de génération de l’exécutable inclut :

  • Précompilation : extraction des blocs EXEC SQL vers un DBRM.

  • Compilation : génération du code objet à partir du COBOL.

  • Lien avec le plan DB2 : via le binder, qui crée le plan d’exécution utilisé à l’exécution.

Si vous analysez un projet en production, vérifiez la version du compilateur, les options d’optimisation activées, et la présence éventuelle de copybooks dans les include SQL.

Cela impacte directement les performances, comme on l’explique dans Optimiser les traitements batch COBOL : structure, compileur, bonnes pratiques.

Lire et comprendre le JCL

Pas de programme COBOL en production sans son JCL. Et lire ce script, c’est souvent la clé pour comprendre ce que fait vraiment le programme :

  • Quelles données il traite (fichiers en entrée/sortie)

  • Dans quel ordre les étapes s’enchaînent

  • Quels utilitaires il appelle (SORT, IDCAMS, IEFBR14…)

Un exemple simple de JCL vous montrera :

  • L’appel au programme

  • Les datasets utilisés

  • Les étapes de prétraitement ou de post-traitement

Le JCL, c’est la ligne de commande du mainframe : sans la lire, on passe à côté de la moitié du projet.

Techniques concrètes pour analyser le code

Quand on hérite d’un gros monolithe COBOL sans doc, il faut adopter une méthode claire et outillée :

  • Éditeur ISPF : commandes FIND, COMP, surlignage des variables.

  • Analyse SQL avec EXPLAIN ou DB2 Query Monitor.

  • Outils IBM z/OS (comme Debug Tool) pour debugger pas à pas.

  • Cartographie des flux de données pour comprendre comment transitent les montants, les identifiants clients, les états de traitement.

  • Si le programme utilise des copybooks partagés, identifiez toutes les dépendances pour éviter les effets de bord en cas de modification.

Conclusion

Les freins à la compréhension sont connus : code spaghetti, absence de doc, dépendances cachées, SQL enfoui dans du précompilé… La solution ? Un mix d’outils modernes et de rigueur manuelle.

Déboguez, tracez, renommez, refactorez. Chaque zone clarifiée, chaque ligne commentée, c’est une dette technique de moins à porter.

Comprendre un projet COBOL existant ne passe pas par miracle. C’est un travail d’enquête : on repère, lit, isole, commente, on reconstitue le puzzle. On clarifie l’existant avant même de penser à refactorer.

Même un programme ancien peut être remis à plat, documenté, segmenté, compris. Et plus le socle est lisible, plus il est réutilisable.

Contact

Une base COBOL à comprendre ou à démystifier ?

Nous accompagnons aujourd’hui des entreprises confrontées à des bases COBOL anciennes, peu documentées, parfois critiques, toujours complexes. Lecture de code, cartographie fonctionnelle, préparation à la modernisation : si vous êtes dans ce cas, parlons-en.