Previous Page Next Page

11.2 Un exemple de modularisation

Considérons un exemple de gestion de fichiers de personnes. Le traitement à effectuer est constitué par exemple de quatre modules:

• la création d'enregistrements de personnes,

• leur modification,

• leur suppression,

• l'impression de la liste des personnes.

Chaque module peut faire l'objet d'un sous-programme et être appelé en fonction de la tâche à exécuter. Nous pouvons donc créer quatre sous-programmes et leur donner un nom de procédure. Dans le paragraphe sur les fonctions il deviendra clair pourquoi nous n'allons pas implémenter les différents modules sous forme de fonctions.

La structure modularisée du programme effectuant cette tâche pourrait se présenter comme suit:

PROGRAM DataBase;

. . .

PROCEDURE CreateRecord;

BEGIN

. . .

END; {-- CreateRecord}

PROCEDURE ModifyRecord;

BEGIN

. . .

END; {-- ModifyRecord}

PROCEDURE SuppressRecord;

BEGIN

. . .

END; {-- SuppressRecord}

PROCEDURE PrintRecord;

BEGIN

. . .

END; {-- PrintRecord}

BEGIN {main}

CreateRecord;

ModifyRecord;

SuppressRecord;

PrintRecord

END. {-- DataBase}

La structure des procédures appelées CreateRecord, ModifyRecord, SuppressRecord et PrintRecord est similaire à celle du programme principal appelant DataBase.

Dans notre exemple, deux procédures nécessitent la recherche d'un enregistrement, à savoir les procédures SuppressRecord et ModifyRecord.

Cette recherche, identique dans les deux cas, peut faire l'objet d'une procédure SearchRecord qui sera appelée par les procédures SuppressRecord et ModifyRecord au moment de leur exécution. Ici, l'appel se fait en nommant le nom de la procédure appelée. On dit que les procédures SuppressRecord et ModifyRecord sont des procédures appelantes de la procédure SearchRecord, qui elle, est la procédure appelée.

En règle générale, il faut déclarer (donc, non nécessairement définir) les procédures avant de les utiliser. Si le prototype, c'est-à-dire la déclaration, d'une procédure doit être séparé de sa définition, qu'elle qu'en soit la raison, ceci peut se faire en utilisant dans la déclaration de la procédure la directive Forward qui spécifie que la définition respective est écrite plus loin.

Le programme DataBase devient alors:

PROGRAM DataBase;

. . .

PROCEDURE CreateRecord;

BEGIN

. . .

END; {-- CreateRecord}

PROCEDURE SearchRecord; Forward; {Prototype de la procédure SearchRecord}

. . .

PROCEDURE ModifyRecord;

BEGIN

SearchRecord; {Procédure appelée}

. . .

END; {-- ModifyRecord}

PROCEDURE SuppressRecord;

BEGIN

SearchRecord; {Procédure appelée}

. . .

END; {-- SuppressRecord}

PROCEDURE PrintRecord;

BEGIN

. . .

END; {-- PrintRecord}

PROCEDURE SearchRecord; {Définition de la procédure SearchRecord}

BEGIN

. . .

END; {-- SearchRecord}

BEGIN {main}

CreateRecord;

ModifyRecord;

SuppressRecord;

PrintRecord

END. {-- DataBase}

TERMES TECHNIQUES

• directive Forward

• module

• procédure appelante

• procédure appelée

Previous Page Next Page


© Aflo Informatique , 2003-2004