Télécharger la présentation
Publié parGeneviève Rochefort Modifié depuis plus de 9 années
1
EPITECH 2009 sebastien@migniot.com
UML EPITECH 2009
2
UML2 – Diagrammes principaux
Pré-Requis La démarche Classes, la vue statique Séquences, la vue dynamique Diagrammes de classe Notation, attributs et opérations Associations entre classes Abstractions et interfaces Patterns et méta-classes Diagrammes de séquence Les types de message Contraintes, récursivité, boucles Diagramme de collaboration Exemple complet
3
Pré-requis La démarche Classes, la vue statique
Séquences, la vue dynamique
4
La démarche UseCase : utilisations du système
Sequence : déroulement par fonctionnalité Class : détail des participants
5
Classes Représente les concepts participant au logiciel
Représente la vue statique, l'union de tous les attributs et opérations issus de la vue dynamique Contient les relations entre concepts
6
Séquences Représente le déroulement ou le séquencement
Détaille en profondeur un message Liste les participants à la séquence
7
Diagrammes de classe Notation, attributs et opérations
Associations entre classes Abstractions et interfaces Patterns et méta-classes
8
Notation, attributs et opérations
Un objet particulier est nommé, souligné et suivi de sa classe Ses attributs représentent son état à un moment donné Il reste l'instance d'une classe
9
Notation, attributs et opérations
Une classe est présentée comme une fiche de propriétés Ses attributs d'abord Ses opérations ensuite Tous les membres ont une visibilité private - protected rien public +
10
Notation, attributs et opérations
Le type des membres est suffixé Format d'attribut [visi] [nom] [:] [type] Format d'opération [visi] [nom] [(] paramètre* [)] [:] [type] Format de paramètre [in|out|inout] attribut*
11
Notation, attributs et opérations
Les classes ou membres abstraits sont en italique Les membres statiques sont soulignés
12
Associations entre classes
Généralisation Réalisation Agrégation Composition Dépendance utilisation instanciation Import, friend
13
Associations entre classes
La généralisation spécifie que la destination généralise la source La réalisation spécifie que la source remplit le contrat décrit par la destination
14
Associations entre classes
L'agrégation est la relation de contenance La composition est employée lorsque le conteneur contrôle le cycle de vie des contenus Exemple : Un album contient physiquement des Images alors qu’une Facture contient une référence vers un payeur existant ailleurs
15
Associations entre classes
La relation de dépendance générique permet de multiples expressions Les stéréotypes classique sont use instanciate import friend
16
Abstractions et interfaces
Une classe abstraite représente une mise en commun non instanciable Exemple : Un noeud de système de fichier n’a pas d’existence physique autre que Dossier, Fichier et Lien Les interfaces sont les concepts minimalistes les plus proches d’un contrat Exemple : Le comparateur, le filtre
17
Patterns et méta-classes
Les Design pattern, des patrons de conception Exemple: Le Visitor et le Composite du système de fichier Eprouvées depuis des années, nul besoin de reinventer la roue, faire confiance aux QI à trois chiffres D'autres patrons, les patrons d’implémentation Exemple : couplage LDAP et Database Les Meta classes, les classes des classes
18
Annexe1 Exercice suivant le temps
Écrire le diagramme de classes qui modélise cette présentation Montre que les diagrammes de classes ne sont pas triviaux
19
Diagrammes de séquence
Les types de message Contraintes, récursivité, boucles Diagramme de collaboration
20
Les types de message Synchronze Asynchrone Retour Réflexif
Instanciation et destruction
21
Message synchrone Le message synchrone est le plus concevable
L'appelant pose la question et attend la réponse Forme impérative et bloquante
22
Message asynchrone Le message asynchrone est un mail
L'appelant envoie « avec bon espoir de réception » Forme non bloquante, fire and forget
23
Message retour Pas forcément explicité En général implicitement OK
Représente les choix comportementaux et les plages de valeur en réponse au message
24
Message réflexif Typique d'un message auto-suffisant
Exemple : FileSystem.getRoot() Valable pour les récursions Valable pour les itérations
25
Instanciation, destruction
Pour effectuer un virement on passe par une Transaction La transaction est crée, stéréotypée <<new>> ou <<instantiate>> La transaction est effectuée puis détruite, marqué d'un X Cf documents normatifs
26
Contraintes, récursivité, boucles
Les blocs stéréotypés, types et gardes assert : assertion, donc nécessité loop : itération sur une collection alt : alternatives, if else-if, else opt : optionel, if unitaire sans else par : parallele, exécution concurrente break, seq, strict, neg, critical Exemples
27
Blocs stéréotypés Les blocs ont un stéréotype en haut du cadre
Les blocs ont des gardes pour chaque compartiment du cadre stéréotypé alt, assert, loop ...
28
Assertion Bloc stéréotypé assert
Permet de préciser un cas sine qua non Exprime une condition évidente Exemple: dans un chemin de fichier, les intermédiaires sont des dossiers
29
Conditionnalité Bloc stéréotypé opt et alt
Le bloc opt est un if sans else, par exemple, « si le compte est débiteur, envoyer un mail » Le bloc alt décrit de multiples choix exclusifs, par exemple « impair, pair ou jackpot »
30
Itération Bloc stéréotypé loop Le garde indique la collection itérée
Couplable avec break pour une itération de recherche Remarque : va souvent de pair avec une agrégation de cardinalité > 1
31
Exemple mixte Deux blocs opt ne se joignent pas forcément en un seul bloc alt – commenter – Le bloc loop est évident
32
Concurrence Bloc stéréotypé par, seq et strict
Le lancement de windows lance de multiples programmes Le lancement est fini sur jonction des actions parallèles
33
Autres blocs Break : fin de boucle Neg : chemin impossible, en erreur
Terminer une boucle de recherche Neg : chemin impossible, en erreur Exemple du masculin enceinte Critical : chemin synchronisé Exemple du call 911
34
Syntaxe des messages [pré "/"] [["["cond"]"] [séq] ["*"["||"]["["iter"]"]] ":"] [r ":="] msg"("[par]")" 3 : bonjour() [heure = midi] 1 : manger() 1.3.6 * : ouvrir() 3 / *||[i := 1..5] : fermerEnParralele() 1.3,2.1 / [t < 10s] 2.5 : age := demanderAge(nom,prenom) Cosmétique avant tout
35
Exemple des billets Exemple de bloc alternatifs
Pour certaines alternatives, itérer Notation des « continuation »
36
Annexe2 Exercice suivant le temps
Écrire le diagramme de séquences qui modélisent le scénario « rendre transparentes les images de la présentation » Montre que les diagrammes de classes sont triviaux .. lorsque les diagrammes de séquence sont implicites
37
Diagramme de collaboration
Bijection avec les diagrammes de séquences Plus facile à écrire et imaginer Plus facilement partageable Traduit en diagramme de séquences pour ajouter des blocs et des gardes
38
Récapitulatif Pré-Requis Diagrammes de classe Diagrammes de séquence
La démarche Classes, la vue statique Séquences, la vue dynamique Diagrammes de classe Notation, attributs et opérations Associations entre classes Abstractions et interfaces Patterns et méta-classes Diagrammes de séquence Les types de message Contraintes, récursivité, boucles Diagramme de collaboration
39
Exemple complet Ouvrir le diagramme BoUML joint au cours dans le fichier ./UML2 - Diagrammes principaux/Diagrammes/Diagrammes.prj et illustrer les relations d'héritage, les abstractions, les interfaces, les conditionnalités et assertion de séquencement.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.