Modélisation UML Christine Solnon INSA de Lyon - 3IF 2013 - 2014 1/140 . Introd
Modélisation UML Christine Solnon INSA de Lyon - 3IF 2013 - 2014 1/140 . Introduction Positionnement de l’UE / IF Domaines d’enseignement du département IF : Système d’Information Réseaux Architectures matérielles Logiciel Système Méthodes et Outils Mathématiques Formation générale Développement logiciel Unités d’Enseignement du domaine “Développement logiciel” : C++ (3IF) Génie logiciel (3IF) Modélisation UML (3IF) Qualité logiciel (4IF) Grammaires et langages (4IF) Ingénierie des IHM (4IF) Méthodologie de développement objet (4IF) 2/140 . Introduction Référentiel des compétences Utiliser des diagrammes UML pour modéliser un objet d’étude Interpréter un diagramme UML donné ; IF3-UML, IF4-DevOO, IF4-IHM Concevoir un diagramme UML modélisant un objet d’étude ; IF3-UML, IF3-C++, IF3-DASI, IF4-DevOO, IF4-IHM, IF4-LG Vérifier la cohérence de différents diagrammes modélisant un même objet d’étude ; IF3-UML, IF4-DevOO, IF4-LG Concevoir l’architecture d’un logiciel orienté objet Structurer un logiciel en paquetages et classes faiblement couplés et fortement cohésifs ; IF3-UML, IF3-C++, IF3-DASI, IF4-DevOO, IF4-LG Utiliser des Design Patterns ; IF3-UML, IF3-C++, IF3-DASI, IF4-DevOO, IF4-LG 3/140 . Introduction Organisation 6 séances de cours du 7 au 28 novembre 4 séances de travaux dirigés (TD) du 18 novembre au 18 décembre 1 devoir surveillé (DS) le 23 janvier 4/140 . Introduction Pour en savoir plus... Sur la modélisation en général : Modèles et Métamodèles Guy Caplat Sur le méta-modèle de référence d’UML : http ://www.omg.org/uml Sur UML et la modélisation objet : Modélisation Objet avec UML Pierre-Alain Muller, Nathalie Gaertner ; Chapitre sur la notation téléchargeable sur le site d’Eyrolles Sur les design patterns et la conception orientée objet : UML 2 et les design patterns Craig Larman Tête la première : Design Patterns Eric Freeman & Elizabeth Freeman ...et plein d’autres ouvrages à Doc’INSA ! 5/140 . Introduction Introduction à la modélisation Plan du cours 1 Introduction Introduction à la modélisation Introduction à UML 2 Modéliser la structure avec UML 3 Modéliser le comportement avec UML 4 Principes et patrons de conception orientée objet 6/140 . Introduction Introduction à la modélisation Qu’est-ce qu’un modèle ? Modèle = Objet conçu et construit (artefact) : Pour représenter un sujet d’études Représentativité Exemple de sujet : les circuits électriques S’appliquant à plusieurs cas de ce sujet d’étude Généricité Exemple de cas : des mesures (tension, intensité, ...) sur des circuits Incarnant un point de vue sur ces cas Abstraction Exemple de point de vue : U = RI ; Abstraction de la longueur des fils, la forme du circuit, ... Un même sujet d’études peut avoir plusieurs modèles ; Chaque modèle donne un point de vue différent sur le sujet 7/140 . Introduction Introduction à la modélisation Langages de modélisation Langages utilisés pour exprimer un modèle : Langues naturelles : qui évoluent hors du contrôle d’une théorie Ex : Français, Anglais, ... Langages artificiels : conçus pour des usages particuliers Langages formels : syntaxe définie par une grammaire Ex : Logique, langages informatique (C, Java, SQL, ...), ... Pouvoir d’expression d’un langage : ; Ensemble des modèles que l’on peut exprimer Le choix du langage influence la conception du modèle... ...et donc la perception du sujet d’études ! Interprétation d’un langage : ; Procédure pour comprendre un modèle (Sémantique) Modèle ambigü : Plusieurs interprétations différentes possibles Modèle exécutable : Interprétation exécutable par une machine 8/140 . Introduction Introduction à la modélisation Langages de modélisation basés sur les graphes Définition Un graphe est défini par un couple (N, A) tel que N est un ensemble de nœuds (aussi appelés sommets) ; Composants du modèle A ⊆N × N est un ensemble d’arcs ; Relation binaire entre les composants du modèle Nœuds et arcs peuvent être étiquetés par des propriétés La modélisation par les graphes date de [Euler 1735] [Image empruntée à Wikipedia] 9/140 . Introduction Introduction à UML Plan du cours 1 Introduction Introduction à la modélisation Introduction à UML 2 Modéliser la structure avec UML 3 Modéliser le comportement avec UML 4 Principes et patrons de conception orientée objet 10/140 . Introduction Introduction à UML Historique d’UML [Image empruntée à Wikipedia] 11/140 . Introduction Introduction à UML UML et l’OMG OMG = Object Management Group (www.omg.org) : Fondé en 1989 pour standardiser et promouvoir l’objet Version 1.0 d’UML (Unified Modeling Language) en janvier 1997 Version 2.5 en octobre 2012 Définition d’UML selon l’OMG : Langage visuel dédié à la spécification, la construction et la documentation des artefacts d’un système logiciel L ’OMG définit le méta-modèle d’UML ; Syntaxe et interprétation en partie formalisées Attention : UML est un langage... pas une méthode ; Méthode dans le cours 4IF “Développement Orienté Objet" 12/140 . Introduction Introduction à UML 3 façons d’utiliser UML selon [Fowler 2003] (On y reviendra en 4IF...) Mode esquisse (méthodes Agile) : Diagrammes tracés à la main, informels et incomplets ; Support de communication pour concevoir les parties critiques Mode plan : Diagrammes formels relativement détaillés Annotations en langue naturelle ; Génération d’un squelette de code à partir des diagrammes ; Nécessité de compléter le code pour obtenir un exécutable Mode programmation (Model Driven Architecture / MDA) : Spécification complète et formelle en UML ; Génération automatique d’un exécutable à partir des diagrammes ; Limité à des applications bien particulières ; Un peu utopique (...pour le moment ?) 13/140 . Introduction Introduction à UML Différents modèles UML UML peut être utilisé pour définir de nombreux modèles : Modèles descriptifs vs prescriptifs Descriptifs ; Décrire l’existant (domaine, métier) Prescriptifs ; Décrire le futur système à réaliser Modèles destinés à différents acteurs Pour l’utilisateur ; Décrire le quoi Pour les concepteurs/développeurs ; Décrire le comment Modèles statiques vs dynamiques Statiques ; Décrire les aspects structurels Dynamiques ; Décrire comportements et interactions Les modèles sont décrits par des diagrammes (des graphes) ; Chaque diagramme donne un point de vue différent sur le système 14/140 . Introduction Introduction à UML 14 types de diagrammes d’UML 2.2 ...et un langage pour exprimer des contraintes : OCL 15/140 . Introduction Introduction à UML Diagrammes UML : Points de vue sur le système [Image empruntée à Muller et Gaertner] 16/140 . Introduction Introduction à UML Notations communes à tous les diagrammes (1/2) Stéréotypes et mots-clés (on y reviendra en 4IF...) : Définition d’une utilisation particulière d’éléments de modélisation ; Interprétation (sémantique) particulière Notation : «nomDuStéréotype» ou {nomDuMotClé} ou icone Nombreux stéréotypes et mots-clés prédéfinis : «interface», «invariant», «create», «actor», {abstract}, {bind}, {use}... Valeurs marquées (on y reviendra aussi en 4IF...) : Ajout d’une propriété à un élément de modélisation Notation : { nom1 = valeur1, ..., nomn = valeurn} Valeurs marquées prédéfinies (ex. : derived : Bool) ou personnalisées (ex. : auteur : Chaîne) Commentaires : Information en langue naturelle Notation : o- - - - - - - - - - - - - - - - - - - 17/140 . Introduction Introduction à UML Notations communes à tous les diagrammes (2/2) Relations de dépendance : Notation : [source]- - - - - - - - - >[cible] ; Modification de la source peut impliquer une modification de la cible Nombreux stéréotypes prédéfinis : «bind», «realize», «use», «create», «call», ... Contraintes (on y reviendra aussi en 4IF) : Relations entre éléments de modélisation ; Propriétés qui doivent être vérifiées ; Attention : les contraintes n’ont pas d’effet de bord Notation : o- - - - - - - -{ contrainte } 3 types de contraintes : Contraintes prédéfinies : disjoint, ordered, xor, ... Contraintes exprimées en langue naturelle Ex. : temps d’exécution inférieur à 10 ms Contraintes exprimées avec OCL (Object Constraint Language) Ex. : context Pile inv : self.nbElts >= 0 Stéréotypes : «invariant», «précondition», «postcondition» 18/140 . Modéliser la structure avec UML Plan du cours 1 Introduction 2 Modéliser la structure avec UML 3 Modéliser le comportement avec UML 4 Principes et patrons de conception orientée objet 19/140 . Modéliser la structure avec UML Point de vue statique sur le système Décrire la structure du système en termes de : Composants du système ; Objets, Classes, Paquetages, Composants, ... Relations entre ces composants ; Spécialisation, Association, Dépendance, ... ; Pas de facteur temps Différents diagrammes statiques que nous allons voir : Diagrammes d’objets (Cours) Diagrammes de classes (Cours + TD) Diagrammes de paquetage (Cours + TD) Diagrammes de composants (Cours) Diagrammes de déploiement (Cours) 20/140 . Modéliser la structure avec UML Structuration Orientée Objet Plan du cours 1 Introduction 2 Modéliser la structure avec UML Structuration Orientée Objet Diagrammes d’objets Diagrammes de classes Diagrammes de paquetage Diagrammes de composants Diagrammes de déploiement 3 Modéliser le comportement avec UML 4 Principes et patrons de conception orientée objet 21/140 . Modéliser la structure avec UML Structuration Orientée Objet Pourquoi une structuration orientée objet ? Unicité et universalité du paradigme Réduire le décalage entre monde réel et logiciel ; Objets réels ⇒Objets conceptuels ⇒Objets logiciels Réutilisabilité et évolutivité facilitées par différents mécanismes Encapsulation, Modularité, Abstraction, Polymorphisme, Héritage ; Faible couplage inter-objets / Forte cohésion intra-objet Paradigme qui arrive à maturité Bibliothèques de classes, Design patterns, UML, Méthodologies de développement (UP , Agile, XP , ...), ... ; Environnements de développement intégrés (IDE) uploads/Ingenierie_Lourd/ cours-uml.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/dhLxrVmjzuKRh9yMnBP95aJ1GtxZgP6iCuA4lfcD4Iv5MMYOv8L9WQNMkEynBtNX1eW1AzfQ4h4p4PvDiGtNpWkS.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/S0Tu2t8096ahCIMp5BhRH5fsbYvABhJVyZHuLQaQLiCCQjAIdlvxDGjPuMljgacnXpQkAtayXDbL4Lt8liPMNeYl.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/KQMMNp60pUfIgNIanAMhr4ufUNEYeZGHfZys4QWpQVOcNBPBxHpEAqNEwVCNsk31bqAsljhUy5e6bsWlyf26kuN9.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/cq3ah9zfDG3YeNlDNmgNWq0yHlUEO2nfZnpIzeCG4INXYETe4zWyFyxwQ6sr6kiSjp2NM8eaPuqNcMfASdiK4Pvd.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/VtNF0wk924KKChMvYp7jmsbcS8VsWNUfQ8wCQoJvxGDUV502CKh1S3cFzJfkBjzAVBPlKAxzmd9xM3awyFadr5ad.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/Ff95qj1laAJ0xqCXBCKswYupurm15Cswyqpa5Gy53ZHRci8eypN7kOCOqYbkZpAf1dxkbiDOsPOwLUF0GLk67PzW.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/a8qmWhKTebMWylJ8RAyiaCKnhpEhgtVFnDajcmXUAIaKgUc10YEbtuRckGhugjH5veRsv9N21bIUoIJU1XZ5dEKh.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/MNugl0fQldUOj6ms7TWjpH8R82NEScHHnekIDjAUaKkLJEV9VtxCO2VgSyqdXvfzTh8DdSX79F7taeJuIqb8EUjm.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/z9FugOVZEKEW7CFOOJ9lfRsJoIwkzKSQMpd6xFxAXjB2pCpNDFmo9sqvgCI00LBRsOn99Xe9EalmVCBl96Xrb9au.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/LUaQK8efG2ojMwvcOgK9NfpZWfbtvwMo851l7jsqlG0zwQgd1xk5BUiA9ACfN0UsESyEofiXVpXVAidupo18CeUZ.png)
-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 18, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 2.2112MB