II - Exercice UML (8 points)

II - Exercice UML (8 points). Dans les voitures modernes, la plupart des fonctions
sont pilotées par du logiciel. On s'intéresse ici au logiciel qui pilote les ...

Part of the document

II - Exercice UML (8 points)
Dans les voitures modernes, la plupart des fonctions sont pilotées par du
logiciel. On s'intéresse ici au logiciel qui pilote les essuie-glaces. À côté du volant se trouve une manette à quatre positions :
1. essuie-glace à l'arrêt ;
2. essuie-glace intermittent ;
3. essuie-glace vitesse normale ;
4. essuie-glace vitesse rapide. Pour simplifier, on supposera que la manette passe instantanément d'une des
quatre positions à n'importe quelle autre, sans s'arrêter sur les positions
intermédiaires, et qu'elle reste dans la position où le conducteur l'a
placée. En vitesse normale et en vitesse rapide, l'essuie-glace effectue des allers-
retours successifs, à la vitesse choisie, sans s'arrêter. En mode intermittent, l'essuie-glace effectue un aller-retour à vitesse
normale, s'arrête en position « fin de course », reste au repos pendant une
certaine durée, puis effectue un nouvel aller-retour, et ainsi de suite. On
représentera par une constante la durée de pause entre deux balayages. Lorsque le conducteur active l'essuie-glace, celui-ci obéit immédiatement :
si c'est un balayage intermittent qui a été demandé, l'aller-retour est
immédiat ; si c'est la vitesse lente ou rapide qui est sélectionnée, elle
est activée sans attendre. En revanche, lorsque le conducteur désactive l'essuie-glace, la commande
n'est pas toujours prise en compte instantanément : si le balayage est en
cours, l'effet de la commande est retardé jusqu'au prochain passage par la
position « fin de course. » En particulier, en mode intermittent, l'essuie-
glace termine le balayage en cours et se remet à l'arrêt. L'interface logiciel avec l'électronique de contrôle de l'essuie-glace
comporte :
1. un interface de commande, qui accepte deux commandes : démarrer le
moteur (à l'une des deux vitesses possibles), arrêter le moteur ;
2. un capteur qui signale, à chaque passage, que les essuie-glaces sont
en position « fin de course. » 1 Question 1 (1 point) Identifier les acteurs impliqués à partir de la description fonctionnelle
ci-dessus. 2 Question 2 (2 points) Dessiner les diagrammes de séquence correspondant aux deux scénarios
suivants : Scénario 1 : dépassement sur autoroute par temps de pluie :
- le conducteur sélectionne le mode « vitesse normale »
- au bout de quelques balayages, le conducteur sélectionne le mode
« vitesse rapide »
- au bout de quelques balayages, le conducteur repasse les essuie-glace à
l'arrêt. Scénario 2 : petite pluie
- le conducteur sélectionne le mode « intermittent » ;
- l'essuie-glace effectue deux allers-retours ;
- au milieu du troisième aller-retour, le conducteur demande l'arrêt des
essuie-glaces ;
- l'essuie-glace s'arrête lorsqu'il a atteint la position « fin de
course. » 3 Question 3 (3 points) Déduire des deux diagrammes précédents le diagramme d'état du logiciel qui
contrôle l'essuie-glace. 4 Question 4 (2 points) On se préoccupe maintenant de la gestion de la fonction lave-glace, dont
voici la description fonctionnelle :
- le conducteur actionne le lave-glaces en tirant (horizontalement) la
manette vers lui. Cette action est indépendante des 4 positions
(verticales) de balayage, c'est-à-dire qu'elle peut être activée pour
tous les choix de balayage (y compris l'arrêt) ;
- tant que la manette est tirée, la pompe de lave-glace envoie du liquide
sur le pare-brise. En même temps, les essuie-glaces balayent à vitesse
rapide ;
- dès que la manette est relâchée, la pompe s'arrête ;
- après l'arrêt de la pompe, les essuie-glaces effectuent encore 4
balayages complets à vitesse rapide, puis reprennent le fonctionnement
déterminé par la position de la manette. Modifier le diagramme d'état de la question 3 pour prendre en compte le
lave-glace. On pourra utiliser le pseudo-état « history » expliqué ci-
dessous 2 Annexe : le pseudo-état « history » L'activation du pseudo-état « history » permet à un super-état de se
souvenir du dernier sous-état séquentiel qui était actif avant une
transition sortante. Une transition vers l'état « history » rend à nouveau
actif le dernier sous-état actif, au lieu de ramener vers le sous-état
initial. Exemple 1 :
1. Le système se situe dans le sous-état B de l'état X ;
2. Un événement active la transition qui conduit à l'état Y ;
3. La transition sortant de Y conduit au pseudo-état « history » ;
4. Le pseudo-état « history » active à nouveau le sous-état B dans le
super-état X. Exemple 2 :
1. Le système se situe dans le sous-état C de l'état X ;
2. Un événement active la transition qui conduit à l'état Y ;
3. La transition sortant de Y conduit au pseudo-état « history » ;
4. Le pseudo-état « history » active à nouveau le sous-état C dans le
super-état X. Sur la figure, conformément à la norme UML, le pseudo-état « history » est
représenté par le symbole