Modélisation dynamique étude de cas
COMMENT REPRÉSENTER LES DIAGRAMMES D’ÉTATS ? ÉTUDE D’UN PUBLIPHONE À PIÈCES
Cette étude de cas concerne un système simplifié de Publiphone à pièces. 1. Le prix minimal d’une communication interurbaine est de 0,2 euros. 2. Après l’introduction de la monnaie, l’utilisateur a 2 minutes pour composer son numéro (ce délai est décompté par le standard3). 3. La ligne peut être libre ou occupée. 4. Le correspondant peut raccrocher le premier. 5. Le Publiphone consomme de l’argent dès que l’appelé décroche et à chaque unité de temps (UT) générée par le standard. 6. On peut ajouter des pièces à tout moment. 7. Lors du raccrochage, le solde de monnaie est rendu. À partir de ces six phrases, nous allons progressivement : 1. Identifier les acteurs et les cas d’utilisation. 3. Nous utilisons le terme « standard », mais il représente en fait le réseau téléphonique dans son ensemble. Figure 5-3. Notation plus complète du diagramme d’états. 2. Construire un diagramme de séquence système. 3. Construire le diagramme de contexte dynamique. 4. Élaborer le diagramme d’états du Publiphone. Étape 1 – Identification des acteurs et des cas d’utilisation En premier lieu, nous allons identifier les acteurs et les cas d’utilisation du Publiphone à pièces. Quelles sont les entités externes qui interagissent directement avec le Publiphone ? Si nous procédons à une analyse linguistique de l’énoncé, nous obtenons les cinq candidats suivants : utilisateur, standard, correspondant, Publiphone, appelé. Éliminons tout de suite Publiphone puisqu’il s’agit du système lui-même. En revanche, le standard est bien un acteur (non-humain) connecté directement au système. La seule difficulté concerne les acteurs humains : utilisateur, correspondant et appelé. Comme les deux derniers termes semblent être synonymes, nous pouvons garder le mot appelé et renommer, par souci de symétrie, utilisateur en appelant. Comment les acteurs utilisent-ils le Publiphone ? La seule utilisation vraiment intéressante dans notre contexte est celle de l’appelant qui téléphone à l’appelé. Le standard sert en fait d’intermédiaire entre les deux. Si nous affinons encore notre analyse, nous nous apercevons rapidement que l’appelé n’interagit pas directement avec le Publiphone : il est complètement masqué par le standard. EXERCICE 5-1. Diagramme de cas d’utilisation Dessinez le diagramme de cas d’utilisation du Publiphone à pièces. So ul tion Figure 5-4. Liste préliminaire des acteurs . Une illustration graphique de ce problème de détermination de frontière est donnée sur le diagramme de contexte statique suivant. On voit bien sur le diagramme précédent que l’appelant communique avec l’appelé par le biais de trois systèmes connectés : le Publiphone, le standard et le téléphone de l’appelé. On notera la symétrie du schéma en regard du standard, qui joue le rôle d’acteur par rapport aux deux autres systèmes de même nature. L’appelé est donc un acteur indirect par rapport au Publiphone. Nous ne le retiendrons pas pour notre diagramme de cas d’utilisation qui est finalement très simple. Étape 2 – Réalisation du diagramme de séquence système Avant de plonger dans les arcanes du diagramme d’états du Publiphone, nous allons le préparer en réalisant tout d’abord un diagramme de séquence système. Nous avons vu aux chapitres 1 et 2 l’intérêt de ce type de diagramme et les différents détails qui le concernent. Figure 5-5. Diagramme de contexte statique élargi du Publiphone Figure 5-6. Diagramme de cas d’utilisation du Publiphone. En se basant sur notre connaissance du domaine, nous allons décrire le scénario nominal de succès de communication entre un appelant et un appelé. Comme cela est expliqué aux chapitres 1 et 2, nous utilisons la convention graphique suivante : • l’acteur principal Appelant à gauche ; • une ligne de vie représentant le Publiphone au milieu ; • l’acteur secondaire Standard à droite. Notez l’utilisation de deux fragments UML 2 : • loop pour indiquer l’itération sur la phase de conversation avec le transport de la voix et le passage des unités de temps (UT) ; • opt pour indiquer la possibilité d’ajouter des pièces pendant la conversation. EXERCICE 5-2. Diagramme de séquence système Réalisez un diagramme de séquence système qui décrive le scénario nominal du cas d’utilisation TÉLÉPHONER. So ul tion Figure 5-7. Diagramme de séquence système du scénario nominal de Téléphoner .
TROISIÈME PARTIE
Nous n’avons pas représenté pour l’instant les réponses du Publiphone à l’appelant (en termes de tonalité par exemple) afin de ne pas alourdir ce premier schéma. Nous avons ajouté au diagramme précédent les activités internes importantes du Publiphone, telles que la vérification des pièces et la gestion du solde de l’appelant : • incrémentation lors de l’introduction de pièces ; • décrémentation lors du début de communication et à chaque UT.
EXERCICE
Diagramme de séquence système enrichi Enrichissez le diagramme de séquence système précédent avec des activités internes intéressantes et quelques réponses du Publiphone à l’appelant. En revanche, ne représentez plus la conversation afin de vous concentrer sur les « opérations système ». So ul tion Figure 5-8. Étape 3 – Représentation du contexte dynamique Pour parfaire la préparation du diagramme d’états, nous allons maintenant répertorier l’ensemble des messages qui sont émis et surtout ceux qui sont reçus par le Publiphone. En effet, les messages reçus vont devenir des événements qui déclenchent des transitions entre états et les messages émis vont donner lieu à des actions sur les transitions. Le diagramme de séquence système réalisé à l’étape 2 liste un certain nombre de messages. Nous visons maintenant en la matière à l’exhaustivité et à la « généricité ». Dans cette optique, nous préconisons de représenter graphiquement l’ensemble des messages échangés par le système avec ses acteurs sous la forme d’un diagramme de communication appelé diagramme de contexte dynamique4. En partant des deux diagrammes de séquence système, nous avons répertorié les messages échangés entre le système et ses acteurs. Puis nous les avons généralisés en ajoutant des paramètres quand c’était nécessaire : À retenir
REPRÉSENTATION GRAPHIQUE DU CONTEXTE DYNAMIQUE
Utilisez un diagramme de communication de la façon suivante : – le système étudié est représenté par un objeta au centre du diagramme ; – cet objet central est entouré par une instance de chaque acteur ; – un lien relie le système à chacun des acteurs ; – sur chaque lien sont répertoriés tous les messages en entrée et en sortie du système, sans numérotation. a. En réalité, UML 2 parle également de ligne de vie pour les rectangles dans le diagramme de communication… Nous continuerons à utiliser le terme d’objet pour simplifier. EXERCICE 5-4. Diagramme de contexte dynamique Réalisez le diagramme de contexte dynamique du Publiphone de la façon indiquée précédemment. 4. Comme pour le diagramme de contexte statique recommandé au chapitre 1, il ne s’agit pas d’un diagramme UML standard. Cependant, notre expérience pratique a montré qu’il était très utile sur les projets réels. So ul tion 151- 178 chap5.fm Page 161 Vendredi, 18. ao t 2006 2:18 14 Point de vue dynamique TROISIÈME PARTIE 162 • introPièce(0,2 €) devient un message paramétré : « introPiece(p) » ; • composerNumero(0562475200) devient « composerNumero(num) » ; • tonalité (libre) devient « tonalité(type) » pour prendre en compte l’occupation de la ligne, etc. Ce premier travail donne le schéma préliminaire suivant : Toutefois, prenons garde de ne pas oublier que nous sommes partis du diagramme de séquence système qui représente un scénario nominal du cas d’utilisation Téléphoner. D’autres messages peuvent être envisagés entre le Publiphone et ses acteurs : • s’il reste des pièces inutilisées quand l’appelant raccroche, le Publiphone les lui rend ; • après l’introduction de la somme minimale de 0,2 €, le Publiphone transmet un message au standard pour le décompte du délai de 2 minutes ; • si le numéro composé n’est pas valide, le standard le détecte ; • si l’appelé raccroche le premier, la fin de communication est signalée par le standard ; • plus généralement, le standard transmet l’état de la ligne au Publiphone (libre, occupée, en dérangement, etc.), et pas seulement le type de tonalité. Le diagramme de contexte dynamique est donc complété comme cela apparaît sur la figure ci-après.