Comment modifier un automatisme sans casser ce qui fonctionne déjà ?
Une demande comme « ventiler seulement quand il fait vraiment chaud et quand le mode automatique est activé » doit devenir une règle précise. On identifie les données, on écrit l’algorithme et on compare les résultats aux attentes. La version initiale commande la ventilation au-dessus de 25 °C, sans mode de désactivation. La nouvelle fonctionnalité ajoute ce mode et porte le seuil à 28 °C. Les essais utilisent des valeurs simulées.
1. Écrire la fonctionnalité attendue
Une fonctionnalité décrit un comportement utile et vérifiable. Ici, la ventilation doit être commandée lorsque le mode automatique est actif et que la température dépasse strictement le seuil. Sinon, elle doit être arrêtée. Dire « le programme doit être intelligent » ne permet pas de décider si un essai réussit. La règle précise les entrées, la condition et les sorties. Elle annonce aussi ce qui se passe à l’égalité et lorsque le mode automatique est désactivé. C’est ce contrat qui sert ensuite à valider la modification.

Les entrées sont les données utilisées par le programme : température mesurée T et état du mode automatique. Le seuil est un paramètre choisi pour la fonctionnalité. La sortie est la commande de ventilation, représentée par un booléen. Elle ne prouve pas à elle seule que le ventilateur physique tourne : ce serait un autre contrôle. Une variable est un nom associé à une valeur qui peut évoluer pendant l’exécution. Dans une boucle d’acquisition, T peut donc être remplacée par une nouvelle mesure à chaque cycle.
Vocabulaire
- Algorithme :
- Suite organisée d’instructions décrivant une méthode de résolution.
- Programme :
- Traduction d’un algorithme dans un langage exécutable.
- Condition :
- Expression évaluée comme vraie ou fausse pour choisir une action.
- Itération :
- Répétition d’un ensemble d’instructions.
- Événement :
- Fait détecté qui peut déclencher l’exécution d’un traitement.
Exemple résolu
Pour la commande simulée, classe T, mode automatique, seuil et commande.
- Étape 1 : T est une entrée numérique représentant une température en °C.
- Étape 2 : Le mode automatique est une entrée booléenne indiquant si cette fonction est autorisée.
- Étape 3 : Le seuil est le paramètre de comparaison, fixé à 25 puis à 28 dans la modification.
- Étape 4 : La commande est la sortie booléenne calculée à partir des entrées et du seuil.
Résultat : Les entrées décrivent la situation, le paramètre fixe la règle et la sortie donne l’ordre calculé.
Piège à éviter : Classer la commande comme une mesure de température mélange données physiques et résultat du traitement.
À toi d'essayer
Le programme envoie marche. A-t-on prouvé que le moteur réel tourne ?
Coup de pouce : Distingue sortie logique et effet physique.
Voir la réponseMasquer la réponse
Non. On a établi l’ordre calculé ; l’action réelle demande un retour d’information ou une observation.
2. Organiser conditions, répétitions et événements
L’algorithme est indépendant d’une syntaxe particulière. On peut l’exprimer en phrases structurées, par un organigramme ou par des blocs. Le programme traduit ces mêmes décisions dans un langage, comme Python. L’organigramme montre une alternative : si les deux conditions sont vraies, commander marche ; sinon, commander arrêt. Les deux branches doivent définir la sortie. Sans branche d’arrêt, une ancienne commande de marche pourrait persister selon la structure du programme. L’absence d’instruction n’est pas toujours équivalente à une remise à zéro.
Algorithme de la version modifiée
- Au démarrage, fixer le seuil à 28 °C et la commande à faux.
- Répéter le cycle d’acquisition : lire une nouvelle température et l’état actuel du mode automatique.
- Si le mode est actif ET si T est strictement supérieure à 28, fixer la commande à vrai ; sinon, la fixer à faux.
- Transmettre la commande, attendre la durée de cycle définie puis recommencer avec des entrées mises à jour.
Dans une version Python simplifiée portant uniquement sur le calcul, la fonction peut renvoyer l’expression « auto and temperature > seuil ». Avec un paramètre seuil égal à 28, cette expression correspond à la règle étudiée. La lecture du capteur et la transmission de l’ordre restent à intégrer dans un programme de carte selon son matériel. Un événement, comme un appui sur le bouton de mode, peut modifier auto ; la boucle suivante relit alors cet état. Une boucle qui ne relit jamais T traiterait toujours une ancienne mesure.
Exemple résolu
Le mode reste actif. Les mesures successives sont 27, 29 puis 28 °C. Le seuil vaut 28. Trace les sorties.
- Étape 1 : Premier cycle : 27 > 28 est faux, donc commande arrêt.
- Étape 2 : Deuxième cycle : 29 > 28 est vrai et le mode est actif, donc commande marche.
- Étape 3 : Troisième cycle : 28 > 28 est faux, donc commande arrêt.
- Étape 4 : Vérifier que la sortie est réécrite au troisième cycle et ne conserve pas la marche du deuxième.
Résultat : La séquence de commandes est arrêt, marche, arrêt.
Piège à éviter : Laisser marche au troisième cycle oublie la branche sinon et conserve un état ancien.
À toi d'essayer
Où faut-il relire la température : une seule fois avant la boucle ou à chaque cycle ?
Coup de pouce : Une variable ne se met pas à jour par intention.
Correction détaillée pas à pasDans ce chapitre : 2 corrections détaillées.
3. Modifier une version et prévoir ses tests
Une modification traçable conserve la version de départ et précise ce qui change. Ici, la version initiale ne considère que la température supérieure à 25 °C. La fonctionnalité ajoutée permet de désactiver la ventilation automatique. On ajuste aussi le seuil à 28 °C. Pour isoler les effets, on prépare deux étapes : d’abord le nouveau seuil, puis l’ajout de la condition de mode. Chaque étape conserve sa version et ses tests. On évite ainsi de confondre une erreur de comparaison avec une erreur de combinaison logique.
Les tests doivent être préparés avec leurs résultats attendus avant d’observer le programme. On choisit une valeur sous le seuil, l’égalité, une valeur au-dessus et un mode désactivé. On ajoute une séquence où la température redescend pour repérer une sortie qui resterait mémorisée à tort. Un test qui ne vérifie que 40 °C avec mode actif pourrait réussir même si l’égalité ou l’arrêt sont mal programmés. Tester consiste donc à chercher aussi des cas capables de révéler une erreur, pas seulement à montrer un exemple favorable.
Au brevet : modifier et tester un programme
- Identifier la version initiale, ses entrées, sa sortie et la règle réellement exécutée.
- Décomposer la demande : remplacer le seuil 25 par 28, puis ajouter la condition de mode actif avec ET ; conserver une version intermédiaire testable.
- Préparer un tableau entrée → résultat attendu, incluant seuil, mode inactif et retour à l’arrêt.
- Exécuter ou tracer les cas, comparer obtenu et attendu, corriger puis rejouer les cas touchés en conservant les résultats.
Exemple résolu
Exemple original de niveau brevet : la version initiale commande la marche si T > 25, sans mode. On porte d’abord le seuil à 28, puis on ajoute un mode automatique qui autorise ou interdit la commande. Prévois les tests (auto, T) = (vrai, 27), (vrai, 28), (vrai, 29), (faux, 35).
- Étape 1 : Avant modification, les quatre températures dépassent 25 ; la version initiale ne lit pas le mode : les quatre sorties sont vraies.
- Étape 2 : Étape intermédiaire, seuil 28 sans mode : les sorties sont faux, faux, vrai, vrai. Les deux premiers cas isolent l’effet du seuil.
- Étape 3 : Version finale, avec la condition de mode : les sorties sont faux, faux, vrai, faux. Le dernier cas vérifie la fonctionnalité de désactivation.
- Étape 4 : Si la sortie reste vraie en mode inactif, vérifier la condition de mode et ET ; si elle vaut vrai à 28, vérifier le signe strict.
Résultat : Les séries attendues sont vrai/vrai/vrai/vrai, puis faux/faux/vrai/vrai, puis faux/faux/vrai/faux. La version finale répond aux deux évolutions de la demande.
Piège à éviter : Valider seulement le cas à 29 °C ne teste ni l’égalité ni la conservation de la condition de mode.
À toi d'essayer
À 35 °C en mode inactif, la sortie vaut vrai. Quelle partie de la règle est probablement absente ou mal combinée ?
Coup de pouce : Ne modifie pas le seuil pour corriger un problème de mode.
Correction détaillée pas à pasDans ce chapitre : 2 corrections détaillées.
4. Interpréter les résultats sans surconclure
Un test réussi signifie que le programme a donné le résultat attendu pour les entrées et la version testées. Il ne prouve pas que tous les capteurs, actionneurs et liaisons fonctionnent dans le monde réel. Une simulation vérifie la logique ; une intégration matérielle demande d’autres observations. Il faut aussi définir le comportement pour une mesure invalide : la règle de cette leçon suppose une température numérique valide. Un projet réel devrait préciser comment signaler l’erreur et quelle réponse sûre adopter.
4. Interpréter les résultats sans surconclure
| Point de contrôle | Preuve recherchée |
|---|---|
| Entrées | T et mode sont lus avec leur sens. |
| Décision | Le signe strict et ET correspondent au contrat. |
| Répétition | Chaque cycle utilise les valeurs actuelles. |
| Sortie | Marche et arrêt sont tous deux définis. |
| Modification | Version, changement et résultats sont conservés. |
Pour réviser, refais le tableau de tests sans regarder les réponses, puis compare. Si tu te trompes au seuil, relis le signe ; si tu oublies le mode, réécris les deux conditions. Cette correction ciblée est plus efficace que relire tout le chapitre sans repérer l’erreur. Tu peux ensuite proposer une fonctionnalité supplémentaire, mais elle exige un nouveau contrat et de nouveaux tests. Par exemple, une temporisation ou deux seuils différents modifieraient le comportement : ils ne doivent pas être ajoutés silencieusement à la règle étudiée.
À retenir
- Identifier les entrées, les paramètres et les sorties avant de modifier.
- Un algorithme structure les décisions ; un programme les traduit dans un langage.
- Conditions, événements et itérations doivent utiliser des données mises à jour.
- Tester une modification exige des cas discriminants et des résultats conservés.
Fiche de révision
Contrat flash
auto ET T > seuil → marche ; tous les autres cas → arrêt.
Version modifiée
seuil 28 ; cas 27/28/29 en auto donnent faux/faux/vrai.
Test de séquence
marche puis baisse de température doit produire arrêt au cycle suivant.
La logique testée en simulation ne constitue pas une preuve du fonctionnement matériel.
Questions fréquentes
Pourquoi tester l’égalité ?
Pour distinguer strictement supérieur et supérieur ou égal, qui ne produisent pas la même sortie au seuil.
Changer un paramètre est-il une modification de programme ?
Oui si ce paramètre influence son comportement. Il faut identifier la version, l’effet attendu et les tests adaptés.
