440 likes | 628 Views
Licence LAOSI. Outils pour la modélisation des Systèmes Distribués Stéphane Tallard. 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:
E N D
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
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
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
Diagrammes d’activité Outils 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 Outils 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 Outils 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 Outils pour la modélisation des systèmes distribués
Exercice Que veut-il dire ? Outils 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. Outils 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 Outils 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 Outils pour la modélisation des systèmes distribués
Diagramme de classe Outils 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/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
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
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
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
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
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
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 • 0..1 • N • M..N • *, 0..* • 1..* Outils 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 Outils 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 Outils 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) Outils 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 Outils pour la modélisation des systèmes distribués
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
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
Exercice : Que montre ce diagramme de séquence ? Outils 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 Outils 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 Outils 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) Outils 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. Outils 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 Outils 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. Outils pour la modélisation des systèmes distribués
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
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
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
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
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
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
Exercice Qu’est ce que ce diagramme signifie ? Outils 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. Outils 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 Outils 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. Outils 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 Outils pour la modélisation des systèmes distribués