ENSGI 2 A MSI UML 2 Rappel sur

  • Slides: 47
Download presentation
ENSGI 2 A MSI - UML (2) Rappel sur le modèle statique : classe

ENSGI 2 A MSI - UML (2) Rappel sur le modèle statique : classe / objet Modèle dynamique • le diagramme de séquence • le diagramme état - transition MOT (Modèle organisationnel des traitements de MERISE) 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. version 1. 1 du 7 Octobre 2003 1 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Exemples : Quelques diagrammes Système (VEGA 2)

ENSGI 2 A MSI - UML (2) 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. 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. version 1. 1 du 7 Octobre 2003 2 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Modèle Statique (rappels) • Diagramme de classes

ENSGI 2 A MSI - UML (2) Modèle Statique (rappels) • Diagramme de classes • Diagramme d’objet version 1. 1 du 7 Octobre 2003 3 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes 1) client nom prénom adresse téléphone code postal 1 Passe une> 0. . * Passe commande () paie commande (cmd) commande article num date adresse livraison code désignation prix-U rayon ss-rayon Montant () ajout article modifier () paye * comporte> 1. . * Ligne-Cmd quantité version 1. 1 du 7 Octobre 2003 4 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes

ENSGI 2 A MSI - UML (2) 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 1: lignecmd CMD 015 : commande Jacky Durand : client RAM 512 MO : article Hervé Latour : client version 1. 1 du 7 Octobre 2003 1: lignecmd Compaq tablet. PC : article Dell Lat 400 : article Toshiba SD 300 : article 5 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes

ENSGI 2 A MSI - UML (2) 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 Illustre Photosmart 50 0 : article 1: lignecmd RAM 512 MO : article 1: lignecmd 2: lignecmd CMD 007 : commande Lien Jacky Durand : client 1: lignecmd CMD 015 : commande Hervé Latour : client version 1. 1 du 7 Octobre 2003 1: lignecmd Compaq tablet. PC : article Dell Lat 400 : article Toshiba SD 300 : article 6 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes 2) client nom prénom adresse téléphone code postal 1 Passe une> 0. . * Passe commande () paie commande (cmd) commande article num date adresse livraison code désignation prix-U Montant () ajout article modifier () paye * comporte> 1. . * rayon ss-rayon Ligne-Cmd quantité Ne respecte pas les formes normales 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) version 1. 1 du 7 Octobre 2003 7 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes 2) commande article nom prénom adresse téléphone code postal num date adresse livraison code désignation prix-U Passe commande () paie commande (cmd) modifier () paye client On ne définit pas 0. . l* ’appartenance 1 * comporte> une> Montant () du sous. Passerayon au rayon ajout article 1. . * rayon ss-rayon Ligne-Cmd comporte * quantité Sous rayon Rayon emplacement 1 contient> Implantation Rôle dans l’association version 1. 1 du 7 Octobre 2003 8 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes

ENSGI 2 A MSI - UML (2) 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 comporte * Sous rayon Nom emplacement 1 * version 1. 1 du 7 Octobre 2003 Rayon emplacement nom 1 contient> Implantation 9 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes

ENSGI 2 A MSI - UML (2) 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 rayon ss-rayon comporte * Sous rayon Nom emplacement 1 * version 1. 1 du 7 Octobre 2003 Rayon emplacement nom 1 contient> Implantation 10 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de classes 1) client nom prénom adresse téléphone code postal 1 Passe une> 0. . * article num date adresse livraison code désignation prix-U rayon ss-rayon Montant () ajout article modifier () paye Passe commande () paie commande (cmd) Comportement des objets commande Quand peut on ajouter un article ? Etat des commandes ? * comporte> 1. . * Ligne-Cmd quantité Nécessité de définir et spécifier un modèle dynamique version 1. 1 du 7 Octobre 2003 11 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Modèle Dynamique • Diagramme d’état transition •

ENSGI 2 A MSI - UML (2) Modèle Dynamique • Diagramme d’état transition • Diagramme de séquence version 1. 1 du 7 Octobre 2003 12 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme d ’états-Transition Description des séquences possibles

ENSGI 2 A MSI - UML (2) Diagramme d ’états-Transition Description des séquences possibles d’états et d ’actions par lesquelles 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 version 1. 1 du 7 Octobre 2003 13 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme d ’états-Transition • événement : occurrence

ENSGI 2 A MSI - UML (2) Diagramme d ’états-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) version 1. 1 du 7 Octobre 2003 14 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme d ’états-Transition de la classe «

ENSGI 2 A MSI - UML (2) Diagramme d ’états-Transition de la classe « commande » commande num date adresse livraison En préparation état initial do / ajout article Pas de confirmation client après 1 mois Confirmation client [Si solvable] Montant () ajout article modifier () paye Confirmée do / préparer livraison Livraison effectuée Livrée do / attente paiement effectué Payée 10 ans après paiement état final version 1. 1 du 7 Octobre 2003 15 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme d ’états-Transition Exemple personne nom prénom

ENSGI 2 A MSI - UML (2) Diagramme d ’états-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é. version 1. 1 du 7 Octobre 2003 16 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme d ’états-Transition Une classe peut posséder

ENSGI 2 A MSI - UML (2) Diagramme d ’états-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 ’états - transitions 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 elements du cycle de fonctionnement version 1. 1 du 7 Octobre 2003 17 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme de Séquences Pour chaque cas d’utilisation,

ENSGI 2 A MSI - UML (2) Diagramme de Séquences Pour chaque cas d’utilisation, nous pouvons décrire un ou plusieurs scénario, décrit 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. version 1. 1 du 7 Octobre 2003 18 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme de Séquences (principes) Objet 1 Objet

ENSGI 2 A MSI - UML (2) Diagramme de Séquences (principes) Objet 1 Objet 2 1 : [condition A] message 2 : message synchrone 3 : message de création Evénement / Communication entre objets 5 : message Objet 3 4 : message 6 : [condition B] message 7 : message réflexif Période d’activité de l’objet : ligne de vie 9 : message asynchrone version 1. 1 du 7 Octobre 2003 8 : message de destruction 19 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme de Séquences (principes) Objet 1 1

ENSGI 2 A MSI - UML (2) Diagramme de Séquences (principes) Objet 1 1 : [condition A] message 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) version 1. 1 du 7 Octobre 2003 20 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme de Séquences (principes) Objet 1 1

ENSGI 2 A MSI - UML (2) Diagramme de Séquences (principes) Objet 1 1 : [condition A] message 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) Possibilité de compléments d ’informations sous forme de texte libre ou de pseudocode à côté du diagramme version 1. 1 du 7 Octobre 2003 21 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme de Séquences (principes) Objet 1 1

ENSGI 2 A MSI - UML (2) Diagramme de Séquences (principes) Objet 1 1 : [condition A] message 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 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 » ) version 1. 1 du 7 Octobre 2003 22 Michel Tollenaere

ENSGI 2 A MSI - UML (2) version 1. 1 du 7 Octobre 2003

ENSGI 2 A MSI - UML (2) version 1. 1 du 7 Octobre 2003 23 Michel Tollenaere

ENSGI 2 A MSI - UML (2) version 1. 1 du 7 Octobre 2003

ENSGI 2 A MSI - UML (2) version 1. 1 du 7 Octobre 2003 24 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Nouvelle mission version 1. 1 du 7

ENSGI 2 A MSI - UML (2) Nouvelle mission version 1. 1 du 7 Octobre 2003 25 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de séquences

ENSGI 2 A MSI - UML (2) Gestion des commandes client (diagramme de séquences 1) version 1. 1 du 7 Octobre 2003 26 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme de Séquences Exemple Ligne téléphonique Appelant

ENSGI 2 A MSI - UML (2) Diagramme de Séquences Exemple Ligne téléphonique Appelant Appelé décroche tonalité numérotation indication de sonnerie décroche allô version 1. 1 du 7 Octobre 2003 27 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des composants externes: Création composant constance

ENSGI 2 A MSI - UML (2) Gestion des composants externes: Création composant constance version 1. 1 du 7 Octobre 2003 28 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des composants externes: Mise à jour

ENSGI 2 A MSI - UML (2) Gestion des composants externes: Mise à jour composant constance Solution N° 1 (non retenue): Avec validation par l’opérateur version 1. 1 du 7 Octobre 2003 29 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Gestion des composants externes: Mise à jour

ENSGI 2 A MSI - UML (2) Gestion des composants externes: Mise à jour composant constance Solution N° 2 (retenue): avec validation par l’opérateur version 1. 1 du 7 Octobre 2003 30 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Modèle Organisationnel de Traitements (MOT) de Merise

ENSGI 2 A MSI - UML (2) Modèle Organisationnel de Traitements (MOT) de Merise • • Enchaînement des opérations ou taches condition d’enchaînement acteur affecté (qui ? ) période de traitement (quand ? ) version 1. 1 du 7 Octobre 2003 31 Michel Tollenaere

ENSGI 2 A MSI - UML (2) version 1. 1 du 7 Octobre 2003

ENSGI 2 A MSI - UML (2) version 1. 1 du 7 Octobre 2003 32 Michel Tollenaere

ENSGI 2 A MSI - UML (2) version 1. 1 du 7 Octobre 2003

ENSGI 2 A MSI - UML (2) version 1. 1 du 7 Octobre 2003 33 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Modèles Statique et Dynamique • Concept de

ENSGI 2 A MSI - UML (2) 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 version 1. 1 du 7 Octobre 2003 34 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Généralisation : • Relation non réflexive :

ENSGI 2 A MSI - UML (2) 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 version 1. 1 du 7 Octobre 2003 35 Michel Tollenaere

ENSGI 2 A MSI - UML (2) GENERALISATION Super-classe Animal Généralisation Spécialisation Chat Sous-classe

ENSGI 2 A MSI - UML (2) GENERALISATION Super-classe Animal Généralisation Spécialisation Chat Sous-classe Chien Raton laveur COHERENCE version 1. 1 du 7 Octobre 2003 36 Michel Tollenaere

ENSGI 2 A MSI - UML (2) GENERALISATION CLASSES, PAQUETAGES, CAS D'UTILISATION EST UN

ENSGI 2 A MSI - UML (2) GENERALISATION CLASSES, PAQUETAGES, CAS D'UTILISATION EST UN => GENERALISATION A => COMPOSITION GENERALISATION => HERITAGE COUPLAGE FORT ENTRE CLASSES version 1. 1 du 7 Octobre 2003 37 Michel Tollenaere

ENSGI 2 A MSI - UML (2) GENERALISATION Tapis Véhicule MULTIPLE Super-classe Terrestre Fusion

ENSGI 2 A MSI - UML (2) GENERALISATION Tapis Véhicule MULTIPLE Super-classe Terrestre Fusion de plusieurs classes en une seule classe version 1. 1 du 7 Octobre 2003 Aérien Tapis volant Sous-classe 38 Michel Tollenaere

ENSGI 2 A MSI - UML (2) GENERALISATION DISCRIMINANT Véhicule Motorisation A voile A

ENSGI 2 A MSI - UML (2) GENERALISATION DISCRIMINANT Véhicule Motorisation A voile A moteur version 1. 1 du 7 Octobre 2003 DISCRIMINANT Milieu Terrestre Marin 39 Michel Tollenaere

ENSGI 2 A MSI - UML (2) GENERALISATION Champignon {Exclusif} Agaricus Boletus Pied bleu

ENSGI 2 A MSI - UML (2) GENERALISATION Champignon {Exclusif} Agaricus Boletus Pied bleu Bolet de loup version 1. 1 du 7 Octobre 2003 40 Michel Tollenaere

ENSGI 2 A MSI - UML (2) GENERALISATION Véhicule Motorisation Milieu {Inclusif} A voile

ENSGI 2 A MSI - UML (2) GENERALISATION Véhicule Motorisation Milieu {Inclusif} A voile A moteur Terrestre Pétrolette version 1. 1 du 7 Octobre 2003 Marin Mélange des deux dimensions 41 Michel Tollenaere

ENSGI 2 A MSI - UML (2) GENERALISATION Cours Complète Incomplète {Incomplète} Maths version

ENSGI 2 A MSI - UML (2) GENERALISATION Cours Complète Incomplète {Incomplète} Maths version 1. 1 du 7 Octobre 2003 Français Géographie 42 Michel Tollenaere

ENSGI 2 A MSI - UML (2) GENERALISATION Vue partielle Cours Maths version 1.

ENSGI 2 A MSI - UML (2) GENERALISATION Vue partielle Cours Maths version 1. 1 du 7 Octobre 2003 . . . Géographie 43 Michel Tollenaere

ENSGI 2 A MSI - UML (2) CLASSE ABSTRAITE Classe Abstraite Non instanciable Sert

ENSGI 2 A MSI - UML (2) CLASSE ABSTRAITE 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 version 1. 1 du 7 Octobre 2003 44 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Implantation de l ’héritage en relationnel Principe

ENSGI 2 A MSI - UML (2) 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 acces communs définis dans la classe « implantation » version 1. 1 du 7 Octobre 2003 45 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Implantation de l ’héritage en relationnel Implantation

ENSGI 2 A MSI - UML (2) 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écursive version 1. 1 du 7 Octobre 2003 46 Michel Tollenaere

ENSGI 2 A MSI - UML (2) Diagramme de Classes Métier version 1. 1

ENSGI 2 A MSI - UML (2) Diagramme de Classes Métier version 1. 1 du 7 Octobre 2003 47 Michel Tollenaere