Simplification du code : l'abstraction procédurale

Durée estimée: 45 minutes

Ce que l’on va faire :

  • voir la notion de procédure (ou d'abstraction procédurale), son rôle dans les architectures et la simplification du code qu'elle permet,
  • analyser le code et le décomposer en sous ensembles fonctionnels,
  • simplifier le code en remplaçant chaque sous ensembles par une procédure,
  • examiner le gain obtenu par cette opération d'"abstraction",
  • apprendre à documenter le code

Notions abordées :

  1. la décomposition fonctionnelle,
  2. les procédures et l'abstraction procédurale,
  3. les architectures logicielles en couches (abstraction layers),
  4. la modularité,
  5. la documentation.

Procédures et abstraction procédurale

Les notions de procédure ou d'abstraction procédurale sont FONDAMENTALES en programmation. Elles permettent d'organiser le logiciel par couches, depuis le bas niveau proche de l'ordinateur (code binaire exécutable par la machine) jusqu'aux langages de haut niveau, proches du langage naturel.

Réalisation

Vous allez reprendre le code de la version précédente et séparer les 3 fonctions principales :

  • orienter et faire avancer la voiture,
  • redémarrer en cas de sortie de route,
  • et tester si la voiture a atteint l'arrivée.
Le détail de chacune de ces fonctions sera délégué à une procédure, et cette prcédure sera appelée depuis le script principal. Cette modification ne va rien changer au fonctionnement du jeu, mais va simplifier le code et le rendre beaucoup plus facile à lire. Cette simplification va permettre d'aller plus loin sur chacune des fonctions.

Ressources de départ : vous pouvez partir du résultat de la leçon précédente, ou du projet à cette adresse.

Restructuration et simplification du code avec les procédures

Déroulement

Le script qui gère la voiture avec la boucle infinie est devenu trop compliqué pour être facile à lire. Il comprend en fait trois parties ou trois fonctions différentes : faire avancer la voiture,gérer les sorties de route et gérer l'arrivée.

Pour chacun des blocs correspondants on définit une procédure qui intègre ces blocs. Un appel à cette procédure vient ensuite remplacer les blocs déplacés dans la procédure. L'application fonctionne exactement de la même manière, mais le code est beaucoup plus claiir et simple à lire.

Revue des notions mises en oeuvre :

Quiz d'auto-contrôle

Répondez à ce quiz sur l'abstraction.