1
Licence LAOSI
Outils pour la modélisation des Systèmes DistribuésStéphane Tallard
Outils pour la modélisation des systèmes distribués
2Outils pour la modélisation des systèmes distribués
Objectif de ce cours
• Ce cours décrit un sous ensemble de UML adapté à la modélisation de systèmes distribués •A la fin de la session, vous devez être capable de:
• Modéliser un problème concernant un système distribué
• Utiliser• Les diagrammes de séquence• Les diagrammes d’activité• Les diagrammes d’états-transition
• Utiliser un outil UML : Argo UML
3Outils pour la modélisation des systèmes distribués
Plan du cours
Les diagrammes d’activités
Les diagrammes de classe
Les diagrammes de séquence
Les diagrammes de communication
Les diagrammes d’état
Synthèse
4Outils pour la modélisation des systèmes distribués
Diagrammes d’activité
5Outils pour la modélisation des systèmes distribués
Diagramme d’activité: Transitions et nœuds d’action
Etat final – Etat initial l’état initial est le point de départ de la lecture du
diagramme, L’état final identifie la fin du diagramme un seul état initial et au moins un état final par
diagramme
Activité Une activité représente une exécution d'un
mécanisme, un déroulement d'étapes séquentielles. une transition représente un passage d’une activité à
la suivante. Une activité peut être détaillée dans un autre
diagramme d’activités
Nœud Conditionnel un nœud conditionnel permet de définir plusieurs
possibilités de fonctionnement
6Outils pour la modélisation des systèmes distribués
Diagramme d’activité: synchronisation, couloirs d’activité
• Synchronisation: permet la parallélisation des traitements
• Couloir: permet l’affectation des traitements à des responsables différents
Machine à caféServeur
Préparer un verre
Doser le sucre Doser le café
Verser les ingrédients
Lancer la machine à café
Préparer les croissants
7Outils pour la modélisation des systèmes distribués
Diagrammes d’activités: Flot d’objets
Un flot d’objets permet de passer des données d’une activité à une autre Le flot d’objet permet de noter le changement d’état d’un objet
8Outils pour la modélisation des systèmes distribués
Exercice
Que veut-il dire ?
9Outils pour la modélisation des systèmes distribués
Exercice: Utilisation d’un téléphone portable
Un fabricant de téléphone portable souhaite réécrire ses spécifications en utilisant UML. Traduisez le texte suivant en diagramme d’activité.
Pour utiliser le téléphone il faut d’abord le sortir de sa housse puis l’ouvrir. L’utilisateur compose ensuite le numéro. Lorsque son correspondant décroche il peut engager la conversation. Si le forfait arrive à expiration, la communication est coupée. Sinon l’utilisateur raccroche en fin de communication.
10Outils pour la modélisation des systèmes distribués
Plan du cours
Les diagrammes d’activités
Les diagrammes de classe
Les diagrammes de séquence
Les diagrammes de communication
Les diagrammes d’état
Synthèse
11Outils pour la modélisation des systèmes distribués
Les diagrammes de classe
Un élément essentiel (mais ce n'est pas le seul) de l'approche orientée-objet
Dans ce cours on ne détaillera pas les diagrammes de classe: dans les systèmes distribués on s’intéresse surtout à la dynamique du système
Expriment l'aspect structurel/statique d'un système en termes de classes Relations
Offrent également les interfaces - comment on voit/utilise le système modélisé les paquetages - comment on peut abstraire le système en (macro)
composants
12Outils pour la modélisation des systèmes distribués
Diagramme de classe
13Outils pour la modélisation des systèmes distribués
Les classes et les objets
Un objet : un état : la valeur de ses attributes un comportement : ses méthodes
Une classe : un moule pour la création des objets
Exemple : une personne
L’objet « Jean Valjean » défini par la valeur de ses attributs
prénom : Jean nom : Valjean dateNaissance : 10/05/1954adresse : 13 rue des Lilas
64100 Bayonnetelephone : 06 54 64 53 45
La classe Personne qui définit les propriétés communes à tous les objets de la classe Personne
14Outils pour la modélisation des systèmes distribués
Représentation d’une classe
1 à 4 parties : o nom de la classe : obligatoireo 0 ou n attributso 0 ou n opérations
Présence de stéréotypeo le stéréotype est une marqueur permettant
d’ajouter de l’information à un objet UML o UML fournit ses propres stéréotypes
o <<class>> : impliciteo <<interface
15Outils pour la modélisation des systèmes distribués
Les relations
Elles sont de 3 types et traduisent :o la notion d'assemblage/compositiono le concept de spécialisation/généralisationo l'association entre une classe ou plusieurs classes
Elles représentent des liens statiques/structurels entre objets et à longue durée de vie
NB : les associations ne sont en général pas directement supportées par les langages de programmation orienté-objet.
16Outils pour la modélisation des systèmes distribués
Aggrégation / composition
Relation non symétrique
Agrégat/agrégé : Si je détruis l’objet origine, je ne détruis pas le ou les objets destination
Ex: Si je détruis l’équipe de basket, je ne détruis pas les joueurs de l’équipe (qui vont aller jouer dans une autre équipe)
Composite/composant : Si je détruis l’objet origine, je dois détruire les objets destination
Ex: Si je détruis la voiture, je dois détruire tous ses composants : Roues, Pneus, moteur, …
17Outils pour la modélisation des systèmes distribués
Généralisation/Spécialisation
Relation de classification entre un élément plus général et des éléments spécialisés
L'élément spécialisé hérite des attributs et des opérations et des relations et des contraintes de l'élément dont il est la spécialisation Eviter les profondeurs trop importantes (> 4)
L'élément spécialisé peut avoir ses propres attributs, opérations, relations
On peut faire de l’héritage multiple : A éviter
B hérite de A si dans tout contexte ou l’on utilise A on peut remplacer A par B
Une méthode qui prend en paramètre un objet de type A peut aussi traiter un objet de type B.
18Outils pour la modélisation des systèmes distribués
Diagrammes de classes lors des phases d’analyse
En phase d'analyse métier, seules des classes métier doivent être identifiées (opérations métier, attributs métier et associations métier).
La recherche de classes, attributs, opérations et associations est guidée par la réponse au besoin :
expliciter les diagrammes de séquence correspondant aux cas d'utilisation recensés
Les paquetages permettent d'organiser l'analyse en domaines métier.
La notion de visibilité est absente: en analyse, toutes les propriétés sont publiques (potentiellement visibles par l'utilisateur du système).
La notion d'interface est absente (utilisées en architecture et conception uniquement).
19Outils pour la modélisation des systèmes distribués
Association et classe d’association
Représente une propriété statique (se convaincre avec un diagramme d'instances)
Lie une ou plusieurs classes : arité 2 ou plus
Toute association doit être nommée par un verbe d'état ou comporter des rôles aux extrémités
Toute association peut être navigable
Multiplicité :o 0o 0..1o No M..No *, 0..*o 1..*
20Outils pour la modélisation des systèmes distribués
Remarque sur les associations
Ne prendre en compte que des associations binaires ! Si ce n'est pas possible, il faut privilégier les classes associations
Le nommage est indispensable quand il y a plusieurs associations entre 2 classes.
Noter les contraintes : Sous-ensemble, et/ou, etc.{ordonné}, ...
Attention à ne prendre pour associations que des relations dont le libellé représente un verbe d'état
21Outils pour la modélisation des systèmes distribués
Plan du cours
Les diagrammes d’activités
Les diagrammes de classe
Les diagrammes de séquence
Les diagrammes de communication
Les diagrammes d’état
Synthèse
22Outils pour la modélisation des systèmes distribués
Diagramme de séquences: Les concepts
Sens de lecture :
• vertical : représente la ligne de vie des objets et les périodes d'activité des objets
• horizontal: représente l'enchaînement des messages entre 1 objet émetteur et 1 ou plus objet(s) récepteur(s)
23Outils pour la modélisation des systèmes distribués
Les objets et les exécutions
•définit un des objets manipulés par le système.
•un objet peut être anonyme (sans nom). Il représente alors un instance arbitraire de la classe.
•La ligne pointillée détermine la durée de vie de l’objet
•Il est possible d’indiquer la création d’un objet en faisant arriver un message sur le rectangle décrivant l’objet
•Une exécution est matérialisée par un rectangle sur la ligne de vie. C’est la durée où l’objet est actif (le système est occupé par le traitement de cet objet).
•l’objet doit être contenu dans le système
•le contexte de l’objet (la valeur des attributs) doit être défini si il a un impact sur la réaction de l’objet dans le diagramme de séquence
24Outils pour la modélisation des systèmes distribués
Les messages
Une flèche matérialiseun message synchrone un message asynchroneun flux de contrôle (réponse)
Le message indique un transfert de contrôle ou d’information entre deux objets.un message peut renvoyer sur l’objet qui l’a généré (cas de l’appel interne d’une des méthodes de l’objet).
Pas d’exécution sans messageUn message doit être nomméLorsque l’émetteur envoie un message, il doit attendre la réponse: la durée de l’exécution de l’émetteur est supérieure à celle du récepteur
25Outils pour la modélisation des systèmes distribués
Diagrammes de séquence: fragments combinés
Permettent d’introduire des structures de contrôle : opt, break, loop, par, alt, neg, seq, strict, critical
Rend les schémas illisibles
Préférer les Diagrammes d’activités Utiliser les diagrammes de séquence pour trouver les classes et leurs méthodes.
26Outils pour la modélisation des systèmes distribués
Exercice : Que montre ce diagramme de séquence ?
: Utilisateur : Téléphone
: Réseau GSM
numéroter( )
lancerAppel( )
lancerAppel
appelObtenuenvoyerSonnerie
27Outils pour la modélisation des systèmes distribués
Exercice : Téléphone portable
•Cette fois votre client souhaite que vous lui modélisiez la spécification d’appel en utilisant le répertoire :
•Le téléphone comporte deux modules. Un pour l’appel et un pour la gestion du répertoire. L’utilisateur commence par accéder au répertoire et sélectionne la fiche d’un de ses correspondants. Il déclenche alors l’appel. Si la fiche comporte plusieurs numéros un menu lui propose de choisir le numéro à appeler. Ceci fait, le module d’appel est mis en œuvre pour effectuer la communication
28Outils pour la modélisation des systèmes distribués
Plan du cours
Les diagrammes d’activités
Les diagrammes de classe
Les diagrammes de séquence
Les diagrammes de communication
Les diagrammes d’état
Synthèse
29Outils pour la modélisation des systèmes distribués
Les diagrammes de communication : vue globale
Ce sont des diagrammes équivalents aux diagrammes de séquence, mais avec une vue différente (vue du dessus)
30Outils pour la modélisation des systèmes distribués
Exercice: Modélisation d’un téléphone portable
Le client désire comprendre comment les éléments de votre système vont être connectés. Vous décidez donc de traduire le cahier des charges suivant en diagramme de classes :
Le système du téléphone comporte un gestionnaire de fonctions. C’est lui qui contient les différentes fonctions ( contrôleur d’appels, répertoire, éditeur SMS et calculatrice) et assure la navigation dans les menus. Les différentes fonctions offrent un comportement identique. Le répertoire contient des fiches contact comportant un nom et un numéro de téléphone. Il est possible d’en stocker 200 dans la carte mémoire. L’éditeur SMS contient des SMS formalisés par un numéro de téléphone et un texte. Le contrôleur d’appel stocke les appels émis et reçus sous forme d’une date d’appel et d’un numéro.
31Outils pour la modélisation des systèmes distribués
Plan du cours
Les diagrammes d’activités
Les diagrammes de classe
Les diagrammes de séquence
Les diagrammes de communication
Les diagrammes d’état
Synthèse
32Outils pour la modélisation des systèmes distribués
Diagramme d’états-transition
Un système peut être représenté
par un ensemble d’états « éteint » / « allumé » « quart de finale » / « demi finale » /
« finale » / « éliminé »
par des évènements qui font passer le système d’un état à un autre
« éteindre » / « allumer » « gagner » / « perdre »
Un diagramme d’états-transition a pour but de représenter ces aspects dynamiques.
33Outils pour la modélisation des systèmes distribués
Diagramme d’état-transition
à tout instant un état représente l’ensemble des valeurs des attributs et des liens avec les autres objets
un état est caractérisé par une durée, i.e. une certaine stabilité dans le temps
connexion unidirectionnelle reliant 2 états
assure le passage d’un état à l’autre
est supposée instantanée
occurrence de quelque chose qui arrive à un instant inconnu ou connu (interruption, envoi de message, …)
peut être porteur d’informations
l’événement est le déclencheur d’une transition
Etat
Evénement
Transition
34Outils pour la modélisation des systèmes distribués
Etat
Un état est toujours nommé
Il comporte :
des actions d’entrée
des actions de sortie
des activités
des inclusions de sous-états
Etats particuliers :état initial (forcément unique)état final (0, 1 ou plusieurs)
35Outils pour la modélisation des systèmes distribués
Les transitions
Une transition est une relation entre un état source et un état cible. Une transition est déclenchée par un objet en réaction à un événement et conduit à un changement d’état.
Syntaxe : évènement[garde]/action
évènement (trigger) : événement externe déclenchant une réaction du systèmegarde (guard) : expression logique qui conditionne le départ d’un étataction : action exécutée lors du franchissement de la transition
36Outils pour la modélisation des systèmes distribués
Evénement
Il traduit l’arrivée de quelque choseTypes d’événement :
<<signal>> : signal asynchrone<<crée>>, <<détruit>>, … : appel<<top>> : signal synchrone - fin de délai, top horloge, …
événement instantané : pas de label - correspond à la fin de l’activité dans l’état de départ
Sémantique des événements : à l'arrivée d'un événement prévu, on quitte l'état, que l'activité soit achevée
37Outils pour la modélisation des systèmes distribués
Compléments sur diagrammes d’état-transition
La maîtrise de la complexité des diagrammes états-transitions passe par l’utilisation d’états composites (état englobant)
Les sous-états concurrents permettent de représenter la notion de concurrence
Les états historiques permettent de conserver l’historique en tant qu’états, et donc d’y revenir
38
Actions
• On peut introduire des actions sur les états ou sur les transitions : • entry / action: action exécutée à l'entrée de l'état
• exit / action: action exécutée à la sortie de l'état
• on événement / action : action exécutée à chaque fois que l'événement cité survient
• do / action: action récurrente ou significative, exécutée dans l'état
Sur le do : on ne refait pas les actions entry et exit
Licence LAOSIOutils pour la modélisation des systèmes
distribués
39Outils pour la modélisation des systèmes distribués
Exercice
Qu’est ce que ce diagramme signifie ?
40Outils pour la modélisation des systèmes distribués
Exercice : Le téléphone portable
Une partie du cahier des charge du téléphone portable est compliquée et
gagnerait à être traduite en diagramme d’état transition :
Pour utiliser le téléphone il faut passer du mode veille au mode actif en
cliquant sur le bouton on. Le mode appel permet de communiquer
vocalement. On y accède en composant un numéro de téléphone et on le
quitte en appuyant sur le bouton de fin de communication. On peut passer
en mode gestion des SMS en appuyant sur la flèche gauche. Et on le quitte
en appuyant sur Ok. Si un appel survient durant l’écriture d’un SMS le SMS
est stocké et le téléphone passe en mode appel. De plus le téléphone
interroge en permanence le réseau afin de déterminer si il doit émettre
avec une puissance de signal forte ou faible.
41Outils pour la modélisation des systèmes distribués
Plan du cours
Les diagrammes d’activités
Les diagrammes de classe
Les diagrammes de séquence
Les diagrammes de communication
Les diagrammes d’état
Synthèse
42Outils pour la modélisation des systèmes distribués
Utilisation des diagrammes
• La règle : « chaque projet a ses particularités »
• La richesse d’UML c’est d’être adaptable
• C’est aux utilisateurs d’UML d’adapter le langage de modélisation pour résoudre le problème posé
• Pensez pratique :
• N’utilisez pas les constructions trop complexes ou incompréhensibles
• Définissez vous votre propre langage UML : un sous ensemble d’UML adapté au domaine
• Unifiez : faites en sorte que tous les membres d’une équipe parlent le même langage.
43Outils pour la modélisation des systèmes distribués
Utilisation des diagrammes
•Définir les processus métier en utilisant des diagrammes d’activité
• Utiliser les diagrammes d’activité plutôt pour modéliser des règles métiers complexes
• Utiliser les diagrammes de séquence pour trouver les classes et leurs méthodes
• Modéliser les scénariis nominaux et les cas particuliers