Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Licence LAOSI Outils pour la modélisation des Systèmes Distribués Stéphane Tallard Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Diagrammes d’activité Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Diagramme d’activité: synchronisation, couloirs d’activité Synchronisation: permet la parallélisation des traitements Couloir: permet l’affectation des traitements à des responsables différents Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Exercice Que veut-il dire ? Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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. Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Diagramme de classe Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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/1954 adresse : 13 rue des Lilas 64100 Bayonne telephone : 06 54 64 53 45 La classe Personne qui définit les propriétés communes à tous les objets de la classe Personne Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Représentation d’une classe 1 à 4 parties : nom de la classe : obligatoire 0 ou n attributs 0 ou n opérations Présence de stéréotype le stéréotype est une marqueur permettant d’ajouter de l’information à un objet UML UML fournit ses propres stéréotypes <<class>> : implicite <<interface Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Les relations Elles sont de 3 types et traduisent : la notion d'assemblage/composition le concept de spécialisation/généralisation 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. Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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, … Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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. Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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). Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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é : 0..1 N M..N *, 0..* 1..* Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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) Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Les messages Une flèche matérialise un message synchrone un message asynchrone un 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 message Un 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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. Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Exercice : Que montre ce diagramme de séquence ? Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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) Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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. Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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. Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Diagramme d’état-transition Etat à 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 Evénement 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 Transition connexion unidirectionnelle reliant 2 états assure le passage d’un état à l’autre est supposée instantanée Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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) Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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ème garde (guard) : expression logique qui conditionne le départ d’un état action : action exécutée lors du franchissement de la transition Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Evénement Il traduit l’arrivée de quelque chose Types 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 LAOSI Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS Exercice Qu’est ce que ce diagramme signifie ? Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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. Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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. Outils pour la modélisation des systèmes distribués
Outils pour la modélisation des systèmes distribués Master 1 - SIGLIS 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 Outils pour la modélisation des systèmes distribués