Vous êtes sur la page 1sur 9

ISEIG -2021 préparé par Patrick Mballa

Correction TD Génie Logiciel – Semaine 12

DET - Générique

Soit A et B, deux diagrammes d’états, l’un avec un état composite (B) et l’autre sans (A)

Diagramme d’états A Diagramme d’états B

Question : Montrer que les deux diagrammes ci -dessus ne sont pas équivalents en trouvant une
séquence d’événements qui n’amène pas dans le même état en A et en B. On supposera que les
séquences débutent à l’état initial.

Correction

Il faut bien remarquer que l’état initial est à l’intérieur de l’état composite C. Par conséquent à
chaque fois qu’on entre dans l’état C (comme c’est le cas avec la transition x), on passe par l’état
initial.

Ainsi, la séquence d’évènements a, z, x amènera à l’état T dans le cas A alors qu’on sera dans l’état
initial dans le cas B.

Diagrammes de classes et DET - Montre

Enoncé : On considère une montre digitale simplifiée:

1/9
ISEIG -2021 préparé par Patrick Mballa

A 17:35:22 B
Bouton Bouton

1. Sur la figure, l’état courant est l’état Affichage Heure.


2. Quand on appuie une fois sur le bouton A (bouton Mode), la montre passe en mode
modification de l'heure. Chaque pression sur le bouton B (bouton Avance) incrémente
l’heure d’une unité;
3. Quand on appuie une nouvelle fois sur le bouton A, la montre passe en mode modification
des minutes. Chaque pression sur le bouton B incrémente les minutes d’une unité.
4. quand on appuie une nouvelle fois sur le bouton A, la montre repasse en mode Affichage.
5. Pour régler l’heure de l’alarme, il faut exercer une double pression (à l’instar d’un double-
clic sur une souris) sur le bouton A.
6. La montre s’arrête lorsque l’énergie ne parvient plus à la montre (« batteries (piles) trop
faible », « batteries retirées », …).

Questions

a. Réaliser un diagramme de classes représentant une vue détaillée (attribut et fonctions) des classes
nécessaires à l’analyse de cette description.
b. Réaliser un Diagramme d’états correspondant aux spécifications 1 à 4 ci-dessus, sans oublier les
actions accompagnant certaines des transitions. On laisse de coté dans un premier temps le réglage
de l’alarme ainsi que l’état final provoqué par l’événement « plus d’énergie».
c. Expliquer pourquoi le réglage de l’alarme introduit un non-déterminisme dans le comportement
de l’interface utilisateur de la montre. Montrer comment ré-introduire un comportement
déterministe en ajoutant un état supplémentaire non précisé dans l’énoncé.
d. Ajouter autant de transitions que nécessaire aux états pour représenter le passage dans l’état
final. Quelle astuce du formalisme du diagramme d’états pourrait-on utiliser pour alléger la
représentation.

Correction

a)

2/9
ISEIG -2021 préparé par Patrick Mballa

Bouton

Signal
Horloge
-heure <<description>>
-minute classe stéréotypée
-seconde <<signal>>
+incrementer_heure() représentative de l'appui
Signal_A Signal_B +incrementer_minute() sur le bouton A ou B
+incrementer_seconde()
+afficher_heure()
+afficher_minute()
+afficher_seconde()
+raz_heure()
+raz_minute()
+raz_seconde()
Reveil
Pile -heure
-niveau_energie
-minute
+regler_sonnerie()
+sonner()

b)

On pourrait aussi faire pointer la transition des l’état initial directement sur « régler heure » ?

Rappel :
A ou B désigne le signal A ou signal provoqué par un et un seul appui sur la touche A ou B
(respectivement).
Remarque :
Il y a une différence entre :
after(60s) : evt temporel
when(m=60) : evt modifiant
Il n’y a pas « d’état final ». On pourrait ajouter un tel état provoqué par l’événement « batterie trop
faible ».

Dans un état, on a « entry » pour spécifier ce qui se déclenche lorsqu’on entre dans l’état et on a
« exit » pour spécifier ce qui se déclenche lorsqu’on quitte l’état. Dans le cadre d’une auto-
transition, ça déclenche les deux événements.

3/9
ISEIG -2021 préparé par Patrick Mballa

c) Ajouter un état « Micro-Horloge » qui compte 0.5 seconde par exemple, avant de considérer que
l’utilisateur ne souhaitait pas effectuer de double clic. Ainsi, sera interprété comme double-clic la
succession de deux appuis sur la touche A en moins de 0.5 seconde.

Pour factoriser le réglage des heures et minutes, deux états transitoires ont été créés :
« Mode Horloge (timer) » et « Mode Alarme » : ces deux derniers fixent un attribut « Mode » (que
l’on peut ajouter à la classe « Montre », voir V1.1 du diagramme de classes) de façon à ce que les
fonctions incrementer_heure et incrementer_minute sache si l’incrément s’applique à l’heure de
l’horloge ou l’heure de l’alarme lorsqu’ils sont déclenchés dans les états « Réglage_H » et «
Réglage_M »

when(h=24)/raz_heure()

after(60s)/incrementer_minute() Affichage_HM
/afficher_heure() ; afficher_minute()

A
Micro-horloge
when (m=60)/incrementer_heure() ; raz_minute()
A
Mode alarme
after ( 0.1 seconde )

after ( 0.5 seconde )


Réglage_H Réglage_M
after ( 0.1 seconde ) A
A

Mode horloge
B/incrementer_heure() B/incrementer_minute()

Signal_A Signal_B
Montre

heure : undefined
minute : undefined
mode : undefined <<description>>
incrementer_heure() classe stéréotypée
incrementer_minute()
<<signal>>
représentative de
afficher_heure()
<<comment>> l’appui sur le
afficher_minute() Nouvel attribut bouton A ou B
raz_minute() pour gérer le
raz_heure() mode alarme
fixer_mode()
obtenir_mode()

<<comment>>
Pour accéder au
nouvel attribut

d) Utiliser le formalisme de l’état composite. Cela signifie que quel que soit l’état en cours à
l’intérieur de « Nominal », le signal « Energie trop faible » provoque la transition vers l’état final.

4/9
ISEIG -2021 préparé par Patrick Mballa

insérer_batteries

Nominal

Affichage_HM
/afficher_heure() ; afficher_minute()

Réglage_H Réglage_M

énergie_trop_faible

DET - Publiphone

Enoncé : L’objectif est de réaliser une application qui simule le comportement d’un Publiphone à
Pièces sur un système d’exploitation classique à partir de quelques périphériques standard dans la
micro-informatique: microphone, haut-parleur, lecteur de carte bancaire type Moneo.

Pour débuter ce projet, on part de l’existant en analysant un système simplifié de Publiphone à


pièces :
1. Le prix minimal d’une communication interurbaine est de 0.3 Euro TTC.
2. Après l’introduction de la monnaie, l’utilisateur a 2 minutes pour composer son numéro du
correspondant (ce délai est décompté).
3. La ligne appelée peut être libre ou occupée.
4. Le correspondant peut raccrocher le premier.
5. Le Publiphone consomme de l’argent dès que le correspondant décroche, et à chaque unité
de temps (U.T.) engendrée par le standard.
6. On peut ajouter des pièces à tout moment.
7. Lors du raccrochage, le solde de monnaie est rendu.

Questions :
1. Dessiner le Diagramme des Cas d’utilisation du Publiphone à pièces.
2. Réaliser un Diagramme (préliminaire) de séquence système qui décrive le Scénario nominal du
cas d’utilisation: Téléphoner.
3. Réaliser un premier Diagramme d’états qui décrive le comportement nominal du Publiphone,
d’après le diagramme de séquence système.
4. Sur le Diagramme d’états précédent, comment représenter le fait que l’appelant peut raccrocher à
tout moment, et pas seulement dans l’état Conversation ?

5/9
ISEIG -2021 préparé par Patrick Mballa

Correction DET - Publiphone

0. Recensement des évènements et états

Type d’événement Liste


Signal Mise sous tension de l’appareil
Correspondant raccroche
Monnaie introduite
Numéro du correspondant composé
Utilisateur décroche
Utilisateur raccroche
Temporel Délai de 2 minutes
Opération Aucun
Modifiant Prix minimal atteint

Etats du téléphone :
- Point d’entrée (état initial)
- Point de sortie (état final)
- Attente décrochage (au repos)
- Attente pièces
- Attente numérotation
- Composition du numéro

1:
Décrocher

<<include>>
Composer

<<include>>

Téléphoner
Phone Guy
<<include>> Payer

<<include>>

Raccrocher

Ou bien :

6/9
ISEIG -2021 préparé par Patrick Mballa

administrateur

EXU1410

mettre sous tension

utilisateur mettre hors tension

reseau_telephonique

téléphoner

systeme_de_paiement

NB : Sur le diagramme ci-dessous, l’encadrement en pointillé désigne l’état composite.

2 : Exemple de DSS

PhoneGuy PubliPhone

décrochage

tonalité 1

monnaie

composition

tonalité 2

communication

débit

racrochage

NB : on pourrait aussi ajouter une colonne destinataire

7/9
ISEIG -2021 préparé par Patrick Mballa

Le_Telephone_Du_Bar:systeme

Robert:utilisateur Le_Gestionnaire_de_pieces:systeme_de_paiement Le_Reseau_Tilicom:reseau_telephonique

decrocher

introduire_pieces
<<comment>>
le correspondant
composer_numero décroche

etablir_communication

envoyer_unite
consommer_unite

raccrocher

terminer_communication

rendre_monnaie

3:DET

8/9
ISEIG -2021 préparé par Patrick Mballa

[mise sous tension ] [Arrêt tension]


Rendre monnaie

Attente décrochage
[raccrochage
utilisateur]

[combiné décroché]

Attente pièces

[prix minimum atteint]


Point d’entrée
de l’état
composite

Attente numérotation

[numéro composé] [après 2 min]

Composition numéro

[ligne occupée]
[ligne libre]

Tonalité occupée
Tonalité jouée

[correspondant décroche] [Correspondant absent]


Point de sortie
de l’état
composite
Consommer argent

[U.T.]
[Raccrochage correspondant]

Conversation en cours

[ajout]

Acceptation
pièces

4 : par le super-état (état composite)

9/9

Vous aimerez peut-être aussi