UML : Unified Modelling Language

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

UML : Unified Modelling Language Grenoble INP Génie industriel 2A ICL MSI – UML 1 UML : Unified Modelling Language Historique : Grady Booch 1981, ADA, « Object Oriented Development » James Rumbaugh 1991, OMT, JOOP (Journal of OO programming) Ivar Jacobson, OOSE sept 97, UML 1.1. Références : http://www.omg.org http://uml.free.fr/ site en français en France Pierre Alain Muller (U-Mulhouse) et Valtech http://uml.developpez.com/ UML 2 : De l'apprentissage à la pratique, 2009, Ellipses, Laurent Audibert Outils : Objecteering http://www.objecteering.com/us/produits_pe.php Rational ROSE , http://www.rational.com plus de 30 outils de modélisation et de CASE (Computer Aided Software Engineering)

Architecture Technologie UML modelling information systems Grenoble INP Génie industriel 2A ICL MSI – UML 1 propriétés Constituant UML modelling information systems at conceptual level at logical level : acteur (intéragissant avec VEGA2) Système (VEGA2) message Technologie Architecture

Creating the UML UML 2.0 UML 1.3 UML 1.1 UML 1.0 UML 0.9 OOSE Grenoble INP Génie industriel 2A ICL MSI – UML 1 Creating the UML UML 2.0 2003 OOSE Other methods UML 0.9 Web - June ´96 UML 1.3 Final submission to OMG, Sep ‘97 First submission to OMG, Jan ´97 UML 1.1 OMG Acceptance, Nov 1997 public feedback UML 1.0 UML partners Unified Method 0.8 OOPSLA ´95 Booch method OMT

Contributions to the UML Grenoble INP Génie industriel 2A ICL MSI – UML 1 Contributions to the UML Harel Statecharts Meyer Before and after conditions Gamma, et al Frameworks and patterns, HP Fusion Operation descriptions and message numbering Booch Booch method Embley Singleton classes and high-level view Rumbaugh OMT Wirfs-Brock Responsibilities Jacobson OOSE Shlaer - Mellor Object lifecycles Odell Classification

Axes de modélisation d ’un système Grenoble INP Génie industriel 2A ICL MSI – UML 1 Axes de modélisation d ’un système Statique (ce que le système EST) diagramme de classes diagramme d’objets diagramme de composants diagramme de déploiement Dynamique (comment le système EVOLUE) Fonctionnel (ce que le système FAIT) diagramme de séquence diagramme de collaboration diagramme d’états-transitions diagramme d’activités diagramme de cas d’utilisation diagramme de collaboration

Niveaux d’abstraction d’un SI Grenoble INP Génie industriel 2A ICL MSI – UML 1 Niveaux d’abstraction d’un SI En UML, les mêmes modèles peuvent être utilisés à différents niveaux d ’abstraction du plus conceptuel à l’implantation. On peut donc appliquer des mécanismes de transformation continue. Conceptuel organisationnel logique physique

Les 9 diagrammes UML 1 diagramme de cas d’utilisation Grenoble INP Génie industriel 2A ICL MSI – UML 1 Les 9 diagrammes UML 1 diagramme de cas d’utilisation diagramme de classes diagramme de séquence diagramme de collaboration diagramme d’objets diagramme d’états-transitions diagramme d’activités (nous utiliserons IDEF 0) diagramme de composants diagramme de déploiement

Description UML des 9 diagrammes UML Grenoble INP Génie industriel 2A ICL MSI – UML 1 Description UML des 9 diagrammes UML Diagramme Ceci est un commentaire Cas d ’utilisation Cas d ’utilisation Classes Etats Transitions Séquence Classes Etats Transitions Séquence Collaboration Composants Déploiement Activité Objets

Exemples : Quelques diagrammes Grenoble INP Génie industriel 2A ICL MSI – UML 1 Exemples : Quelques diagrammes : acteur (intéragissant avec VEGA2) Système (VEGA2) 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. Cas d’utilisation une fonctionnalité attendue du système (VEGA2) par les différents acteurs. Diagramme de Classes

Acteur 1 Acteur 2 Grenoble INP Génie industriel 2A ICL MSI – UML 1 cas d'utilisation Acteur 1 cas d'utilisation article code désignation prix-U rayon ss-rayon * contient> 1 Sous rayon Rayon emplacement nom Implantation comporte Nom cas d'utilisation Acteur 2 En préparation do / ajout article état initial état final Confirmée do / préparer livraison do / attente paiement Livrée Payée Confirmation client paiement effectué 10 ans après paiement Pas de confirmation client après 1 mois

Modèle Fonctionnel Use Cases : cas d ’utilisation Grenoble INP Génie industriel 2A ICL MSI – UML 1 Modèle Fonctionnel Use Cases : cas d ’utilisation diagramme de collaboration

Diagramme de cas d’utilisation Grenoble INP Génie industriel 2A ICL MSI – UML 1 Diagramme de cas d’utilisation Représente les fonctions du système de point de vue de l ’utilisateur. Ceci est un cas d’utilisation Ceci est une relation un acteur relation Acteur Cas d ’utilisation Eléments du diagramme : acteur : un rôle joué par une personne, un service, etc. qui interagit avec le système étudié cas d’utilisation : manière spécifique d ’utiliser un système. Image d’une fonctionnalité attendue, déclenchée en réponse à la stimulation d’un acteur relations entre cas d’utilisations et acteurs

Relations entre cas d’utilisations Grenoble INP Génie industriel 2A ICL MSI – UML 1 Relations entre cas d’utilisations Trois types de relations : relation de communication : entre un acteur et un cas d’utilisation. Exprime l’échange d’informations entre l’acteur et le système. déclenche client virement relation d’utilisation : entre deux cas d’utilisation. Exprime que le cas d’utilisation source comprend également le comportement décrit par le cas d’utilisation destinataire (utile pour la factorisation de cas). virement identification « use » relation d’extension : entre deux cas d’utilisation. Exprime que le cas d’utilisation source étend le comportement du cas d’utilisation cible (utile pour la spécialisation de cas). Virement par Internet virement « extend »

Acteurs : diagramme de cas d’utilisation Grenoble INP Génie industriel 2A ICL MSI – UML 1 Acteurs : diagramme de cas d’utilisation Acteur humain : il s ’agit ici d ’un rôle et non d ’un acteur identifié. Acteur non humain : exemple un logiciel de comptabilité ou d’ERP avec lequel le système interagit Conçoit les schémas et nomenclatures Récupère les schémas Exemple Gestion des schémas Récupère les Développeur contraintes Définit les contraintes mécaniques Gestion des contraintes Responsable CFAO Responsable Gestion des jobs Gère la création et les révisions d ’un job BE <<dépend>> Gère la création et les révisions des dossiers variantes Gestion des dossiers

Diagramme de Collaboration Grenoble INP Génie industriel 2A ICL MSI – UML 1 Diagramme de Collaboration Interactions entre objets du système avec un accent particulier sur la structure spatiale statique des objets (contexte des objets). Les messages sont numérotés pour indiquer l’ordre des envois. Permet de situer le contexte du système. Message: Simple, Asynchrone, Synchrone, Minuté : ascenseur : cabine : porte : lumière 1 : monter 3 : fermer 2 : allumer Objet 1 1 : message 2 : message Objet 2 4 : message 5 : message 3 : message Objet 3

Modèle Statique diagramme d ’objets Diagramme de classes Grenoble INP Génie industriel 2A ICL MSI – UML 1 Modèle Statique diagramme d ’objets Diagramme de classes

Grenoble INP Génie industriel 2A ICL MSI – UML 1 Objets et classes MaVoiture : Voiture marque = Renault Modèle = Nevada Immatriculation = 648ADX38 AnnéeModele = 1992 Kilométrage = 285 000 Objet : une entité concrète avec une identité bien définie qui encapsule un état et un comportement. L ’état est représenté par des valeurs d’attribut et des associations, le comportement par des méthodes. Un objet est une instance d ’une classe. Classe : une description d’un ensemble d’objets qui partagent les mêmes attributs, opérations, méthodes, relations et contraintes. Une classe peut posséder des attributs ou des méthodes « de classe ». Voiture marque : chaîne Modèle : chaîne Immatriculation : chaîne (8) AnnéeModele : date Kilométrage : entier Rouler ( ) Kilometrage_annuel_moyen ( )

Diagramme d’Objets Concrétisation Abstraction Grenoble INP Génie industriel 2A ICL MSI – UML 1 Diagramme d’Objets Structure statique d’un système, en termes d’objets et de liens entre ces objets. Ces objets et ces liens possèdent des attributs qui possèdent des valeurs. Un objet est une instance de classe et un lien est une instance d’association. Nom de l’objet : Classe Attributs = valeurs Personne âge : entier collaborateur * Etienne : personne âge = 35 Jean-Luc : personne âge = 25 patron Diagramme d ’objets collaborateur 1 patron emploie> Concrétisation Abstraction Diagramme de classes

Diagramme de classes exemple : Grenoble INP Génie industriel 2A ICL MSI – UML 1 Diagramme de classes Structure statique d’un système, en termes de classes et de relations entre ces classes. Voiture Couleur Cylindrée Vitesse max Démarrer () Accélérer () Freiner () Nom de classe Attributs Opérations () exemple : Syntaxe: nom_attribut : type_attribut = valeur initiale nom_opération (nom_argument : type_argument = valeur_par_défaut, …) : type_retourné Visibilité : trois niveaux de visibilité pour les attributs et les opérations: public (+) : élément visible à tous les clients de la classe protégé ( #) : élément visible aux sous-classes de la classe privé (-) : élément visible à la classe seule

Diagramme de classes : Relations entre classes Grenoble INP Génie industriel 2A ICL MSI – UML 1 Diagramme de classes : Relations entre classes Agrégation : quand une classe fait partie d’une autre classe (agrégat - composant) Association : toute relation structurelle entre classes, autre que l ’agrégation et la généralisation Généralisation : factorisation des éléments communs d’un ensemble de classes dits sous-classes dans une classe plus générale dite super-classe. Elle signifie que la sous-classe est un ou est une sorte de la super-classe. Le lien inverse est appelé spécialisation classe 4 classe 3 classe 2 classe 1 agrégation association généralisation spécialisation 1 1..* 1 1..* constructeur véhicule moteur voiture camion avion

Associations Agrégation: Rôle et multiplicité : Grenoble INP Génie industriel 2A ICL MSI – UML 1 Associations Agrégation: Association transitive : si voiture est composée de moteur et si moteur est composé de courroie alors voiture est composée de courroie Association non systémique : si voiture est composée de moteur, moteur ne peut pas être composé de voiture Association qui peut être réflexive : une fonction peut être composée d ’autres fonctions Rôle et multiplicité : Une classe a un rôle dans une association. Les rôles portent une information de multiplicité précisant le nombre d ’associations auquel une instance d ’objet peut être associée. Les multiplicités les plus courantes sont : 1 / 0..1 / m..n / * /0..* / 1..*

Nommage des associations Grenoble INP Génie industriel 2A ICL MSI – UML 1 Nommage des associations constructeur véhicule Construire> produit fabricant <construit par <Transporte passager véhicule personne véhicule Conduit> conducteur véhicule Possède> propriétaire véhicule <Emploie employé employeur personne entreprise Dirige> directeur société Possède> société actionnaire

Multiplicité des associations Grenoble INP Génie industriel 2A ICL MSI – UML 1 Multiplicité des associations 1 0 .. 1 m .. n * ou 0 .. * 1 .. * Un et un seul (obligatoire) Zéro ou un (optionnel) De m à n (entiers) quelconque Au moins 1 Personne Société Employeur Employé 1 0..*

Arité des associations Grenoble INP Génie industriel 2A ICL MSI – UML 1 Arité des associations Association d’arité 3 Salle lieu Etudiant Cours Enseignant Début Fin

Placement des attributs et des associations Grenoble INP Génie industriel 2A ICL MSI – UML 1 Placement des attributs et des associations Etudiant Travail 1 Réalise > 0..* 0..* 0..* 1 Diplôme Note Mention 0..1 Chambre Numéro

Contraintes personne compte Est_titulaire> {Ordonnée} personne Grenoble INP Génie industriel 2A ICL MSI – UML 1 Contraintes personne compte Est_titulaire> 0 .. * 1 {Ordonnée} 0 .. * personne classe Parent d ’élève {Sous ensemble} 0 .. * Délégués 0 .. * personne université Enseignants {Ou-exclusif} 0 .. * Etudiants

Agrégation Livre Chapitre {Ordonnée} {Ordonnée} Paragraphe 1 .. * 1 Grenoble INP Génie industriel 2A ICL MSI – UML 1 Agrégation Livre Chapitre 1 .. * {Ordonnée} 1 {Ordonnée} 1 .. * Paragraphe

Composition La composition traduit une dépendance existentielle forte. Grenoble INP Génie industriel 2A ICL MSI – UML 1 Composition Homme Tête 1 1 La composition traduit une dépendance existentielle forte.

Exemple de diagramme de classes Grenoble INP Génie industriel 2A ICL MSI – UML 1 Exemple de diagramme de classes Outil Simulation Créer_Projet() Modifier_Projet() ModifierParamètre_Projet() Créer_Problème() Modifier_Problème() ModifierParamètre_Problème() Créer_Etude() Modifier_Etude() ModifierParamètre_Etude() FaireAppelAUneAncienne_Etude() Conclure_Etude() Créer_Cycle() Modifier_Cycle() ModifierPramètre_Cycle() Rajouter_Entité() Conclure_Cycle() 1..* Projet NomProjet NuméroPDM DateDebutProjet Projet() Tes_infos?() Nouv_Paramètres() Problème Titre_Problème Objectif Delai Prix NiveauPriorite FicheEtude Conclusion Problème() Nou_Paramètres() Etude Titre_Etude NomPièce ButEtude TypeEtude Etude() Tes_infos() Ajouter_Conclusion() 1 1..* 1..* 1 Induit 1..* 1..* 1..* LesProjets LesProblèmes 1 1 EstResoluPar 0..* 0..* 0..1 0..1 0..1 0..1 Suivant ComplétéePar 0..* 0..* 0..* 0..* LesEtudes 1..* 1..*

Grenoble INP Génie industriel 2A ICL MSI – UML 1 Modèle Statique Passage d ’un diagramme de classe à un modèle relationnel

Passage du modèle statique UML au relationnel : Grenoble INP Génie industriel 2A ICL MSI – UML 1 Règle 0 & 1: attribut et classe Passage du modèle statique UML au relationnel : les associations produit Réf-produit Libellé-p Prix-vente-p fournisseur Code-fournisseur Adresse Téléphone Classe Relation / Table Produit (Réf-produit, Libellé-p, Prix-vente-p) Fournisseur (Code-fournisseur, Adresse, Téléphone)

Passage du modèle statique UML au relationnel : Grenoble INP Génie industriel 2A ICL MSI – UML 1 Règle 2 : relation de multiplicité (1) Passage du modèle statique UML au relationnel : les associations fournisseur Code-fournisseur Adresse Téléphone Classe < fournir 1 produit Réf-produit Libellé-p Prix-vente-p remise Produit (Réf-produit, Libellé-p, Prix-vente-p, Code-fournisseur, remise) Fournisseur (Code-fournisseur, Adresse, Téléphone) Relation / Table

Passage du modèle statique UML au relationnel : Grenoble INP Génie industriel 2A ICL MSI – UML 1 Règle 3 : relation de multiplicité (0-1) Passage du modèle statique UML au relationnel : les associations Classe produit Réf-produit Libellé-p Prix-vente-p fournisseur Code-fournisseur Adresse Téléphone * < fournir 0-1 remise Produit (Réf-produit, Libellé-p, Prix-vente-p, remise, Code-fournisseur) Fournisseur (Code-fournisseur, Adresse, Téléphone) Relation / Table

Passage du modèle statique UML au relationnel : Grenoble INP Génie industriel 2A ICL MSI – UML 1 Règle 4 : relation de multiplicité (0..*) (1..*) Passage du modèle statique UML au relationnel : les associations fournisseur Code-fournisseur Adresse Téléphone < fournir 0..* ou 1..* produit Réf-produit Libellé-p Prix-vente-p remise Classe Produit (Réf-produit, Libellé-p, Prix-vente-p) Fournisseur (Code-fournisseur, Adresse, Téléphone) Relation / Table Fournir (Réf-produit, Code-fournisseur, remise)

Passage du modèle statique UML au relationnel : Grenoble INP Génie industriel 2A ICL MSI – UML 1 Règle 5 : relation réflexive orientée Passage du modèle statique UML au relationnel : les associations Père (nom-fils, nom-père) Relation / Table Classe Personne nom 0..* 1 père de >

Passage du modèle statique UML au relationnel : Grenoble INP Génie industriel 2A ICL MSI – UML 1 Règle 6 relation réflexive symétrique Passage du modèle statique UML au relationnel : les associations Relation / Table Personne (Nom) Frère (nom, nom) Classe Personne nom 0..* Attention, la relation étant transitive, des traitements devront être associés au modèle. 0..* frère de