UML 2 version 2 0 du 21 novembre
UML 2 version 2. 0 du 21 novembre 2009 UML (2) Rappel sur le modèle statique : classe / objet Modèle dynamique • les diagrammes état - transition • les diagrammes de séquences IHM (sous Windows, HTML) Extension du modèle de classes : le concept de généralisation/spécialisation. Héritage. Polymorphisme. Implantation de l’héritage en relationnel (SGBD) Liens entre modèles statique et dynamique : Cohérence du modèle 1 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Exemples : Quelques diagrammes Système (VEGA 2) Cas d’utilisation une fonctionnalité attendue du système (VEGA 2) par les différents acteurs. Diagramme de Classes : acteur (intéragissant avec VEGA 2) message Diagramme de séquence Chaque cas d'utilisation apparaît comme un scénario, décrit par un ou plusieurs diagrammes de séquence. 2 Michel Tollenaere Un diagramme de séquences montre les interactions entre les acteurs et le système selon un point de vue temporel pour accomplir une fonctionnalité attendue du système (un cas d ’utilisation). C’est une ensemble de messages échangés entre les acteurs et le système, ordonnés chronologiquement. U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Modèle Statique (rappels) • Diagramme de classes • Diagramme d’objets 3 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Gestion des commandes client (diagramme de classes 1) client nom prénom adresse téléphone code postal 1 Passe une> Passe commande () paie commande (cmd) 0. . * commande article num date adresse livraison code désignation prix-U rayon ss-rayon Calcul. Montant () ajout article modifier () paye * comporte> Ligne-Cmd quantité 4 Michel Tollenaere U. M. L. partie 2 1. . *
UML 2 version 2. 0 du 21 novembre 2009 Gestion des commandes client (diagramme de classes et d’objets) client article commande 1 Passe une> comporte> 0. . * 1. . * * Ligne-Cmd Photosmart 500 : article 1: lignecmd CMD 003 : commande 2: lignecmd CMD 007 : commande Pierre Dupond : client Michel Tollenaere 1: lignecmd CMD 015 : commande Jacky Durand : client 5 RAM 512 MO : article U. M. L. partie 2 Hervé Latour : client 1: lignecmd Compaq tablet. PC : article Dell Lat 400 : article Toshiba SD 300 : article
UML 2 version 2. 0 du 21 novembre 2009 Gestion des commandes client (diagramme de classes et d’objets) e m client m a r se g a s Di cla de Classe commande 1 Passe une> 0. . * Association article comporte> 1. . * * Ligne-Cmd Conceptualise e m m a r ts CMD 003 g : commande a e Di ’obj d Pierre Dupond Objet : client Michel Tollenaere U. M. L. partie 2 RAM 512 MO : article 1: lignecmd 2: lignecmd CMD 007 : commande Lien Jacky Durand : client 6 Illustre Photosmart 50 0 : article 1: lignecmd CMD 015 : commande Hervé Latour : client 1: lignecmd Compaq tablet. PC : article Dell Lat 400 : article Toshiba SD 300 : article
UML 2 version 2. 0 du 21 novembre 2009 Gestion des commandes client (diagramme de classes 2) client nom prénom adresse téléphone code postal 1 Passe une> Passe commande () paie commande (cmd) 0. . * commande article num date adresse livraison code désignation prix-U Calcul. Montant () ajout article modifier () paye * comporte> 1. . * rayon ss-rayon Ligne-Cmd quantité On peut affiner le modèle au niveau de l’implantation des articles (très utile pour définir les tournées de constitution des commandes) 7 Michel Tollenaere U. M. L. partie 2 Ne respecte pas les formes normales
UML 2 version 2. 0 du 21 novembre 2009 Gestion des commandes client (diagramme de classes 2) client nom prénom adresse téléphone code postal 1 0. . * commande article num date adresse livraison code désignation prix-U * comporte> 1. . * rayon ss-rayon Passe une> Calcul. Montant () Faut il définir l’appartenance du ajout article modifier sous ? ? () Passe commande () rayon au rayon paye paie commande (cmd) Ligne-Cmd comporte * quantité Sous rayon Rayon emplacement 1 contient> Implantation Rôle dans l’association 8 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Gestion des commandes client (diagramme de classes 2) article code désignation prix-U rayon ss-rayon Partage de propriétés et de comportements Rayon Sous rayon Nom emplacement 1 9 Michel Tollenaere comporte * U. M. L. partie 2 * Rayon emplacement nom 1 contient> Implantation
UML 2 version 2. 0 du 21 novembre 2009 Gestion des commandes client (diagramme de classes 2) article Implantation code désignation prix-U Nom emplacement Généralisation Héritage de propriétés Rayon 1 Michel Tollenaere comporte * Sous rayon Nom emplacement 10 rayon ss-rayon U. M. L. partie 2 * Rayon emplacement nom 1 contient> Implantation
UML 2 version 2. 0 du 21 novembre 2009 Gestion des commandes client (diagramme de classes 1) client nom prénom adresse téléphone code postal 1 Passe une> Passe commande () paie commande (cmd) Comportement des objets 0. . * commande article num date adresse livraison code désignation prix-U rayon ss-rayon Calcul. Montant () ajout article modifier () paye Quand peut on ajouter un article ? Etat des commandes ? * comporte> Ligne-Cmd quantité Nécessité de définir et spécifier un modèle dynamique 11 Michel Tollenaere U. M. L. partie 2 1. . *
UML 2 version 2. 0 du 21 novembre 2009 Modèle Dynamique • Diagramme d’état-transition • Diagramme de séquences 12 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Diagramme d’états-Transition Description des séquences possibles d’états et d’actions par lesquels un objet peut passer tout au long de sa vie. Ces séquences résultent de sa réaction à des événements discrets. Eléments du diagramme : • état : situation d’un objet à un moment donné • transition : connexion entre deux états, permettant le passage d’un état à l’autre 13 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Diagramme d’état-transition • événement : occurrence d’une situation donnée dans le domaine du système qui déclenche la transition • garde : condition booléenne qui valide ou non le déclenchement d’une transition lors de l’occurrence d’un événement (cas de plusieurs transitions exclusives déclenchées par le même événement) • action : opération exécutée pendant que l’objet est dans un état donné ou lorsque une transition est déclenchée (correspondant à des opérations déclarées dans la classe de l’objet destinataire). Une action d’un état est dite « activité » quand l’opération associée a un temps d’exécution négligeable (do : nom_opération) (exemple notification) 14 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Diagramme d’état-transition de la classe « commande » commande En préparation do / ajout article état initial Pas de confirmation client après 1 mois état final 15 Michel Tollenaere U. M. L. partie 2 Confirmation client [Si solvable] num date adresse livraison Confirmée Calcul. Montant () ajout article modifier () paye do / préparer livraison Livraison effectuée Livrée do / attente paiement effectué Payée 10 ans après paiement état final
Une implémentation dans MS-Access UML 2 version 2. 0 du 21 novembre 2009 un attribut « Etat » de type « liste déroulante » dont le contenu correspond aux valeurs des états du diagramme 16 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Une meilleure implémentation dans MS-Access 17 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Une meilleure implémentation dans MS-Access 18 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Diagramme d’état-transition Exemple personne nom prénom age adresse téléphone code postal En activité société est * employée 0. . 1 par> n° SIREN Perte nom d. C. A. ’emploi Implantation Plus de 60 ans do: travailler Au chômage Diagramme de classes A la retraite Embauche Plus de 60 ans Diagramme d ’états-transitions Les personnes ne possèdent pas toutes un emploi et se trouvent, à un moment donné, dans un des états suivants : en activité, au chômage, à la retraite L’état d ’une personne donnée est déterminé selon son âge et la présence ou non d’un lien vers une société. 19 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Diagramme d’état-transition Une classe peut posséder plusieurs diagrammes d’état (selon le point de vue examiné). Exemple, pour une personne, • l’état matrimonial et • l’état professionnel. Les diagrammes d’état-transition peuvent être imbriqués et hiérarchisés. Exemple : pour une machine, (cf photocopieuse, imprimante) commandée, livrée, qualifiée, en service, en maintenance, au rebut, en service est détaillée par les différents éléments du cycle de fonctionnement 20 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Diagramme de Séquences Niveau 1 : diagramme de séquences fonctionnel = = interactions acteur(s) – système dans le cadre d’un use case Niveau 2 : diagramme de séquences technique = = interactions acteur – IHM - objets système ou objets système/ objets système dans le cadre d’un use case Pour chaque cas d’utilisation, un ou plusieurs scénario peut être détaillé chacun par un diagramme de séquences. Diagramme de séquence : exprime la séquence des interactions entre objets du système selon un point de vue temporel, pour réaliser le cas d’utilisation. 21 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Diagramme de Séquences (principes généraux) Objet 1 Objet 2 1 : [condition A] message 2 : message synchrone 3 : message de création Evénement / Communication entre objets 5 : message 4 : message 6 : [condition B] message 7 : message réflexif Période d’activité de l’objet : ligne de vie 22 Michel Tollenaere 9 : message asynchrone U. M. L. partie 2 8 : message de destruction Objet 3
Diagramme de Séquences (principes généraux) Objet 1 1 : [condition A] message UML 2 version 2. 0 du 21 novembre 2009 Objet 2 2 : message synchrone 3 : message de création 5: message Objet 3 4: message 6 : [condition B] message 9 : message asynchrone 7 : message réflexif 8 : message de destruction message synchrone: l’émetteur est bloqué et attend que l’appelé ait fini de traiter le message (message 1) message asynchrone: l’émetteur n’est pas bloqué et peut continuer son exécution (message 6) Un message réflexif indique souvent un point d ’entrée dans une activité de plus bas niveau qui s ’exerce entre objets contenus par l ’objet composite (message 7) 23 Michel Tollenaere U. M. L. partie 2
Diagramme de Séquences (principes) Objet 1 1 : [condition A] message UML 2 version 2. 0 du 21 novembre 2009 Objet 2 2 : message synchrone 3 : message de création 5: message Objet 3 4: message 6 : [condition B] message 9 : message asynchrone 7 : message réflexif 8 : message de destruction Un message dont les délais de transmission sont non négligeables est matérialisé par une flèche oblique (message 4) Messages conditionnés : flèches prenant leur origine au même instant avec des conditions mutuellement exclusives (messages 1 et 6) 24 Michel Tollenaere Possibilité de compléments d ’informations sous forme de texte libre ou de pseudocode à côté du diagramme U. M. L. partie 2
Diagramme de Séquences (principes généraux) Objet 1 1 : [condition A] message UML 2 version 2. 0 du 21 novembre 2009 Objet 2 2 : message synchrone Ligne de vie de l’objet 3 : message de création 5: message Objet 3 4: message 6 : [condition B] message 9 : message asynchrone 7 : message réflexif 8 : message de destruction Période d ’activité : temps pendant lequel un objet effectue une action, directement ou par l ’intermédiaire d ’un autre objet sous-traitant Des contraintes temporelles peuvent être exprimées en graduant la ligne de vie (pour dire par exemple: « 10 secondes plus tard » ) 25 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 e m m gra le p xem ia D de Niv E Diagramme de Séquences 1 u ea Ligne téléphonique Appelant Appelé décroche tonalité numérotation indication de sonnerie décroche allô 26 Michel Tollenaere U. M. L. partie 2
am r g ia D e d le p m e x E Niv 27 Michel Tollenaere 2 u ea U. M. L. partie 2 UML 2 version 2. 0 du 21 novembre 2009
am r g ia D e d le p m e x E Niv 28 Michel Tollenaere 2 u ea U. M. L. partie 2 UML 2 version 2. 0 du 21 novembre 2009
am r g ia UML 2 version 2. 0 du 21 novembre 2009 D e d le p m e x E Niv 2 u ea Nouvelle mission 29 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Les Interfaces Homme-Machine I. H. M. • sous Windows • html • étendus 30 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Resp de production : supervision d’un process 31 Michel Tollenaere Ou visualisation des plannings de techniciens libres U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 En logistique, les interfaces carto 32 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Modèles Statique et Dynamique • Concept de généralisation et d’héritage • Implantation de l’héritage en relationnel • Méta-modélisation UML 33 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Généralisation : • Relation non réflexive : une classe ne peut dériver d’ellemême • Relation non symétrique : si une voiture est une sorte de véhicule, alors le véhicule ne peut pas être une sorte de voiture • Relation transitive : si voiture est une sorte de véhicule terrestre qui elle même est une sorte de véhicule alors voiture est une sorte de véhicule 34 Michel Tollenaere U. M. L. partie 2
GENERALISATION UML 2 version 2. 0 du 21 novembre 2009 Super-classe Animal Généralisation Chat Sous-classe 35 Michel Tollenaere U. M. L. partie 2 Spécialisation Chien COHERENCE Raton laveur
GENERALISATION UML 2 version 2. 0 du 21 novembre 2009 CLASSES, PAQUETAGES, CAS D'UTILISATION EST UN => GENERALISATION A => COMPOSITION GENERALISATION => HERITAGE COUPLAGE FORT ENTRE CLASSES 36 Michel Tollenaere U. M. L. partie 2
GENERALISATION Tapis Véhicule UML 2 version 2. 0 du 21 novembre 2009 MULTIPLE Super-classe Terrestre Fusion de plusieurs classes en une seule classe 37 Michel Tollenaere U. M. L. partie 2 Aérien Tapis volant Sous-classe
GENERALISATION DISCRIMINANT Véhicule Motorisation A voile 38 Michel Tollenaere A moteur U. M. L. partie 2 UML 2 version 2. 0 du 21 novembre 2009 DISCRIMINANT Milieu Terrestre Marin
UML 2 version 2. 0 du 21 novembre 2009 GENERALISATION Champignon {Exclusif} 39 Michel Tollenaere Agaricus Boletus Pied bleu Bolet de loup U. M. L. partie 2
GENERALISATION UML 2 version 2. 0 du 21 novembre 2009 Véhicule Motorisation Milieu {Inclusif} A voile A moteur Terrestre Pétrolette 40 Michel Tollenaere U. M. L. partie 2 Marin Mélange des deux dimensions
GENERALISATION Cours UML 2 version 2. 0 du 21 novembre 2009 Complète Incomplète {Incomplète} Maths 41 Michel Tollenaere U. M. L. partie 2 Français Géographie
GENERALISATION UML 2 version 2. 0 du 21 novembre 2009 Vue partielle Cours Maths 42 Michel Tollenaere U. M. L. partie 2 . . . Géographie
CLASSE ABSTRAITE UML 2 version 2. 0 du 21 novembre 2009 Classe Abstraite Non instanciable Sert de Type pour manipuler les objets instances d'une (ou plusieurs) de leurs sous-classes Propriété Abstraite définie pour tous les éléments généralisables Propriété Abstraite définie aussi pour une opération 43 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Implantation de l’héritage en relationnel Principe : 1 classe = 1 table 1 association n - m = 1 table Implantation Nom emplacement Table Implantation ID-implant : entier Nom : string Emplacement : string Table Rayon Sous rayon 1 * ID-rayon : entier Nom : string Emplacement : string Table Sous-Rayon ID-ss-rayon : entier Nom : string Emplacement : string Rayon : entier • On ne factorise pas les attributs (Nom, emplacement) • Il faudra coder 3 fois les accès communs définis dans la classe « implantation » 44 Michel Tollenaere U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 Implantation de l ’héritage en relationnel Implantation Principe : 1 table pour toutes les classes 1 association n - m = 1 table Nom emplacement Implantation Nom emplacement type : {rayon ; ss-rayon} Rayon Sous rayon * 1 1 Table Implantation ID-implant : entier Nom : string Emplacement : string Type : {rayon ; ss-rayon} Rayon : entier * Schéma relationnel plus concis, mais : • un rayon ou sous rayon peut être constitué d’autres rayons • aucun contrôle de cohérence sur les compositions récursives 45 Michel Tollenaere U. M. L. partie 2
Diagramme de Classes Métier 46 Michel Tollenaere U. M. L. partie 2 UML 2 version 2. 0 du 21 novembre 2009
UML 2 version 2. 0 du 21 novembre 2009 UML cohérence des diagrammes • • • 47 Michel Tollenaere Use cases Diagramme d’état-transition Diagramme de séquences Diagramme de classes Interfaces Homme/Machine. U. M. L. partie 2
UML 2 version 2. 0 du 21 novembre 2009 cas d'utilisation Acteur 1 cas d'utilisation article Implantation code désignation prix-U rayon ss-rayon Nom emplacement cas d'utilisation comporte Acteur 2 Rayon Nom emplacement é t a t i n i t i a l 48 Michel Tollenaere U. M. L. partie 2 En préparati on do / ajout article Pas de confir matio n client après 1é moist a t f i n a l Confi rmati on client Livrée do / attente paiement Confirmé e do / préparer livraison paiem ent effect ué Pay ée 10 ans après paiem ent é t a t f i n a l Sous rayon 1 Rayon * emplacement nom contient> 1 Implantation *
- Slides: 48