Unified Modeling Language ************************* UML permet d'établir des relations entre objets. Il existe 7 types de diagrammes différents. Ce rappel ne traitera que le diagramme de classe qui représente la représentation logique des relations. Une classe ========== .. uml:: A [Class="NameOfClass + public # protegée ~ paquetage - privé"]; Multiplicité ============ Un blogueur peut avoir été à l'origine de 0..n article(s) ... par contre un article n'est attaché qu'a un blogueur. Un blogueur peut représenté 1 à 5 auteurs par la classe **Auteur** .. uml:: A [Class="Blogeur + auteurs: Auteur[1,5]"]; B [Class="Article"]; A (1)--(*) B; Relation ======== Il existe 5 types différentes de relations. Une relation représente un rapport plus ou moins fort entre deux classes. Liste des relations suivant leurs ordres de relation (de la moins à la plus forte) * dépendance: un objet travail brièvement avec une autre classe * association: un objet travail brièvement avec une autre classe * agrégation: une classe détient et partage une référence à des objets d'une autre classe * composition: une classe contient des objets d'une autre classe * héritage: une classe est un type d'une autre classe Dépendance ---------- .. uml:: A [Class="InterfaceUtilisateur"]; B [Class="Article"]; A .> B; InterfaceUtilisateur est dépendante de la classe Article car elle a besoin de lire le contenu de ce dernier pour afficher l'article à l'utilisateur Association ----------- .. uml:: A [Class="Blogeur"]; B [Class="Article"]; A (1)--(*) B; Un blogueur peut avoir été à l'origine de 0..n article(s) ... par contre un article n'est attaché qu'a un blogueur. Agrégation ---------- .. uml:: A [Class="Auteur"]; B [Class="Blogueur"]; A (1)<>-(*) B; Un auteur détient plusieurs comptes de blogeur ... cette relation est forte car un compte blogeur n'existe pas sans Auteur, l'Auteur est le propriétaire d'un compte. Composition ----------- .. uml:: A [Class="Article"]; B [Class="Introduction"]; C [Class="CorpsPrincipal"]; A <<>- B; A <<>- C; Une introduction ne peut exister sans Article, l'article est **constituée** d'une introduction Généralisation ou héritage -------------------------- .. uml:: A [Class="Figure segments"]; B [Class="Carré segments: Segment[4]"]; A <|- B; la Figue est la classe la plus générale