Download
uml diagrammes de classes n.
Skip this Video
Loading SlideShow in 5 Seconds..
UML : Diagrammes de Classes PowerPoint Presentation
Download Presentation
UML : Diagrammes de Classes

UML : Diagrammes de Classes

125 Views Download Presentation
Download Presentation

UML : Diagrammes de Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. UML : Diagrammes de Classes Classes, attributs, opérations, méthodes, associations, généralisation, dépendance, interface, …

  2. Notions de base • La classe • Les attributs • Les symboles d’annotation • Les opérations • Les mots-clés, stéréotypes et propriétés.

  3. La Classe : Définition • Une classe est un classificateur • Un classificateur UML est un élément de modèle qui décrit des caractéristiques structurelles et comportementales. • Une « classe » peut être soit : • une classe conceptuelle (‘abstraite’, au sens Analyse), • une classe logique (indépendante d’un langage de programmation), • une classe physique (Java/ C#/ C++).

  4. Classe Mode Esquisse Classe Mode Esquisse Visual Studio 2005 La Classe : Notation • Plusieurs notations possibles (normalement un rectangle). Visual Paradigm for UML

  5. La Classe abstraite : Notation • Il existe une notation particulière pour les classes abstraites. Le nom de la classe apparaît en italique.

  6. Les Attributs : Définition • Les attributs d’une classe (également nommés propriétés structurelles en UML) peuvent se représenter de différentes façons : • Texte, par exemple m_driver : CWifiDriver • Ligne d’association • Une combinaison des deux.

  7. Texte Association Association + Texte Les Attributs : Représentation

  8. Les Attributs : Visibilité • En notation UML, les marques de visibilité sont : • « + » pour un attribut public • « - » pour un attribut privé

  9. Les Attributs : Type Pour les types « classes », on utilisera de préférence une ligne d’association afin de mieux visualiser les relations entre classes.

  10. Les Attributs : Notation pour le format Texte • La syntaxe complète de la notation d’un attribut sous forme texte est la suivante : Visibiliténom : type[multiplicité]=défaut{chaîne de propriétés} • + m_Driver : CWifiDriver[0..1]=null • - m_Paquets : CPacket[0..*]{ordered} • - m_Paquets : ListePackets{list, ordered} • - DefTimeOut : integer=20 {readonly} • … • Les attributs sont supposés privés si aucune visibilité n’est précisée. • m_Paquets : CPacket[0..*]{ordered} est équivalent à • - m_Paquets : CPacket[0..*]{ordered}

  11. Les Attributs : Notation pour le format Texte • UML permet d’employer la syntaxe de n’importe quel langage de programmation pour déclarer les attributs (pourvu que l’utilisateur et/ou l’outil en soient informés). • - m_Delay : UInt32 • - m_Packets : ArrayList=null • - m_Packets : List<CPacket> =null • privateList<CPacket>m_Packets;

  12. Les Attributs : Notation pour le format Ligne d’association • Pour les lignes d’associations, on a : • Une flèche de navigabilité pointant de la source (CMonitoring) vers l’objet cible (CWifiDriver) indiquant que CMonitoring a un attribut qui est une référence sur une instance de CWifiDriver

  13. Les Attributs : Notation pour le format Ligne d’association • Pour les lignes d’associations, on a : • Une indication de multiplicité du côté cible, mais non du côté source.

  14. Zéro ou plus; plusieurs Un ou plus De 1 à 40 Classe référencée Classe référencée Classe référencée Classe référencée Classe référencée 5 1..40 * 1..* 3,5,8 Exactement 5 Exactement 3,5 ou 8 Les Attributs : Notation pour le format Ligne d’association • Les multiplicités possibles sont :

  15. Les Attributs : Notation pour le format Ligne d’association • Pour les lignes d’associations, on a : • Un nom de rôle (m_Driver) seulement du côté cible pour mentionner le nom de l’attribut. • Pas de nom d’association.

  16. Les Attributs : Notation pour le format Ligne d’association • En résumé, une ligne d’association est définie par : • une flèche de navigabilité, • un nom de rôle (optionnel), officiellement appelée nom d’extrémité d’association, pour indiquer le nom de l’attribut, • une valeur de multiplicité, • ainsi qu’une chaîne de propriétés telle que {ordered} ou {list,ordered}.

  17. Les Attributs : Notation pour le format Ligne d’association • Une chaîne de propriétés a la forme suivante : • { <mot-clé> <mot-clé>* } • Autrement dit, une suite de mots-clés situés à l’intérieur d’accolades. • Les mots-clés sont : • soit définis par UML : ordered, unique, … • soit définis par l’utilisateur : list (faisant référence à l’interface List d’un langage orienté objet).

  18. Les Attributs : Notation pour le format Ligne d’association

  19. Les Attributs : Format Texte vs Format Ligne d’association • Les types de données courants sont primitifs : • Int, float, double, DateTime, Date, Color, string, PhoneNumber, … • Pour les attributs correspondants à ces types, on utilisera de préférence la notation sous forme de texte. • Pour les types de données définis par une classe, on utilisera de préférence la notation sous forme de ligne d’association. • Permet de mieux visualiser les relations entre classes (accentue les connexions).

  20. Symboles d’annotation : notes, commentaires, contraintes, … • Les symboles d’annotation sont possibles dans n’importe quel diagramme UML mais ils sont particulièrement courants dans les diagrammes de classes. • Un symbole d’annotation a la forme d’un rectangle au coin corné relié par une ligne pointillée à l’élément annoté.

  21. Symboles d’annotation : notes, commentaires, contraintes, … • Un symbole d’annotation peut représenter plusieurs choses, par exemple : • Une note ou un commentaire UML qui, par définition n’a pas d’impact sémantique. • Une contrainte UML, auquel cas elle doit être placée entre accolades { … }

  22. Note/Commentaire Contrainte Symboles d’annotation : notes, commentaires, contraintes, …

  23. Opérations : Notation • Le format complet de la syntaxe officielle d’une opération est le suivant : Visibiliténom{liste de paramètres}{chaîne de propriétés} • En UML 2.0, le type de retour a été supprimé de la notation. Néanmoins, il est plus judicieux de continuer à utiliser le format avec le type de retour. Visibiliténom{liste de paramètres}: type de retour{chaîne de propriétés}

  24. Opérations : Notation Visibiliténom{liste de paramètres}: type de retour{chaîne de propriétés} • +StartCapture(delay : integer): void • +StartCapture(delay : integer) • +StartCapture(delay) • + StopCapture(): void • + StopCapture() • + GetCurrentPacket(): CPacket • + SetInterface(name : string): boolean • - RetrieveInternalPacket()

  25. Opérations : Notation

  26. Opérations : Notation • Les opérations sont considérées comme publiques lorsque la visibilité n’est pas explicitement spécifiée. • Les chaînes de propriétés contiennent des informations supplémentaires arbitraires, par exemple les exceptions qui doivent être lancées, l’indication qu’une opération est abstraite, etc. -InternalStartCapture() { Exception : InvalidInterfaceException }

  27. Opérations : Notation • Outre la syntaxe officielle des opérations, UML permet d’écrire les signatures des opérations dans n’importe quel langage, Java par exemple, pourvu que le lecteur ou l’outil en soient informés. • + StartCapture(delay : integer): boolean{ exception InvalidInterfaceException } • public boolStartCapture(intdelay) throwsInvalidInterfaceException

  28. Opérations vs Méthodes • Une opération n’est pas une méthode. Une opération UML est une déclaration, avec un nom, des paramètres, un type de retour, une liste d’exceptions et éventuellement un ensemble de contraintes sous forme de pré- et de postconditions. • Mais ce sont les méthodes qui sont les implémentations.

  29. Méthodes : Définition • Une méthode UML est l’implémentation d’une opération. Si des contraintes sont définies, la méthode doit les satisfaire. Une méthode peut être représentée de différentes façons : • Dans les diagrammes d’interactions, par les détails et la séquences des messages; • Dans les diagrammes de classes, avec un symbole de note UML assortie du stéréotype « méthod ».

  30. Méthodes : Exemple Utilisation d’une note pour le corps de la méthode

  31. Méthodes : Exemple Utilisation de la documentation de l’opération

  32. Méthodes • Lorsque nous utilisons une note UML pour représenter une méthode, nous mélangeons les vues statique et dynamique dans le même diagramme. • Le corps de la méthode, qui définit un comportement dynamique, ajoute un élément dynamique au diagramme de classes statique.

  33. Les Mots-clés • Un mot-clé UML permet de catégoriser un élément de modèle avec du texte. • Exemple : interface, abstract, actor, ordered, … • La plupart des mots-clés sont placés entre guillements (UML 2.0) « … » comme « actor », « interface », … • Certains figurent entre accolades { … }, comme {abstract} qui est une contrainte. • Généralement utilisés pour les chaînes de propriétés. • Possibilité d’avoir des termes définis par l’utilisateur

  34. Les Stéréotypes • Un stéréotype représente un raffinement d’un concept de modélisation existant. • = Mécanisme d’extension • Stéréotypes • prédéfinis par UML (défini au sein d’un profil UML) • ou définis par l’utilisateur • Placés entre guillemets « … » • Exemples : • « interface », « actor », « boundary » pour les classes. • « destroy » dans les diagrammes de séquences

  35. Stéréotype Acteur Stéréotype Boundary Stéréotype Interface Les Stéréotypes

  36. Propriétés et Chaînes de propriétés • En UML, une propriété est « une valeur nommée qui dénote une caractéristique d’un élément ». • Une propriété a un impact sémantique • Peuvent être soit : • Prédéfinies par UML : visibilité attr./opér. • Définies par l’utilisateur • Peuvent être présentées de nombreuses façons • L’approche textuelle consiste à employer la chaîne de propriétés UML { nom1 = valeur1, nom2 = valeur2 } • Certaines propriétés n’ont pas de valeur (booléenne). • Exemple : { abstract, visibility = public } • Ou : { abstract = true, visibility = public }

  37. Relations entre classes • La généralisation • L’association • La composition et l’agrégation • La dépendance

  38. La généralisation : Notation • En UML, on représente la généralisation (l’héritage) par une ligne continue et une flèche formant un triangle blanc, allant de la sous-classe vers la super-classe.

  39. L’association: Notation • L’association est souvent utilisée très tôt dans la modélisation (modélisation du domaine) afin de montrer qu’il existe une connexion entre deux classes et qu’il est important de la mémoriser (même très brièvement).Par contre, l’association pourra dans l’application devenir : • Une clé étrangère dans une table, • Une référence vers un objet, • … • Nous n’aborderons pas ici l’association en temps qu’élément abstrait de connexion. Nous le ferons lorsque nous verrons la modélisation du domaine. • Nous nous intéresserons uniquement à la notation.

  40. rôles L’association: Notation • L’association est représentée par une ligne continue. • Les extrémités de l’association sont appelés rôles

  41. L’association: Notation • Les rôles peuvent avoir les caractéristiques optionnelles suivantes : • Nom; • Multiplicité; • Navigabilité; • Chaîne de propriétés (contraintes).

  42. CPacket is ordered CMonitoring receive 0..* L’association: Notation • Attention au sens de lecture CPacket

  43. CMonitoring Is received by 1 CPacket L’association: Notation • Attention au sens de lecture

  44. L’association: Notation • L’association peut être également nommée. • Si aucune flèche n’est présente, la convention consiste à lire de gauche à droite ou de haut en bas : CMonitoring capture des paquets.

  45. Associations multiples : Notation • Il peut exister plusieurs relations (associations) entre deux classes.

  46. Associations qualifiées : Définition • Une association qualifiée possède un qualificateur qui sert à sélectionner un objet (ou plusieurs) dans un ensemble plus vaste d’objets apparentés. • Du point de vue logique, cela se traduit par une recherche sur une clé, par exemple, la recherche d’objets dans une ArrayList.

  47. Catalogue produit sans association qualifiée Catalogue produit avec association qualifiée (sur CodeArticle) Qualificateur Nouvelle multiplicité, reflétant la sélection d’une seule instance Associations qualifiées : Notation

  48. Associations qualifiées : Notation • Normalement, le qualificateur est une propriété de la classe cible. Il est possible d’utiliser une classe implémentant la logique de sélection.

  49. Classes d’association : Définition • Une classe d’association permet de traiter une association comme une classe, et de la modéliser avec des attributs, des opérations et d’autres caractéristiques. • En UML, cela est représenté par une ligne pointillée joignant l’association et la classe d’association.

  50. Classes d’association : Notation Une personne peut avoir un emploi dans plusieurs entreprises