Td n° 1 :exercices analyse orientée objet et diagramme de classes

Td n° 1 : analyse orientée objet et diagramme de classes Bas

Télécharger PDF

Analyse Orientée Objet et Diagrammes de Classes

Ce document vise à approfondir les concepts fondamentaux de la modélisation orientée objet :

  • Se familiariser avec la notion d'objet et de classe.
  • Approfondir la compréhension des objets, des classes et des diagrammes de classes pour la modélisation statique et structurelle d'un projet.

Exercice 1 : La Classe Bouteille

Dans cet exercice, nous explorons la modélisation d'une bouteille en tant que classe. Une bouteille doit pouvoir être rangée. Pour cela, son encombrement est essentiel, caractérisé par sa hauteur et le rectangle circonscrivant sa base la plus évasée. Quand on interagit avec une bouteille, on peut :

  • L'ouvrir.
  • La vider d'une certaine quantité.
  • La remplir d'une certaine quantité.
  • Connaître la quantité de liquide qu'elle contient.
  • La fermer.

Il est implicite que la quantité de liquide contenue dans la bouteille doit être connue. Toute nouvelle bouteille est considérée comme pleine et fermée.

  1. Définir les différents attributs de la classe Bouteille.
  2. Définir la ou les contraintes que chaque attribut doit vérifier pour que l'objet soit dans un état cohérent.
  3. Décrire les différentes opérations (avec leurs paramètres) qui permettent de décrire le comportement d'une bouteille.
  4. On s'intéresse maintenant à des bouteilles d'eau vendues dans les grandes surfaces. Une bouteille a une marque (Contrex, Cristaline, Evian, ...) et une qualification ("eau minérale", "eau de source"). Décrire la classe des bouteilles d'eau minérale.

Exercice 2 : Héritage et Composition

On considère un logiciel qui permet de créer des composants graphiques. Un composant graphique peut être :

  • Un bouton.
  • Un champ d'édition.
  • Un label.
  • Une fenêtre.

Une fenêtre est un ensemble de composants graphiques. Proposer une modélisation de ce problème en utilisant les concepts d'héritage et de composition.

Exercice 3 : Bibliothèque

Nous nous intéressons à un système de gestion de bibliothèque. Il s'agit de gérer la classification des documents (livres ou périodiques) et le processus de prêt. Nous avons deux sortes de documents : livres et périodiques.

  1. Un document est caractérisé par son titre, son numéro, un index (de sujets dont il traite), et son code de rangement. Décrire la classe Document.
  2. Donner le modèle évolutif d'un document par rapport au processus de prêt.
  3. Exprimer la propriété suivante : un livre est composé d'une introduction, de plusieurs chapitres et d'une conclusion. Est-ce une relation de composition ou de spécialisation ? Justifier.
  4. Exprimer la propriété suivante : un livre est un document et un périodique est un document. Est-ce une relation de composition ou de spécialisation ? Justifier.
  5. À quoi les notions de classes abstraites et de polymorphisme sont-elles nécessaires pour cet exercice ?

Exercice 4 : Encapsulation des Objets

On considère la classe PointÉcran. Tous les objets de cette classe représentent des points sur un écran. Les caractéristiques de l'écran sont connues au début de l'exécution du programme qui gère ces objets.

  1. Identifier les attributs de cette classe. Cette classe devra gérer la taille (commune à tous les objets) de l'écran.
  2. Donner les contraintes des différents attributs pour que l'objet soit toujours dans un état cohérent.
  3. On s'intéresse aux méthodes de la classe PointÉcran qui changent l'état de l'objet. Que doit faire systématiquement le programmeur dans le code de la méthode pour que l'objet reste dans un état cohérent ?
  4. Pourquoi les attributs qui positionnent le point dans l'écran doivent être privés ?

Exercice 5 : Association Réflexive

On désire décrire une personne à travers son nom, son prénom et son âge. De plus, on désire connaître son père et sa mère biologique. Proposer le diagramme de classes correspondant à cette problématique.

Exercice 6 : Cas d'Étude - Bibliothèque

On souhaite automatiser la gestion d'une bibliothèque. Pour cela, son fonctionnement a été analysé, aboutissant à la liste de règles suivante :

  • Une bibliothèque gère un ensemble de documents et d'adhérents.
  • Les adhérents ont un prénom et un nom. Si l'adhérent est un étudiant, sa promotion est également enregistrée. Si l'adhérent est un professeur, son département est enregistré.
  • Les adhérents peuvent s'inscrire ou se désinscrire sur simple demande.
  • Un document est caractérisé par son titre, son numéro, un index (de sujets dont il traite), et son code de rangement.
  • Ces documents sont soit des livres, soit des périodiques.
  • Un livre se compose d'une introduction, de plusieurs chapitres et d'une conclusion.
  • Un livre a un ou plusieurs auteurs.
  • Les périodiques possèdent une date de parution.
  • Seuls les livres sont empruntables.
  • Un adhérent peut emprunter ou restituer des livres.
  • Les adhérents peuvent emprunter des livres (et uniquement des livres), et il est nécessaire de connaître à tout moment les livres empruntés par chaque adhérent.
  • Un adhérent peut emprunter au maximum 3 livres.
  • La date de restitution d'un livre emprunté est fixée au moment du prêt. Cette date peut être prolongée sur demande.

Modéliser le diagramme de classes pour cette étude de cas.

Exercice 7 : Cas d'Étude - Agence de Recrutement

Une agence de recrutement a pour mission principale d'assurer la liaison entre les entreprises et les demandeurs d'emploi. L'agence souhaite informatiser son système pour gérer efficacement les données qu'elle manipule. La description suivante détaille les fonctionnalités :

  • Les demandeurs d'emploi et les entreprises sont considérés comme des clients, chacun identifié par un code interne à l'agence.
  • Pour publier une offre d'emploi, les entreprises doivent préalablement s'abonner auprès de l'agence.
  • Une entreprise fournit son adresse, un numéro de téléphone, sa raison sociale et une brève description de ses activités.
  • Les journaux sont classés par catégories (identifiant unique, libellé) et caractérisés par un code, un nom, une périodicité (quotidien, mensuel, etc.) et une langue.
  • Tous les clients de l'agence doivent exprimer leurs préférences quant aux catégories de journaux souhaitées.
  • Une entreprise peut s'abonner plusieurs fois au même journal et à plusieurs journaux simultanément. Cependant, un réabonnement au même journal n'est possible qu'après l'expiration de l'abonnement précédent. L'état (Actif ou Désactivé) et la date d'expiration de chaque abonnement sont conservés.
  • L'émission des offres d'emploi est liée à un abonnement actif. Une offre peut être publiée plusieurs fois dans le cadre d'un même abonnement à des dates différentes, ou à la même date via des abonnements distincts. Une offre est toujours émise par une seule entreprise.
  • Une offre est caractérisée par son numéro, son titre, les compétences requises, le nombre d'années d'expérience demandé, le nombre de postes offerts et son état (Active ou Désactivée).
  • Il est également important de savoir dans quelle édition du journal (identifiée par un numéro séquentiel et une date de parution) l'annonce a été publiée.
  • Un demandeur ne peut postuler à une offre qu'après s'être inscrit auprès de l'agence. L'inscription nécessite les informations suivantes : adresse, numéro de téléphone, numéro de fax, nom, prénom, nombre d'années d'expérience, salaire souhaité et diplôme obtenu.
  • Un demandeur peut postuler à plusieurs annonces, à condition que le nombre d'années d'expérience requis soit inférieur ou égal à son expérience propre. Il doit également spécifier le numéro et la date de parution de l'édition du journal où il a découvert l'annonce. Il ne peut postuler à la même offre qu'une seule fois, même si elle a été publiée dans différentes éditions ou via plusieurs abonnements.
  • Une entreprise peut filtrer les postulants et recruter un nombre de demandeurs égal au nombre de postes offerts pour une annonce donnée. Le recrutement doit s'effectuer dans le cadre d'une annonce spécifique et uniquement parmi les demandeurs ayant postulé à cette annonce. L'historique des recrutements est conservé par l'agence.
  • Une offre est désactivée dès que le nombre de recrutements associés atteint le nombre de postes offerts.
  • Un demandeur peut postuler à autant d'offres qu'il le souhaite, même s'il a déjà été recruté.

Question : Modéliser le diagramme de classes correspondant à cette étude de cas.

Foire Aux Questions (FAQ)

Qu'est-ce qu'une classe en programmation orientée objet (POO) ?
En POO, une classe est un modèle ou un plan pour créer des objets. Elle définit les attributs (les données) et les méthodes (le comportement) que les objets de ce type posséderont. C'est une description abstraite de la structure et du comportement commun à un ensemble d'objets.
Quelle est la différence principale entre l'héritage et la composition ?
L'héritage est une relation "est un" (par exemple, "une voiture est un véhicule"), où une classe enfant hérite des attributs et méthodes d'une classe parente. La composition est une relation "a un" (par exemple, "une voiture a un moteur"), où une classe est constituée d'objets d'autres classes, sans partager de hiérarchie de types. L'héritage favorise la réutilisation du code et l'extension, tandis que la composition favorise la flexibilité et la réduction du couplage.
Pourquoi l'encapsulation est-elle importante en POO ?
L'encapsulation est le principe qui consiste à regrouper les données (attributs) et les méthodes qui opèrent sur ces données au sein d'une seule unité (la classe), tout en masquant les détails d'implémentation internes de l'objet. Elle est cruciale pour maintenir la cohérence de l'état d'un objet, protéger les données internes contre les accès non autorisés ou incorrects, et faciliter la maintenance et l'évolution du code en limitant les dépendances externes.

Partagez vos remarques, questions ou propositions d'amélioration ici...

Enregistrer un commentaire (0)
Plus récente Plus ancienne

Publicité 1

Publicité 2