500 likes | 864 Views
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.
E N D
Cours MSI-2A filière ICL 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
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Exemples : Quelques diagrammes Système (VEGA2) : acteur (intéragissant avec VEGA2) message message message message Cas d’utilisation une fonctionnalité attendue du système (VEGA2) par les différents acteurs. Diagramme de Classes 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.
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Modèle Statique (rappels) • Diagramme de classes • Diagramme d’objets
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Gestion des commandes client (diagramme de classes 1) commande client article num date adresse livraison nom prénom adresse téléphone code postal code désignation prix-U rayon ss-rayon comporte> 1 .. * 1 Passe une> 0 .. * * CalculMontant () ajout article modifier () paye Passe commande () paie commande (cmd) Ligne-Cmd quantité
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Photosmart500 :article 1 : lignecmd RAM 512MO :article 1 : lignecmd CMD003 :commande 2 : lignecmd CMD007 :commande Compaq tabletPC :article 1 : lignecmd Pierre Dupond :client CMD015 :commande 1 : lignecmd Dell Lat400 :article Jacky Durand :client Hervé Latour :client Toshiba SD300 :article Gestion des commandes client (diagramme de classes et d’objets) article client commande comporte> 1 Passe une> 0 .. * 1 .. * * Ligne-Cmd
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Diagramme de classe Association Classe Diagramme d ’objets Objet Lien Gestion des commandes client (diagramme de classes et d’objets) article client commande comporte> 1 Passe une> 0 .. * 1 .. * * Ligne-Cmd Conceptualise Illustre Photosmart500 :article 1 : lignecmd RAM 512MO :article 1 : lignecmd CMD003 :commande 2 : lignecmd CMD007 :commande Compaq tabletPC :article 1 : lignecmd Pierre Dupond :client CMD015 :commande 1 : lignecmd Dell Lat400 :article Jacky Durand :client Hervé Latour :client Toshiba SD300 :article
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Gestion des commandes client (diagramme de classes 2) commande client article num date adresse livraison code désignation prix-U rayon ss-rayon nom prénom adresse téléphone code postal comporte> 1 .. * 1 Passe une> 0 .. * * CalculMontant () ajout article modifier () paye Passe commande () paie commande (cmd) 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)
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 comporte Sous rayon 1 contient> Rayon emplacement Implantation Rôle dans l’association Gestion des commandes client (diagramme de classes 2) commande client article num date adresse livraison code désignation prix-U rayon ss-rayon nom prénom adresse téléphone code postal 1 0 .. * * comporte> 1 .. * Passe une> Faut il définir l’appartenance du sous rayon au rayon ?? CalculMontant () ajout article modifier () paye Passe commande () paie commande (cmd) Ligne-Cmd * quantité
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Partage de propriétés et de comportements Gestion des commandes client (diagramme de classes 2) article code désignation prix-U rayon ss-rayon comporte * Rayon Sous rayon Nom emplacement Rayon emplacement nom 1 contient> * Implantation 1
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Généralisation Héritage de propriétés Gestion des commandes client (diagramme de classes 2) article Implantation code désignation prix-U rayon ss-rayon Nom emplacement comporte * Rayon Sous rayon Nom emplacement Rayon emplacement nom 1 contient> * Implantation 1
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Passe commande () paie commande (cmd) Comportement des objets Quand peut on ajouter un article ? Etat des commandes ? Gestion des commandes client (diagramme de classes 1) commande client article num date adresse livraison nom prénom adresse téléphone code postal code désignation prix-U rayon ss-rayon comporte> 1 .. * 1 Passe une> 0 .. * * CalculMontant () ajout article modifier () paye Ligne-Cmd quantité Nécessité de définir et spécifier un modèle dynamique
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Modèle Dynamique • Diagramme d’état-transition • Diagramme de séquences
Cours MSI-2A filière ICL 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
Cours MSI-2A filière ICL 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 non négligeable (do : nom_opération) (exemple notification)
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Confirmation client [Si solvable] Livraison effectuée Pas de confirmation client après 1 mois paiement effectué 10 ans après paiement état final Diagramme d’état-transition de la classe « commande » commande num date adresse livraison Confirmée do / préparer livraison En préparation do / ajout article CalculMontant () ajout article modifier () paye état initial Livrée do / attente paiement Payée état final
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Une implémentation dans MS-Access un attribut « Etat » de type « liste déroulante » dont le contenu correspond aux valeurs des états du diagramme
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Une meilleureimplémentation dans MS-Access
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Une meilleure implémentation dans MS-Access
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Diagramme d’état-transition Exemple personne En activité do: travailler Plus de 60 ans société nom prénom age adresse téléphone code postal est employée par> n° SIREN nom C.A. Implantation * 0..1 Perte d ’emploi A la retraite Embauche Plus de 60 ans Au chômage Diagramme de classes 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é.
Cours MSI-2A filière ICL 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
Cours MSI-2A filière ICL 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.
Cours MSI-2A filière ICL 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 Objet 3 Evénement / Communication entre objets 4 : message 5 : message 6 : [condition B] message 7 : message réflexif Période d’activité de l’objet : ligne de vie 8 : message de destruction 9 : message asynchrone
Cours MSI-2A filière ICL 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 Objet 3 4 : message 5 : message 6 : [condition B] message 7 : message réflexif 8 : message de destruction 9 : message asynchrone 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)
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Diagramme de Séquences (principes) Objet 1 Objet 2 1 : [condition A] message 2 : message synchrone 3 : message de création Objet 3 4 : message 5 : message 6 : [condition B] message 7 : message réflexif 8 : message de destruction 9 : message asynchrone 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 pseudo-code à côté du diagramme
Cours MSI-2A filière ICL 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 Ligne de vie de l’objet 3 : message de création Objet 3 4 : message 5 : message 6 : [condition B] message 7 : message réflexif 8 : message de destruction 9 : message asynchrone 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 »)
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Ligne téléphonique Appelant Appelé décroche tonalité numérotation indication de sonnerie sonnerie décroche allô Diagramme de Séquences Exemple de Diagramme Niveau 1
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Exemple de Diagramme Niveau 2
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Exemple de Diagramme Niveau 2
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Exemple de Diagramme Niveau 2 Nouvelle mission
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Les Interfaces Homme-MachineI.H.M. • sous Windows • html • étendus
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Resp de production : supervision d’un process Ou visualisation des plannings de techniciens libres
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 En logistique, les interfaces carto
Cours MSI-2A filière ICL 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
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 • Généralisation : • Relation non réflexive : une classe ne peut dériver d’elle-même • Relation non symétrique : si une 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
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 GENERALISATION Super-classe Animal Généralisation Spécialisation Chat Chien Raton laveur COHERENCE Sous-classe
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 GENERALISATION CLASSES, PAQUETAGES, CAS D'UTILISATION EST UN => GENERALISATION A => COMPOSITION GENERALISATION => HERITAGE COUPLAGE FORT ENTRE CLASSES
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 GENERALISATION MULTIPLE Tapis Véhicule Super-classe Super-classe Terrestre Aérien Tapis volant Fusion de plusieurs classes en une seule classe Sous-classe
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 GENERALISATION Véhicule DISCRIMINANT DISCRIMINANT Motorisation Milieu A voile A moteur Terrestre Marin
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 GENERALISATION Champignon {Exclusif} Agaricus Boletus Pied bleu Bolet de loup
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 GENERALISATION Véhicule Motorisation Milieu {Inclusif} A voile A moteur Terrestre Marin Pétrolette Mélange des deux dimensions
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 GENERALISATION Complète Incomplète Cours {Incomplète} Maths Français Géographie
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 GENERALISATION Vue partielle Cours Maths Géographie ...
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 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
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Table Implantation ID-implant : entier Nom : string Emplacement : string Table Rayon ID-rayon : entier Nom : string Emplacement : string Table Sous-Rayon ID-ss-rayon : entier Nom : string Emplacement : string Rayon : entier Implantation de l’héritage en relationnel Principe : 1 classe = 1 table 1 association n - m = 1 table Implantation Nom emplacement Rayon Sous rayon * 1 • On ne factorise pas les attributs (Nom, emplacement) • Il faudra coder 3 fois les accès communs définis dans la classe « implantation »
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Implantation Table Implantation ID-implant : entier Nom : string Emplacement : string Type : {rayon ; ss-rayon} Rayon : entier 1 Nom emplacement type : {rayon ; ss-rayon} * Implantation de l ’héritage en relationnel Implantation Principe : 1 table pour toutes les classes 1 association n - m = 1 table Nom emplacement Rayon Sous rayon * 1 • 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
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Diagramme de Classes Métier
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 UML cohérence des diagrammes • Use cases • Diagramme d’état-transition • Diagramme de séquences • Diagramme de classes • Interfaces Homme/Machine.
Cours MSI-2A filière ICL UML 2 version 2.0 du 21 novembre 2009 Confirmation client cas d'utilisation cas d'utilisation cas d'utilisation Pas de confirmation client après 1 mois 10 ans après paiement paiement effectué article Implantation code désignation prix-U rayon ss-rayon Nom emplacement état final comporte * Rayon Sous rayon contient> Rayon emplacement nom Nom emplacement 1 Implantation * En préparation do / ajout article Confirmée do / préparer livraison état initial 1 Livrée do / attente paiement Payée état final Acteur 1 Acteur 2