NSI · Terminale · Génie logiciel
Modularité des programmes
Découper pour changer d’avis plus tard.
En bref
Un programme d’un seul bloc devient illisible passé quelques centaines de lignes.
Un programme d’un seul bloc devient illisible passé quelques centaines de lignes. La modularité consiste à le découper en unités qui se comprennent séparément.
Les niveaux de découpage
| Niveau | Ce qu’il regroupe |
|---|---|
| La fonction | Une tâche, un nom, des paramètres, une valeur de retour |
| Le module | Un fichier de fonctions ou de classes cohérentes |
| Le paquet | Un ensemble de modules |
| La bibliothèque | Un paquet destiné à être réutilisé |
Interface et implémentation
Un module expose une interface — ce qu’il promet — et cache son implémentation — la façon dont il tient sa promesse.
Celui qui l’utilise ne doit connaître que la première. C’est ce qui permet de changer l’intérieur sans casser l’extérieur.
Les deux critères d’un bon découpage
| Critère | Ce qu’il exige |
|---|---|
| Forte cohésion | Tout ce qui est dans un module concerne le même sujet |
| Faible couplage | Les modules dépendent le moins possible les uns des autres |
Un module qui a besoin de connaître l’intérieur d’un autre est mal découpé : toute modification de l’un obligera à modifier l’autre.
Les trois formes d’importation en Python
| Forme | Son effet |
|---|---|
| Importer le module entier, puis préfixer les appels | La plus lisible |
| Importer un nom précis | Commode, mais on perd la trace de l’origine |
| Importer tout le contenu dans l’espace courant | À proscrire : deux modules peuvent définir le même nom, et le second écrase silencieusement le premier |
La documentation
Une docstring décrit ce que fait une fonction, ses paramètres, sa valeur de retour et ses erreurs éventuelles.
Une bonne docstring décrit le contrat, pas l’algorithme : elle dit ce que la fonction garantit, pas comment elle s’y prend — sinon elle devra être réécrite à chaque modification interne.
Préconditions et postconditions
| Notion | Qui la garantit |
|---|---|
| La précondition | L’appelant : la liste ne doit pas être vide |
| La postcondition | La fonction : la liste renvoyée est triée |
L’instruction assert permet de les vérifier pendant le développement — mais ce n’est pas un mécanisme de gestion d’erreur en production, puisqu’elle peut être désactivée.
Réutiliser
Le premier réflexe devant un besoin courant est de chercher une bibliothèque existante, éprouvée et testée par d’autres. Écrire soi-même un tri, une date ou une fonction de hachage produit presque toujours un code plus lent et moins sûr.
Le bon test d’un découpage : peut-on expliquer ce que fait un module en une phrase, sans employer le mot « et » ? Si non, il en contient deux.
Teste-toi
6 questions pour vérifier
Touche une réponse : la correction s’affiche tout de suite.
1.Qu’est-ce que l’interface d’un module ?
2.Que signifie « faible couplage » ?
3.Pourquoi éviter d’importer tout le contenu d’un module dans l’espace courant ?
4.Que doit décrire une bonne docstring ?
5.Qu’est-ce qu’une précondition ?
6.L’instruction assert est un mécanisme de gestion d’erreur adapté à la production.
0 / 6 questions
Dans l’app, ce chapitre a son quiz complet, chronométré, et tes erreurs reviennent au bon moment pour ne plus les refaire.

La fiche de révision, sur une page
Tout « Modularité » sur une seule page A4 illustrée : l’essentiel, les pièges et un mini-test. Elle se débloque dans l’app avec des gemmes — et ton compte gratuit en offre assez pour tes trois premières fiches.

