Trier ces six phrases en deux colonnes
Application directe du cours · niveau 1 (application) · NSI (première), chapitre 11 — Conduire un projet · Spécifier et documenter
Énoncé
Trier ces six phrases en deux colonnes : celles qui relèvent de la spécification — ce que le programme fait — et celles qui relèvent de l'implémentation — comment il le fait.
- Le programme refuse un coup sur une case occupée.
- La grille est une liste de trois listes.
- L'utilisateur saisit deux entiers séparés par un espace.
- Les alignements sont énumérés dans une liste de triplets d'indices.
- La partie s'arrête dès qu'un joueur a aligné trois pions.
- La recherche du gagnant parcourt les huit alignements dans l'ordre.
Corrigé
| Spécification | Implémentation |
|---|---|
| 1. refuse un coup sur une case occupée | 2. liste de trois listes |
| 3. saisie de deux entiers séparés par un espace | 4. liste de triplets d'indices |
| 5. la partie s'arrête sur un alignement | 6. parcours des huit alignements |
Le critère qui décide, et il est mécanique : peut-on changer cette phrase sans changer ce que l'utilisateur observe ? Si oui, c'est de l'implémentation. On peut remplacer la liste de listes par un dictionnaire, ou l'ordre de parcours des alignements, sans que personne ne s'en aperçoive en jouant. On ne peut pas, en revanche, cesser de refuser les cases occupées.
Le cas 3 mérite un mot : « deux entiers séparés par un espace » décrit une entrée, donc ce que l'utilisateur doit faire ; c'est bien de la spécification, même si cela ressemble à un détail technique. La frontière ne passe pas entre « abstrait » et « concret », mais entre ce qui se voit du dehors et ce qui ne s'y voit pas.
Pourquoi ce tri compte : la fiche de spécification ne doit contenir que la colonne de gauche. Y glisser des choix d'implémentation les gèle avant d'y avoir réfléchi, et interdit de changer d'avis sans « modifier le cahier des charges » — alors qu'on n'aurait modifié que du code.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.