Diagramme de Classes et Diagramme d’Objets

Page 1 sur 69Lecteur de document UniversityLib

Diagramme de Classes et Diagramme d’Objets

UML (Unified Modeling Language) and Computer Science · notes

Voir tous les documents en génie logiciel

<!-- Slide number: 1 --> # Diagramme de classesDiagramme d’objets Mme CHALOUAH Anissa I.S.E.T Bizerte Département Technologies de l’informatique

01/02/2016 Mme Chalouah Anissa 1

<!-- Slide number: 2 --> Chapitre 3 : Diagramme de classes et Diagramme d’objets # Diagramme de classe 01/02/2016 Mme Chalouah Anissa 2

<!-- Slide number: 3 --> # Diagramme de classe : Définition(1) Alors que le diagramme de cas d’utilisation montre un système du point de vue des acteurs, le diagramme de classes en montre la structure interne. Il permet de fournir une représentation abstraite des objets du système qui vont interagir ensemble pour réaliser les cas d’utilisation. Il s’agit d’une vue statique car on ne tient pas compte du facteur temporel dans le comportement du système. 01/02/2016 Mme Chalouah Anissa 3

<!-- Slide number: 4 --> # Diagramme de classe : Définition(2) Le diagramme de classes modélise les concepts du domaine d’application ainsi que les concepts internes créés dans le cadre de l’implémentation d’une application. Il permet de modéliser les classes du système et leurs relations indépendamment d’un langage de programmation particulier. il faudra bien garder à l'esprit qu'une classe est un modèle et l'objet sa réalisation. 01/02/2016 Mme Chalouah Anissa 4

<!-- Slide number: 5 --> # Diagramme de classe :Utilisation Lors de l’analyse et de la conception: Définitions des objets qui composent le système à partir des cas d’utilisation et des diagrammes d’interaction (séquences et collaboration). Bases conceptuelles pour les diagrammes d’état-transition, de déploiement, ... Lors de l’implantation : Génération automatique des structures statiques du système (classes, relations, ...). 01/02/2016 Mme Chalouah Anissa 5

<!-- Slide number: 6 -->

Les classes 01/02/2016 Mme Chalouah Anissa 6

<!-- Slide number: 7 --> # Classe : Définition(1) Une classe est un concept abstrait représentant des éléments variés comme :

des éléments concrets (ex : des avions) des éléments abstraits (ex : des commandes de marchandises ou services) des composants d’une application (ex : les boutons des boîtes de dialogue) des structures informatiques (ex : les enregistrements) des éléments comportementaux (ex : des tâches)

01/02/2016 Mme Chalouah Anissa 7

<!-- Slide number: 8 --> # Classe : Définition(2) Une classe est une description d’objets partageant des caractéristiques communes. (attributs, opérations, relations et sémantique) Les caractéristiques d’un objet permettent de spécifier son état et son comportement. L’état d’un objet est décrit par des attributs appelés aussi des propriétés. Le comportement d’un objet est décrit par des opérations (méthodes). Ce sont des fonctions qui peuvent prendre des valeurs en entrée et modifier les attributs ou produire des résultats.

01/02/2016 Mme Chalouah Anissa 8

<!-- Slide number: 9 --> # Classe : Définition(3) Une classe représente un type d’objet Généralement, en fonction de l’objectif du diagramme, elle est décrite par : un nom (obligatoire) des attributs des opérations

01/02/2016 Mme Chalouah Anissa 9

<!-- Slide number: 10 --> # Classe : Représentation UML

![ConceptDeClasse.png](Picture2.jpg)

Attributs

Opérations 01/02/2016 Mme Chalouah Anissa 10

<!-- Slide number: 11 --> # Conventions d’écriture Le nom d’une classe commence par une majuscule,

Le nom d’un attribut commence par une minuscule.

Les types de base (int, long, float, double, boolean) sont en minuscules.

Il n’y 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

01/02/2016 Mme Chalouah Anissa 11

<!-- Slide number: 12 --> # Nom de la classe Le nom de la classe doit évoquer le concept décrit par la classe. On peut ajouter d’autres informations tel que le nom de l’auteur, la date, etc. Pour indiquer qu’une classe est abstraite, il faut ajouter le mot-clef abstract. Syntaxe [ <Nom_du_paquetage_1>::...::<Nom_du_paquetage_N> ]<Nom_de_la_classe> [ { [abstract], [<auteur>], [<date>], ... } ]

01/02/2016 Mme Chalouah Anissa 12

<!-- Slide number: 13 --> # Attribut : Syntaxe <visibilite> [/] nomAttribut : type '['<multiplicite>']' {<contrainte>} = <valeurParDefaut>

visibilite : + public / # protected / - private/ ~package / : signal un attribut dérivé. C'est à dire calculé à partir d'autres attributs. nomAttribut : nom de l'attribut type : type de l'attribut [multiplicite] : multiplicité pour définir des tableaux, des listes de valeurs {<contrainte>} : pour donner des contraintes OCL quand la multiplicité est supérieure à 1 valeurParDefaut : valeur d'initialisation

01/02/2016 Mme Chalouah Anissa 13

<!-- Slide number: 14 --> # Attribut : 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 # x : float = O.0  pour un nombre à virgule initialisé à 0 et à la visibilité protected

01/02/2016 Mme Chalouah Anissa 14

<!-- Slide number: 15 --> # Attribut : Exemples | A | | --- | | - attr1: char attr2 : string # attr3 : boolean=true + attr4 : int[1..n] | | | | Rectangle | | --- | | - Longueur: int Largeur : int | | | 01/02/2016 Mme Chalouah Anissa 15

<!-- Slide number: 16 --> # Attribut dérivé sa valeur se calcule a partir d'autres propriétés de la classe (attributs ou autres) symbolises par l'ajout d'un «  / » devant leur nom

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 16

<!-- Slide number: 17 --> # Opération : Syntaxe <visibilite> nomOperation (<param1>, ... , <paramN>) : <typeRetour> {<proprietes>}

visibilite : + public / # protected / - private nomOperataion : nom de l'opération <param1>, ... , <paramN> : liste des paramètres respectant la syntaxe ci-dessous. typeRetour : type de retour de l'opération {<propriete>} : contraintes OCL, indications ou mots clé comme « abstract »

01/02/2016 Mme Chalouah Anissa 17

<!-- Slide number: 18 --> # Opération : Syntaxe des paramètres [<direction>] <nom_paramètre>:<type> [=<valeur_par_défaut>]

La direction peut prendre l’une des valeurs suivante : in : Valeur par défaut qui définit que l'appelant fournit une valeur et n'accède pas aux modifications de cette dernière. out : Paramètre de sortie uniquement. Il n’y a pas de valeur d’entrée et la valeur finale est disponible pour l’appelant. inout : Paramètre d’entrée/sortie. La valeur finale est disponible pour l’appelant.

01/02/2016 Mme Chalouah Anissa 18

<!-- Slide number: 19 --> # Opération : 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.

01/02/2016 Mme Chalouah Anissa 19

Publicité

<!-- Slide number: 20 --> # Opérations : Exemples

![](Picture2.jpg) | Rectangle | | --- | | - Longueur: int Largeur : int | | +Rectangle(x : int, y : int) + toString() : String + Affiche () +surface ():int | 01/02/2016 Mme Chalouah Anissa 20

<!-- Slide number: 21 --> # Visibilité des membres UML définit trois niveaux de visibilité des attributs et des opérations : privé : l’élément n'est visible que dans la classe, noté - public : l'élément est visible par toutes les autres classes, noté + protégé : visible par la classe et ses sous classes, noté # Package : propriété ou classe visible uniquement dans le paquetage, noté ~

01/02/2016 Mme Chalouah Anissa 21

<!-- Slide number: 22 --> # Visibilité des membres : Exemple

![](Picture2.jpg)

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 22

<!-- Slide number: 23 --> # Attribut et opération de classe Par défaut, les valeurs des attributs définis dans une classe diffèrent d'un objet à un autre. Parfois, il est nécessaire de définir un attribut de classe qui garde une valeur unique et partagée par toutes les instances. Semblable aux attributs de classe, une opération de classe est une propriété de la classe, et non de ses instances. Elle n'a pas accès aux attributs des objets de la classe.

01/02/2016 Mme Chalouah Anissa 23

<!-- Slide number: 24 --> # Attribut et opération de classe La notation UML prévoie aussi les attributs et les opérations de classes. Ces éléments sont identifiés par leur nom souligné dans la représentation de la classe.

| Rectangle | | --- | | - Longueur: int Largeur : int NBRectangle : int SomSurface : int | | +Rectangle(x : int, y : int) + Affiche () +surface ():int MoyenneSurface() : int |

![C:\WINDOWS\Bureau\notation\Introduction au langage UML_fichiers\Image89.gif](Image6.jpg) 01/02/2016 Mme Chalouah Anissa 24

<!-- Slide number: 25 --> # Classe stéréotype Un stéréotype permet d’étendre les classes déjà existantes en leur donnant une signification sémantique différente.

Enumération: classe définissant un ensemble d’identificateurs formant le domaine de valeur d’un type. Utilitaire : classe réduite au concept de module et qui ne peut être instanciée. acteur: classe modélisant un ensemble de rôles joués par un acteur. interface: classe contenant uniquement une description des opérations visibles. exception: classe modélisant un cas particulier de signal : les exceptions.

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 25

<!-- Slide number: 26 --> # Package Mécanisme de partitionnement des modèles et de regroupement des éléments de modélisation. Chaque paquetage peut contenir un ensemble de diagrammes et/ou de paquetages. Chaque élément d’un paquetage possède un nom unique dans ce paquetage. Possibilité de définir des relations entre paquetages. Un nom de classe est unique au sein du paquetage Nom de paquetage::nom de la classe

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 26

<!-- Slide number: 27 -->

Relation entre classes 01/02/2016 Mme Chalouah Anissa 27

<!-- Slide number: 28 --> # Relation entre classes Les relations fournissent un chemin de communication entre objets. Si deux objets ont besoin de se communiquer, il doit exister un lien entre eux.

Contrainte : Une relation est un lien stable entre deux objets. 01/02/2016 Mme Chalouah Anissa 28

<!-- Slide number: 29 --> # Type de relations entre classes 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

01/02/2016 Mme Chalouah Anissa 29

<!-- Slide number: 30 --> # Association Définition : relation entre au moins deux classes qui entraînent des connexions entre leurs instances. Notation UML : trait reliant les deux classes en relation.

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 30

<!-- Slide number: 31 --> # Association : nommage Les associations peuvent être nommées c.-à-d. identifiées par un texte unique décrivant la sémantique de l’association.

Note : utiliser une forme verbale active (“travaille pour”) ou passive (“employé par”). S’il y a ambiguïté, indiquer le sens de lecture avec une flèche.

![](Picture4.jpg)

![](Picture5.jpg) 01/02/2016 Mme Chalouah Anissa 31

<!-- Slide number: 32 --> # Association : rôle des extrémités(1) Les extrémités des associations peuvent être qualifiées par des rôles. Un rôle indique comment une classe Source voit une classe Destination.

Le rôle est un pseudo-attribut de la classe source (utilisé comme un attribut). Note : Ne pas utiliser à la fois le nommage d’une association et les rôles des extrémités de la même association.

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 32

<!-- Slide number: 33 --> # Association : rôle des extrémités(2) Un rôle 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 adresses 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

![C:\Users\AnissaCh\Desktop\téléchargement.png](Picture3.jpg) 01/02/2016 Mme Chalouah Anissa 33

<!-- Slide number: 34 --> # Multiplicité (1) 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 par l’association.

![](Picture3.jpg) 01/02/2016 Mme Chalouah Anissa 34

<!-- Slide number: 35 --> # Multiplicité (2) | 1 | un et un seul (multiplicité par défaut) | | --- | --- | | 0..1 | zéro ou un | | N | exactement N | | M..N | de M à N | | \* | zéro ou plus, de 0 à +∞ | | 0..\* | zéro ou plus, de 0 à +∞ | | 1..\* | un ou plus, de 1 à +∞ | Exemples : 1..* : au minimum 1 mais sans maximum

1..2 : entre un et deux (mais jamais 0, par exemple)

* : autant qu’on le souhaite

Publicité

01/02/2016 Mme Chalouah Anissa 35

<!-- Slide number: 36 --> # Qualification Une qualification consiste à sélectionner un sous-ensemble d'objets parmi l’ensemble des objets qui participent à une relation. Le qualificatif est un attribut spécial (clé) qui réduit la multiplicité effective d'une association.

![](Image3.jpg) 01/02/2016 Mme Chalouah Anissa 36

<!-- Slide number: 37 --> # Qualification Les associations "un à plusieurs" et "plusieurs à plusieurs "peuvent être qualifiées. Le qualificatif caractérise l'ensemble d'objets à l'extrémité "plusieurs ".

![](Picture6.jpg) 01/02/2016 Mme Chalouah Anissa 37

<!-- Slide number: 38 --> # Classe association Les attributs d’une classe dépendent fonctionnellement de l’identifiant de la classe. Parfois, un attribut dépend fonctionnellement de 2 identifiants, appartenant à 2 classes différentes. Dans ce cas, l’association est dite « porteuse d’attributs ». Une association porteuse d’attributs est appelée classe-association.

01/02/2016 Mme Chalouah Anissa 38

<!-- Slide number: 39 --> # Classe association Une classe-association qui ne participe pas à d’autres relations avec d’autres classes peut ne pas porter de nom.

Lors de la conception, une classe-association peut être remplacée par une classe intermédiaire.

![](Image4.jpg)

![](Image3.jpg)

![](Image5.jpg)

![](Image6.jpg) 01/02/2016 Mme Chalouah Anissa 39

<!-- Slide number: 40 --> # Association n-aire Une association n-aire lie plus de deux classes. Notation avec un losange central pouvant éventuellement accueillir une classe-association. La multiplicité de chaque classe s'applique à une instance du losange.

![](Picture2.jpg) Les associations n-aires sont peu fréquentes et concernent surtout les cas où les multiplicités sont toutes * . Dans la plupart des cas, on utilisera plus avantageusement des classes-association ou plusieurs relations binaires. 01/02/2016 Mme Chalouah Anissa 40

<!-- Slide number: 41 --> # Association réflexive Parfois, les deux extrémités de l'association pointent vers la même classe. Dans ce cas, l'association est dite réflexive .

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 41

<!-- Slide number: 42 --> # Contraintes sur les associations Les contraintes sont des expressions qui précisent le rôle ou la portée d'un élément de modélisation (elles permettent d'étendre ou préciser sa sémantique).

Dans le langage UML, une contrainte est une règle de gestion exprimée entre { }.

01/02/2016 Mme Chalouah Anissa 42

<!-- Slide number: 43 --> # Contraintes sur les associations Contrainte d’inclusion elle permet de préciser qu’une collection est incluse dans une autre.

La personne qui joue le rôle de directeur de comité fait forcément partie des membres de la comité.

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 43

<!-- Slide number: 44 --> # Contraintes sur les associations Contrainte d’exclusion: elle permet de préciser qu’une instance d’association exclut une autre instance.

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 44

<!-- Slide number: 45 --> # Contraintes sur les associations Propriétés sur extrémités d’associations {variable} : instance modifiable (par défaut) {frozen} : instance non modifiable {addOnly} : de nouveaux liens peuvent être ajoutés depuis un objet de l'autre côté de l'association mais non supprimés.

01/02/2016 Mme Chalouah Anissa 45

<!-- Slide number: 46 --> # Propriétés sur extrémités d’associations : Exemple

![C:\Users\AnissaCh\Desktop\fig4_2.png](Picture3.jpg) Ce diagramme exprime que : une personne est née dans un pays, et que cette association ne peut pas être modifiée {frozen} ; une personne a visité un certain nombre de pays, dans un ordre donné {ordred}, et que le nombre de pays visités ne peut que croître {addOnly} ; une personne aimerait encore visiter toute une liste de pays, et que cette liste est ordonnée {ordered}(probablement par ordre de préférence).

01/02/2016 Mme Chalouah Anissa 46

<!-- Slide number: 47 --> # Association dérivée Une association dérivée est une association qu’on peut déduire à partir d’autre association existantes.

![http://www.usask.ca/frenchciv/ronald/la_boite_a_objets/image9.gif](Picture4.jpg)

01/02/2016 Mme Chalouah Anissa 47

<!-- Slide number: 48 --> # Navigabilité des associations Par défaut, les associations sont navigables dans les deux directions. Une association peut ne nécessiter qu'un seul sens de navigation. Ceci est représenté par une flèche porté par le rôle vers lequel la navigation est possible.

Les objets instances de A voient les objets instances de B. Mais pas le contraire.

![](Picture4.jpg) 01/02/2016 Mme Chalouah Anissa 48

<!-- Slide number: 49 --> # Navigabilité des associations : Exemples

Les électeurs voient le candidat pour lequel il votent. Mais le candidat ne voient pas les électeurs.

Un segment se construit à partir de 2 points. Le segment doit donc avoir connaissance des points qui le forment. Un point n’a pas d’idée sur le segment à qui il appartient.

![](Picture3.jpg)

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 49

<!-- Slide number: 50 --> # Agrégation Une agrégation est un cas particulier d’association non symétrique exprimant une relation de contenance. Les agrégations n’ont pas besoin d’être nommées : implicitement elles signifient « contient », « est composé de ».

![](Picture2.jpg) Une agrégation dénote une relation d'un ensemble à ses parties. L'ensemble est l'agrégat et la partie l'agrégé. 01/02/2016 Mme Chalouah Anissa 50

Publicité

<!-- Slide number: 51 --> # composition Une composition est une agrégation plus forte impliquant que :

La destruction et la copie de l'objet composite (l'ensemble) impliquent respectivement la destruction ou la copie de ses composants (les parties). Une instance de la partie n'appartient jamais à plus d'une instance de l'élément composite.

![](Picture2.jpg)

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 51

<!-- Slide number: 52 --> # Généralisation (héritage) L'héritage est une relation de spécialisation/généralisation. Les éléments spécialisés héritent de la structure et du comportement des éléments plus généraux (attributs et opérations).

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 52

<!-- Slide number: 53 --> # Héritage entre classes

![](Picture2.jpg)

01/02/2016 Mme Chalouah Anissa 53

<!-- Slide number: 54 --> # Contraintes sur les relations de généralisation {complete} / {incomplete} {complete} : une contrainte complète précise qu’on ne peut pas rajouter une classe spécialisée à une classe de base(l’ensemble des sous-classes ont été répertoriée). Ex : La spécialisation de la classe « Personne » par les sous-classes « Hommes » et « Femmes » est complète puisqu’aucune autre classe ne peut être ajoutée. {incomplete} : indique qu’i existe d’autre sous-classes qui peuvent être introduite dans la généralisation Ex: Les sous-classes « Math », « Histoire » et « Géo » représentent une gé 01/02/2016 Mme Chalouah Anissa 54

<!-- Slide number: 55 --> # Contraintes sur les relations de généralisation {disjoint} / {overlapping} {disjoint} : un objet ne peut appartenir qu’à une seule classe spécialisée. {overlapping} : indique qu’une instance de la super-classe est l’instance de deux ou plusieurs sous-classes, Par défaut une généralisation est {disjoint,complete}

01/02/2016 Mme Chalouah Anissa 55

<!-- Slide number: 56 --> # Contraintes sur les relations de généralisation

![](Picture4.jpg) 01/02/2016 Mme Chalouah Anissa 56

<!-- Slide number: 57 --> # Classes abstraites Une méthode est dite abstraite lorsqu'on connaît son entête mais pas la manière dont elle peut être réalisée.

Il appartient aux classes enfant de définir les méthodes abstraites.

Une classe est dite abstraite lorsqu'elle définit au moins une méthode abstraite ou lorsqu'une classe parent contient une méthode abstraite non encore réalisée. 01/02/2016 Mme Chalouah Anissa 57

<!-- Slide number: 58 --> # Classes abstraites Une classe abstraite est simplement une classe qui ne s’instancie pas directement mais qui représente une pure abstraction afin de factoriser des propriétés communes. En UML, une classe abstraite se note en italique ou bien porte la mention {abstract}.

![](Picture3.jpg)

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 58

<!-- Slide number: 59 --> # Interface

Une interface est définie en UML comme une classe, avec les mêmes compartiments. On ajoute le stéréotype interface avant le nom de l'interface.

Les classes implémentant une interface doivent implémenter toutes les opérations décrites dans l'interface 01/02/2016 Mme Chalouah Anissa 59

<!-- Slide number: 60 --> # Implémentation d’une interface  Une relation d'implémentation est le type spécial de la relation de généralisation. Une implémentation est un lien d'héritage indiquant qu'une classe enfant implémente une interface parent. Une implémentation est représentée graphiquement sous la forme d'une ligne dirigée de pointillés avec une grande tête de flèche fermée, pointant sur l'interface parent :

![Fichier:DV Implementation.png](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 60

<!-- Slide number: 61 --> # Construction du Diagramme de classe Trouver les classes du domaine étudié Souvent, concepts et substantifs du domaine. Trouver les associations entre classes Souvent, verbes mettant en relation plusieurs classes. Trouver les attributs des classes Souvent, substantifs correspondant à un niveau de granularité plus fin que les classes. Les adjectifs et les valeurs correspondent souvent à des valeurs d'attributs. Organiser et simplifier le modèle en utilisant l'héritage Tester les chemins d'accès aux classées Itérer et raffiner le modèle. 01/02/2016 Mme Chalouah Anissa 61

<!-- Slide number: 62 --> Chapitre 3 : Diagramme de classes et Diagramme d’objets

Diagramme d’objets 01/02/2016 Mme Chalouah Anissa 62

<!-- Slide number: 63 --> # Diagramme d’objets : Définition Représente des objets et leurs liens pour donner une vue figée de l’état d’un système à un instant donné. Il permet de : illustrer le modèle de classes en montrant un exemple qui explique le modèle préciser certains aspects du système en mettant en évidence des détails imperceptibles dans le diagramme de classes exprimer une exception en modélisant des cas particuliers ou des connaissances non généralisables qui ne sont pas modélisés dans un diagramme de classe

Le diagramme de classes modélise des règles et le diagramme d'objets modélise des faits. 01/02/2016 Mme Chalouah Anissa 63

<!-- Slide number: 64 --> # Représentation des objets Comme les classes, on utilise des cadres compartimentés. En revanche, les noms des objets sont soulignés et on peut rajouter son identifiant devant le nom de sa classe. Les valeurs (a) ou l'état (f) d'un objet peuvent être spécifiées. Les instances peuvent être anonymes (a,c,d), nommées (b,f),orphelines (e), multiples (d) ou stéréotypées (g).

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 64

<!-- Slide number: 65 --> # Diagramme de classes et diagramme d'objets Le diagramme de classes contraint la structure et les liens entre les objets.

![](Picture3.jpg) 01/02/2016 Mme Chalouah Anissa 65

<!-- Slide number: 66 --> # Diagramme de classes et diagramme d'objets Diagramme cohérent avec le diagramme de classes Diagramme incohérent avec le diagramme de classes

![](Picture2.jpg)

![](Picture4.jpg) 01/02/2016 Mme Chalouah Anissa 66

<!-- Slide number: 67 --> # Liens Un lien est une instance d'une association. Un lien se représente comme une association mais s'il a un nom, il est souligné. Naturellement, on ne représente pas les multiplicités qui n'ont aucun sens au niveau des objets. 01/02/2016 Mme Chalouah Anissa 67

<!-- Slide number: 68 --> # Relation de dépendance d'instanciation La relation de dépendance d'instanciation (stéréotypée) décrit la relation entre un classeur et ses instances. Elle relie, en particulier, les associations aux liens et les classes aux objets.

![](Picture2.jpg) 01/02/2016 Mme Chalouah Anissa 68

<!-- Slide number: 69 --> # Bibliographie Analyse, Conception des Systèmes Informatiques (Olivier Boissier)(SIMMO/ENSM.SE) Introduction à UML2 (Pierre Gérand)(IUT Villetaneuse) Modélisation orientée objets avec UML (Guillaume Laurent) (ENSMM ) UML par la pratique ( 01/02/2016 Mme Chalouah Anissa 69