• Aucun résultat trouvé

Associations et liens Présentation

Détails de l’activité

Activité 1.3 Associations et liens Présentation

Une classe n’a pas d’utilité en elle-même. Un logiciel avec de nombreuses fonctionnalités peut avoir des milliers de classes. Les objets des différentes classes doivent être liés les uns aux autres, interagir et de collaborer pour mener à bien les processus. Les relations entre les objets (connus sous le nom des associations) sont représentées par des lignes reliant les objets. L’association exprime les relations entre les classes et définit les liens entre les instances de la classe (objets). Un lien exprime une relation entre les objets. Il existe quatre types de relations entre les classes:

• Association Agrégation

• Composition Généralisation

Unité 1. - Principes de La Programmation Orientée-Objet

Détails de l’activité

1.3.1.1 Association

C’est la relation la plus simple entre les classes. C’est une relation d’égal à égal. C’est une relation structurelle décrivant un ensemble de liens. Les liens sont des connexions entre les objets. Les liens sont implémentés dans les objets en utilisant des références. Une association est une relation entre deux ou plusieurs classes et implique une connexion entre les

instances. Les associations entre les classes A et B peuvent être:

1. A est une partie physique ou logique de B A est semblable à B

2. A est contenue dans B 3. A est une description de B 4. A est un élément de B

5. A est une sous-unité B 6. A utilise ou gère B

7. A communique avec B 8. A suit B

9. A appartient à B

Exemple: Personne travaille pour Société

1.3.1.2 Agrégation

Une agrégation est une association qui représente une relation d’inclusion structurelle ou comportementale d’un élément dans un ensemble. Les objets sont rassemblés pour créer un objet plus complexe. Ce rassemblement peut être physique ou logique. L’agrégation définit un point de contrôle unique pour les objets qui y participent. L’objet issu de l’agrégation gère les différents objets qui composent l’agrégation. L’agrégation est représentée comme un diamant creux, pointant à la classe qui est utilisé.

Exemple 1:

Un processeur fait partie d’un ordinateur.

CPU, périphériques, moniteur et le clavier sont assemblés pour créer un ordinateur

Figure 1.9: Liens d’agréation entre un ordinateur est ses composantes ou périphériques Exemple 2 :

Un moteur fait partie d’une voiture

Figure 1.10: Liens d’agréation entre un moteur est un véhicule

1.3.1.3 Composition

La composition est une agrégation composite. La durée de vie des objets individuels dépend de la durée de vie de l’objet global. Aucune partie de la composition ne peut exister par elle-même. Une classe composite est construite à partir d’autres classes. La classe a besoin d’un ou de plusieurs autres classes pour exister. La composition est représentée par un diamant solide Exemple:

Un mot ne peut pas exister si elle ne fait pas partie d’une ligne.Si un paragraphe est supprimé, toutes les lignes de l’alinéa sont supprimées, et tous les mots appartenant à ces lignes sont supprimés.

Si un document est supprimé, tous les paragraphes le composant disparaissent.

.

Figure 1.11: Liens d’agréation de composition

1.3.1.4 Héritage ou Généralisation

La généralisation est aussi appelé relation “d’héritage”. Une généralisation est la relation entre une classe générale et une ou des classes plus spécialisés. Dans une relation de généralisation, les spécialisations sont appelées sous-classe et la classe généralisée est appelée la

superclasse. Une généralisation permet l›héritage des attributs et des opérations d›une superclasse par ses sous-classes.

C’est équivalent à une relation: « genre de » or « type de ».

L’héritage ou la généralisation est décrite comme une relation parent / enfant, où une classe enfant hérite de tous les attributs et méthodes d’une classe, et ajoute ses propres attributs et méthodes pour créer un nouveau comportement. L’héritage est représenté comme une flèche

Unité 1. - Principes de La Programmation Orientée-Objet

triangulaire creuse, dirigée vers la classe parente.

1.3.2 Super classe et Sous classe

Une super-classe est une classe qui contient les caractéristiques communes à deux ou plusieurs classes. Une super classe est similaire à un sur-ensemble, par exemple, personnel-agence. Une sous-classe est une classe qui contient au moins les attributs et méthodes de sa (ses) super-classe(s). Une classe peut être une sous-classe et un super classe en même temps.

Figure 1.10: Exemple de lien d’héritage

Figure 1.11: Exemple de super classe et sous classe

1.3.3 Multiplicité

La multiplicité montre le nombre d’objets d’une classe pouvant être associées à un objet d’une autre classe. Exemple: Un citoyen peut demander une ou plusieurs licences, et une licence est requise par un citoyen.

Figure 1.12: Exemple de multiplicité entre deux classes

Figure 1.12: Exemple de la multiplicité

Conclusion

Comme l’a déclaré Liu, (2001), le but d’une association et d’un lien entre deux objets est d’établir diverses sortes de relation, et donc des classes peuvent avoir toutes sortes d’associations dans un domaine d’étude. Les objectifs que doit remplir toute association sont les suivantes:

• Une association entre deux classes doit fournir des connexions physiques ou conceptuelles entre les objets de ces classes.

• Seuls les objets qui sont associés entre eux peuvent collaborer les uns avec les autres à travers les liens.

• Booch décrit le rôle d’une liaison entre les objets de la manière suivante:

• “Un lien représente l’association spécifique par lequel un objet (le client) applique les services d’un autre objet (le fournisseur), ou par lequel un objet peut accéder à un autre”.

Evaluation

1. Ces affirmations sont-elles vraies ou fausses ? Pour celles qui sont fausses, expliquer pourquoi.

i. Il existe une association entre Stagiaire et Cours ii. Il y a une composition entre Cours et Professeur iii. Il existe une agrégation entre Cours et Lieu

2. Supposons que nous voulons modéliser une application e-service pour un organisme gouvernemental. Est-ce que ce schéma modélise raisonnablement la relation entre

Unité 1. - Principes de La Programmation Orientée-Objet

les entités Utilisateur, Employé, EmployéServiceClientèle, EmployéServiceAdministratif, et Demandeur? Si non, proposez un modèle plus approprié.

3. Ajouter une généralisation pour les classes définies dans l’évaluation 1.3.6 (2) i. Identifier la super-classe et une sous-classe.

ii. Y a-t-il une classe abstraite? Justifier.

iii. Quel facteur d’élimination est utilisé dans votre hiérarchie de généralisation?

4. Considérons la hiérarchie de généralisation prévue dans l’évaluation 3 ci-dessus.

i. Ajouter une opération à la super classe qui pourrait être implémentée de différentes manières par ses sous-classes.

ii. Donner un exemple de polymorphisme. Expliquez.

5. Nommez les 4 relations de base en UML et décrire chacune d’elles

Documents relatifs