Telechargé par amrouch_jridi

349

publicité
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. »
Question 1 (1 point)
Identifier les acteurs impliqués à partir de la description fonctionnelle ci-dessus.
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.
Exercice UML révision PA3
6/3/2005
Page 1
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. »
Question 3 (3 points)
Déduire des deux diagrammes précédents le diagramme d’état du logiciel qui contrôle
l’essuie-glace.
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
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.
X
A
B
Y
C
Exercice UML révision PA3
Sur la figure, conformément à la
norme UML, le pseudo-état
« history » est représenté par le
symbole
H
H
6/3/2005
Page 2
Téléchargement