Previous Next Up Index Contents

10.1.1. La modularité et ses avantages

La plupart des langages de programmation nous permettent de subdiviser nos programmes en sous-programmes, fonctions ou procédures plus simples et plus compacts. A l'aide de ces structures nous pouvons modulariser nos programmes pour obtenir des solutions plus élégantes et plus efficientes.

Modules

Dans ce contexte, un module désigne une entité de données et d'instructions qui fournissent une solution à une (petite) partie bien définie d'un problème plus complexe. Un module peut faire appel à d'autres modules, leur transmettre des données et recevoir des données en retour. L'ensemble des modules ainsi reliés doit alors être capable de résoudre le problème global.

Dans ce manuel, les modules (en C: les fonctions) sont mis en évidence par une bordure dans la marge gauche.

Avantages

Voici quelques avantages d'un programme modulaire:

* Meilleure lisibilité

* Diminution du risque d'erreurs

* Possibilité de tests sélectifs

* Dissimulation des méthodes
Lors de l'utilisation d'un module il faut seulement connaître son effet, sans devoir s'occuper des détails de sa réalisation.

* Réutilisation de modules déjà existants
Il est facile d'utiliser des modules qu'on a écrits soi-même ou qui ont été développés par d'autres personnes.

* Simplicité de l'entretien
Un module peut être changé ou remplacé sans devoir toucher aux autres modules du programme.

* Favorisation du travail en équipe
Un programme peut être développé en équipe par délégation de la programmation des modules à différentes personnes ou groupes de personnes. Une fois développés, les modules peuvent constituer une base de travail commune.

* Hiérarchisation des modules
Un programme peut d'abord être résolu globalement au niveau du module principal. Les détails peuvent être reportés à des modules sous-ordonnés qui peuvent eux aussi être subdivisés en sous-modules et ainsi de suite. De cette façon, nous obtenons une hiérarchie de modules.
Les modules peuvent être développés en passant du haut vers le bas dans la hiérarchie ('top-down-development' - méthode du raffinement progressif) ou bien en passant du bas vers le haut ('bottom-up-development').

Remarque avancée

En principe, la méthode du raffinement progressif est à préférer, mais en pratique, on aboutit souvent à une méthode hybride, qui construit un programme en considérant aussi bien le problème posé que les possibilités de l'ordinateur ciblé ('méthode du jo-jo').


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber