20/01/2021 UML Cours 1 : Diagrammes de classes : associations https://lipn.univ

20/01/2021 UML Cours 1 : Diagrammes de classes : associations https://lipn.univ-paris13.fr/~gerard/uml-s2/uml-cours01.html 1/11 UML Cours 1 : Diagrammes de classes : associations Pierre Gérard, IUT de Villetaneuse, DUT informatique, S2 2013 QUI ? Les diagrammes de cas d’utilisation modélisent à QUOI sert le système. Le système est composé d’objets qui interagissent entre eux et avec les acteurs pour réaliser ces cas d’utilisation : Les diagrammes de classes permettent de spécifier QUI intervient à l’intérieur du système Il spécifie également quels liens peuvent entretenir les objets du système Chaque nouveau diagramme répond à une question différente : Ils sont complémentaires et pas du tout interchangeable Ils doivent être cohérents les uns avec les autres C’est en répondant à toutes les questions qu’on définit complètement un système Diagrammes d’objets Les objets sont les éléments constitutifs du système, avec leurs données propres et des moyens de de traitement pour réaliser les services attendus. Attention : non corformité avec la représentation des objets en UML de ce schéma issu d’un TD préliminaire. 20/01/2021 UML Cours 1 : Diagrammes de classes : associations https://lipn.univ-paris13.fr/~gerard/uml-s2/uml-cours01.html 2/11 Diagrammes de classes Les classes sont des types d’objets. Objets Objets du monde réel : Le stylo que l’un tient en main. Le style qu’un autre a dans sa trousse. La facture papier que vous avez reçue à la livraison de votre dernière commande. Objets informartiques En informatique, les objets ne désignent pas de éléments matériels concrets. Un objet est un conteneur, qui possède sa propre existence et incorpore des données et des mécanismes en rapport avec une chose tangible. C’est le concept central de la programmation et de la conception orientée objet. Objets informatiques Une structure de données rassemblant les informations disponibles sur une personne (adresse=“Guildford”, nom=“Accroc”, prénom=“Arthur” etc). Une structure de données rassemblant les informations disponibles sur une autre personne (adresse=“Bételgeuse”, nom=“Escort”, prénom=“Ford” etc). Une représentation informatique du stylo tenu en main (avec son propre niveau d’usure, sa propre couleur etc). L’enregistrement dans une base de données de votre dernière commande (avec sa propre date, son propre montant, ses propres 20/01/2021 UML Cours 1 : Diagrammes de classes : associations https://lipn.univ-paris13.fr/~gerard/uml-s2/uml-cours01.html 3/11 articles etc). Objets en UML c1, c2 et c3 sont des commandes a et b sont des personnes c1, c2 et c3 ont un montant, une date etc… a et b ont un nom, un prénom et une adresse Syntaxe du nom des objets : nom:Type Le nom peut-être omis, ou le type, mais pas les deux Les deux points restent dans tous les cas de figure, même sans rien devant ou derrière, la cas échéant Classes Une classe définit un type d’objet. Une classe déclare donc des propriétés communes à un ensemble d’objets : Les attributs correspondant à des variables associées aux objets de la classe Les opérations correspondant à des opérations (fonctions) associées aux objets de la classe Exemples de propriétés : Toutes les commandes ont une date (attribut). Toutes les personnes ont un nom (attribut). Toutes les personnes ont un numéro (attribut). Tous les articles peuvent être achetés (opération). Représentation d’une classe en UML Une classe est composée d’un nom, d’attributs et d’opérations. 20/01/2021 UML Cours 1 : Diagrammes de classes : associations https://lipn.univ-paris13.fr/~gerard/uml-s2/uml-cours01.html 4/11 Le nom d’une classe commence par une majuscule Le nom d’une propriété commence par une minuscule Les types de base (int, long, float, double, boolean) sont en minuscules Il n’a pas d’espace dans les noms de classes ou de propriétés Pour les noms composés, on fait commencer chaque mot par une majuscule Concepts et instance Une instance est la concrétisation d’un concept abstrait. Instanciation d’une classe : Une classe est un concept en celà qu’elle n’est que la spécification d’un type Un objet est une instance avec ses propres attributs et son propre état Instanciation d’une association : Une association entre deux classes est un concept : elle décrit quels types d’objets et combien peuvent être associés à d’autres Un lien est une instance : c’est un lien concret entre deux objets particulier Attributs d’une classe Syntaxe (entre accolades, les mentions optionnelles) : {-,#,+,~} nomAttribut : TypeAttribut {[multiplicité]} {=valeurInitiale} {-,#,+,~} : un symbole parmi les quatre pour définir la visibilité de l’attribut : privée, protégée, publique, paquetage la multiplicité définit le nombre de valeurs dans une collection (tableau, liste) Exemples : - i : int pour un attribut privé + pp : PointPlan pour un attribut public tabI : int[*] pour un tableau d’entiers de taille quelconque et à la visibilité non définie tabPP : PointPlans[4] pour un tableau de 4 points exactement et à la visibilité non définie 20/01/2021 UML Cours 1 : Diagrammes de classes : associations https://lipn.univ-paris13.fr/~gerard/uml-s2/uml-cours01.html 5/11 x : float = O.0 pour un nombre à virgule initialisé à 0 et à la visibilité non définie Encapsulation L’encapsulation est un principe de conception consistant à protéger le coeur d’un système des accès intempestifs venant de l’extérieur. En UML, les modificateurs d’accès permettent de définir la visibilité des propriétés : Un attribut privé (-) limite la visibilité d’une propriété à la classe elle- même Un attribut public (+) ne limite pas la visibilité d’une propriété Un attribut protégé (#) limite la visibilité d’une propriété à la classe elle- même et à ses sous-classes (voir cours suivant) Le symbole (~) permet de limiter la visibilité d’une propriété au package de la classe (voir cours suivant) Il n’y a pas de visibilité par défaut. Opérations d’une classe Syntaxe (entre accolades, les mentions optionnelles) : {-,#,+,~} nomOpération ({LISTE_PARAMS}) {:valeurRetour} avec pour LISTE_PARAMS, les paramètres séparés par des virgules. Chaque paramètre s’écrit : nomParamètre : TypeParamètre Exemples : + toString() : String pour une opération publique, sans paramètre et retournant une chaîne de caractères ~ setAbscisse(x:float) pour une opération visible dans le paquetage, et prenant une nombre à virgule en paramètre Notation abrégée d’une classe Si une classe est déjà définie, il est possible de la représenter simplement, sans ses propriétés. Relations entre classes 20/01/2021 UML Cours 1 : Diagrammes de classes : associations https://lipn.univ-paris13.fr/~gerard/uml-s2/uml-cours01.html 6/11 La relation d’héritage est une relation de généralisation/spécialisation permettant l’abstraction de concepts. Une association représente une relation possible entre les objets d’une classe. Une relation de composition décrit une relation de contenance et d’appartenance. Une dépendance est une relation unidirectionnelle exprimant une dépendance sémantique entre les éléments du modèle (flèche ouverte pointillée). Association Une association est une relation structurelle entre objets. Une association est souvent utilisée pour représenter les liens posibles entre objets de classes données Elle est représentée par un trait entre classes Elle est souvent dirigée par une flèche La flèche indique ici que la relation est uni-directionnelle : les objets de classe Article connaissent ceux de la la classe Commentaire auxquels il sont liés, mais pas l’inverse. Association bi-directionnelle Certaines associations sont bi-directionnelles mais comme une telle association est plus complexe à implémenter, on prefère l’aviter autant que possible. L’absence de flèche indique ici que l’on peut accéder aux catégories à partir des articles qui leur sont liés, et inversement. Multiplicités Les multiplicités permettent de contraindre le nombre d’objets intervenant dans les instanciations des associations. On en place de chaque côté des associations. Une multiplicité d’un côté spécifie combien d’objets de la classe du côté considéré sont associés à un objet donné de la classe de l’autre côté. Syntaxe : min..max, où min et max sont des nombres représentant respectivement les nombre minimaux et maximaux d’objets concernés 20/01/2021 UML Cours 1 : Diagrammes de classes : associations https://lipn.univ-paris13.fr/~gerard/uml-s2/uml-cours01.html 7/11 par l’association. Ici, le 1..5 s’interprète comme à un objet donné de la classe Article, on doit associer au minimum 1 objet de la classe Categorie et on peut en associer au maximum 5. Ecriture des multiplicités Certaines écritures possibles : * à la place de max signifie plusieurs sans préciser de nombre. n..n se note aussi n pour exatement n 0..* se note aussi * Exemples : 1..* : au minimum 1 mais sans maximum 1..2 : entre un et deux (mais jamais 0, par exemple) * : autant qu’on le souhaite Rôles On peut donner à une classe un rôle dans uns association. C’est surtout utile quand plusieurs associations concernent les mêmes classes en qu’en conséquence, de mêmes objets peuvent être liés par des modalités différentes. Ici, des adresses peuvent être liées aux clients : Les adressers jouent le rôle d’adresses de livraison ou d’adresses de facturation Rien n’empêche qu’une adresse soit à la fois une adresse de livraison et un adresse de facturation Classe-association 20/01/2021 UML Cours 1 : Diagrammes de classes : associations https://lipn.univ-paris13.fr/~gerard/uml-s2/uml-cours01.html 8/11 Pour faire porter des informations par une association, on emploie une classe- association. Graphiquement, on la relie à l’association avec des pointillés. Relations est une partie de Les objets correspondant aux attributs d’une classe font partie des objets de la classe en question : Les attributs définissent des parties de la classe Ils la composent Expression des compositions avec des relations Il est possible de représenter plus explicitement les relations de composition entre classes. 20/01/2021 UML Cours 1 : Diagrammes de classes : uploads/Philosophie/ uml-cours-1-diagrammes-de-classes-associations.pdf

  • 53
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager