Aller au contenu
studuel

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

NiveauCe qu’il regroupe
La fonctionUne tâche, un nom, des paramètres, une valeur de retour
Le moduleUn fichier de fonctions ou de classes cohérentes
Le paquetUn ensemble de modules
La bibliothèqueUn 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èreCe qu’il exige
Forte cohésionTout ce qui est dans un module concerne le même sujet
Faible couplageLes 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

FormeSon effet
Importer le module entier, puis préfixer les appelsLa plus lisible
Importer un nom précisCommode, 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

NotionQui la garantit
La préconditionL’appelant : la liste ne doit pas être vide
La postconditionLa 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. 1.Qu’est-ce que l’interface d’un module ?

  2. 2.Que signifie « faible couplage » ?

  3. 3.Pourquoi éviter d’importer tout le contenu d’un module dans l’espace courant ?

  4. 4.Que doit décrire une bonne docstring ?

  5. 5.Qu’est-ce qu’une précondition ?

  6. 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.

Continuer dans l’app
Aperçu flouté de la fiche de révision

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.

Débloquer la fiche dans l’app

Dans le même thème

NSI en terminale : passe à l’entraînement.

Le quiz complet, les exercices corrigés, les duels contre des élèves de ton niveau et un coach IA qui t’explique ce qui bloque.

Commencer gratuitement